首页
社区
课程
招聘
[讨论]PECompact 壳使用技术讨论
发表于: 2012-4-28 18:45 3342

[讨论]PECompact 壳使用技术讨论

2012-4-28 18:45
3342
我是新手,所以喜欢纠结。

PECompact 在入口的地方就有很多SEH,脱壳已经有套路,不过想和大侠们讨论一下其特别之处,本帖不在脱壳,而且在于讨论该壳的ANTI技术,或者直接请教(那些套路是怎么来的)

下载页面:  http://www.hanzify.org/?Go=Show::List&ID=6189
软件大小:  1.3MB  
所属分类:  加密解密   
上传时间:  2004-08-08 00:44:47   
软件汉化:  FeiXJ
运行环境:  WIN9X/WINME/WINNT/WIN2000PRO/WINXP  
软件简介:  这是一个可执行文件的压缩(加壳)工具。  
            
【作者声明】:只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
            
【调试环境】:WinXP、Ollydbg V1.10、PEiD、LordPE、ImportREC
            
—————————————————————————————————
【脱壳过程】:
         
         
看到有兄弟问,所以简单写几句。
准备扔西红柿的兄弟可否考虑扔西瓜过来给我?呵呵

用PECompact V2.40汉化版给Win98的记事本加壳,PECompact的压缩效果已经不错了。
            
设置Ollydbg忽略所有的异常选项。
—————————————————————————————————
一、第一种方法

004010CC     B8 E8E54000         mov eax,Notepad.0040E5E8//进入OD后暂停在这
004010D1     50                  push eax
004010D2     64:FF35 00000000    push dword ptr fs:[0]
004010D9     64:8925 00000000    mov dword ptr fs:[0],esp
004010E0     33C0                xor eax,eax
004010E2     8908                mov dword ptr ds:[eax],ecx

下断:BP VirtualFree
中断后取消断点,Ctrl+F9两次,返回0040E695处

0040E693     FFD7                call edi
0040E695     8985 23120010       mov dword ptr ss:[ebp+10001223],eax; Notepad.<ModuleEntryPoint>
0040E69B     8BF0                mov esi,eax
0040E69D     59                  pop ecx
0040E69E     5A                  pop edx
0040E69F     03CA                add ecx,edx
0040E6A1     68 00800000         push 8000
0040E6A6     6A 00               push 0
0040E6A8     57                  push edi
0040E6A9     FF11                call dword ptr ds:[ecx]; kernel32.VirtualFree
0040E6AB     8BC6                mov eax,esi
0040E6AD     5A                  pop edx
0040E6AE     5E                  pop esi
0040E6AF     5F                  pop edi
0040E6B0     59                  pop ecx
0040E6B1     5B                  pop ebx
0040E6B2     5D                  pop ebp
0040E6B3     FFE0                jmp eax; Notepad.<ModuleEntryPoint>
//飞向光明之巅! ^O^

—————————————————————————————————
二、第二种方法

004010CC     B8 E8E54000         mov eax,Notepad.0040E5E8//进入OD后暂停在这
004010D1     50                  push eax
004010D2     64:FF35 00000000    push dword ptr fs:[0]
004010D9     64:8925 00000000    mov dword ptr fs:[0],esp
004010E0     33C0                xor eax,eax
004010E2     8908                mov dword ptr ds:[eax],ecx

看到这个004010CC的入口,各位兄弟该有想法了吧?呵呵
PECompact V1.84等旧版都是:
JMP   XXXXXXXX
PUSH  XXXXXXXX//OEP的RVA
而新版索性就直接以原OEP为壳入口地址了

下断:HE EIP
F9运行,直接中断在OEP处了

004010CC     55                  push ebp//OEP
004010CD     8BEC                mov ebp,esp
004010CF     83EC 44             sub esp,44
004010D2     56                  push esi
004010D3     FF15 E4634000       call dword ptr ds:[4063E4]; kernel32.GetCommandLineA

拿出LordPE来DUMP进程,ImportREC修复输入表吧。
注:第2种方法不适用于Delphi程序,看来很多壳对Delphi都特别“照顾”呀。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//