-
-
[讨论]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都特别“照顾”呀。
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期)
赞赏
他的文章
- [求助][求助]调试驱动用什么调试器 4150
- [原创]八数码演示(开源) 5137
- [求助]如何获取U盘插入的消息 4383
- [讨论]看了版主强制删除的代码,抛出几个疑问 4897
- [讨论]结贴。。。 3902
看原图
赞赏
雪币:
留言: