首页
社区
课程
招聘
[原创]原创的壳
2013-10-21 16:45 8360

[原创]原创的壳

2013-10-21 16:45
8360
这是我以前写的一个壳,拿出来跟大家学习一下,是个纯粹的反调试和反修改的壳,没有加入导入表,导出表的保护,代码保护等功能,仅供学习。

望指教。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 5
打赏
分享
最新回复 (6)
雪    币: 108
活跃值: (44)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
tuobaofeng 2013-10-21 17:18
2
0
支持一个,以前一直想写来着
雪    币: 2362
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zapline 2013-10-21 17:27
3
0
汇编写的来着
我觉得这个exe很适合用来做逆向练习
雪    币: 622
活跃值: (294)
能力值: ( LV13,RANK:410 )
在线值:
发帖
回帖
粉丝
无聊的菜鸟 9 2013-10-21 22:19
4
0
差不多是这样写的吧?
#include <imagehlp.h>
void PreLoader()
{
        if (!IsDebuggerPresent())
        {
                HANDLE hSnapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
                PROCESSENTRY32 pe;
                pe.dwSize=sizeof(PROCESSENTRY32);
                DWORD dwParentPID;
                if(Process32First(hSnapshot,&pe))
                {
                        do
                        {
                                if (GetCurrentProcessId()==pe.th32ProcessID)
                                {
                                        dwParentPID=pe.th32ParentProcessID;
                                        break;
                                }
                        } while (Process32Next(hSnapshot,&pe));
                }
                if(Process32First(hSnapshot,&pe))
                {
                        do
                        {
                                if (dwParentPID==pe.th32ProcessID)
                                {

                                        if (lstrcmp(pe.szExeFile,"explorer.exe"))
                                        {
                                                MessageBox(NULL,"Debugger Detected!","GameOver",MB_OK);
                                                TerminateProcess(GetCurrentProcess(),0);
                                        }
                                        else break;
                                }
                        } while (Process32Next(hSnapshot,&pe));
                }
                TCHAR strExeFileame[MAX_PATH]={0};
                DWORD dwHeadersum,dwChecksum;
                MapFileAndCheckSum(GetModuleFileName(GetModuleHandle(NULL),strExeFileame,MAX_PATH),&dwHeadersum,&dwChecksum);
                if (dwChecksum==(dwHeadersum+0x0c)>>1)
                {
                        //Jump to OEP
                }
        }
}
雪    币: 70
活跃值: (88)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
baccon 1 2013-10-23 15:34
5
0
差不多。
source.rar
还有个加了一点SEH。
上传的附件:
雪    币: 70
活跃值: (88)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
baccon 1 2013-10-23 15:37
6
0
其实还是有点不同的,你这种必须加载imagehlp.dll,我的在堆中kernel32.dll的模块地址,在找函数地址,再加载函数。
雪    币: 28
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
恶毛毛L 2013-10-23 15:51
7
0
这段代码是说如果父进程是explorer.exe就结束掉该进程吗?
游客
登录 | 注册 方可回帖
返回