首页
社区
课程
招聘
[旧帖] [原创]PECompact2主程序脱壳 0.00雪花
发表于: 2009-11-9 17:11 1806

[旧帖] [原创]PECompact2主程序脱壳 0.00雪花

2009-11-9 17:11
1806
【文章标题】: PECompact2主程序脱壳
【文章作者】: TSobo
【作者邮箱】: tsobo8@gamil.com
【软件名称】: pec2gui.exe
【下载地址】: 自己搜索下载
【使用工具】: OD,LorDPE,PEID,IMPortREC
【软件介绍】: 一加壳工具
【作者声明】: 凑热闹~^_^
--------------------------------------------------------------------------------
【详细过程】
  一直潜水在看雪学习牛人文章,今天冒个泡。呵呵。对脱壳不是很懂,菜鸟一个,今天整理电脑发现上还有一加壳工具,
  
  一看PECompact,版本2.6.7.25,新版本手上没有。大牛们就别看了。呵呵、
  
  Let's go~!
  
  PEID查PECompact 2.x -> Jeremy Collake,
  
  OD载入,
  
  0040DBAB p>  B8 6CE94300                  mov eax,pec2gui.0043E96C
  0040DBB0     50                           push eax
  0040DBB1     64:FF35 00000000             push dword ptr fs:[0]                //命令行hr esp
  0040DBB8     64:8925 00000000             mov dword ptr fs:[0],esp
  0040DBBF     33C0                         xor eax,eax
  0040DBC1     8908                         mov dword ptr ds:[eax],ecx
  
  F9运行,到达系统的ntdll.dll中
  
  7C94A4EC     3B45 F8                      cmp eax,dword ptr ss:[ebp-8]
  7C94A4EF     72 09                        jb short ntdll.7C94A4FA
  7C94A4F1     3B45 F4                      cmp eax,dword ptr ss:[ebp-C]
  7C94A4F4   ^ 0F82 DE0DFFFF                jb ntdll.7C93B2D8
  7C94A4FA     50                           push eax
  7C94A4FB     E8 67000000                  call ntdll.7C94A567
  7C94A500     84C0                         test al,al
  7C94A502   ^ 0F84 D00DFFFF                je ntdll.7C93B2D8
  7C94A508     F605 FAE3997C 80             test byte ptr ds:[7C99E3FA],80
  7C94A50F     0F85 245C0200                jnz ntdll.7C970139
  7C94A515     FF73 04                      push dword ptr ds:[ebx+4]
  
  再次F9
  7C94A515     FF73 04                      push dword ptr ds:[ebx+4]
  7C94A518     8D45 EC                      lea eax,dword ptr ss:[ebp-14]
  7C94A51B     50                           push eax
  7C94A51C     FF75 0C                      push dword ptr ss:[ebp+C]
  7C94A51F     53                           push ebx
  7C94A520     56                           push esi
  7C94A521     E8 218DFDFF                  call ntdll.7C923247
  7C94A526     F605 FAE3997C 80             test byte ptr ds:[7C99E3FA],80
  仍然在系统的一个dll内
  F9~~
  0043E99F     53                           push ebx
  0043E9A0     51                           push ecx
  0043E9A1     57                           push edi
  0043E9A2     56                           push esi
  0043E9A3     52                           push edx
  0043E9A4     8D98 57120010                lea ebx,dword ptr ds:[eax+1000>
  0043E9AA     8B53 18                      mov edx,dword ptr ds:[ebx+18]
  0043E9AD     52                           push edx
  0043E9AE     8BE8                         mov ebp,eax
  0043E9B0     6A 40                        push 40
  0043E9B2     68 00100000                  push 1000
  0043E9B7     FF73 04                      push dword ptr ds:[ebx+4]
  0043E9BA     6A 00                        push 0
  
  这时候到达一个程序的领空,应该到壳的尾段了。再次F9
  
  0043EA2E   - FFE0                         jmp eax                        ; pec2gui.<ModuleEntryPoint>//跳到OEP
  0043EA30     AB                           stos dword ptr es:[edi]
  0043EA31     DB40 00                      fild dword ptr ds:[eax]
  0043EA34     0000                         add byte ptr ds:[eax],al
  0043EA36     0000                         add byte ptr ds:[eax],al
  0043EA38     BF 745E4800                  mov edi,485E74
  0043EA3D     0000                         add byte ptr ds:[eax],al
  0043EA3F     0002                         add byte ptr ds:[edx],al
  0043EA41     0000                         add byte ptr ds:[eax],al
  
  jmp eax就是跳向OEP,此时删除硬件断点,F8单步到达OEP。
  
  0040DBAB p>  E8 3A5F0000                  call pec2gui.00413AEA    // OEP
  0040DBB0   ^ E9 A4FEFFFF                  jmp pec2gui.0040DA59
  0040DBB5     6A 0C                        push 0C
  0040DBB7     68 80184300                  push pec2gui.00431880
  0040DBBC     E8 3F010000                  call pec2gui.0040DD00
  0040DBC1     8B75 08                      mov esi,dword ptr ss:[ebp+8]
  0040DBC4     85F6                         test esi,esi
  0040DBC6     74 75                        je short pec2gui.0040DC3D
  0040DBC8     833D E89B4300 03             cmp dword ptr ds:[439BE8],3
  0040DBCF     75 43                        jnz short pec2gui.0040DC14
  0040DBD1     6A 04                        push 4
  0040DBD3     E8 24610000                  call pec2gui.00413CFC
  0040DBD8     59                           pop ecx
  0040DBD9     8365 FC 00                   and dword ptr ss:[ebp-4],0
  0040DBDD     56                           push esi
  0040DBDE     E8 4C610000                  call pec2gui.00413D2F
  0040DBE3     59                           pop ecx
  0040DBE4     8945 E4                      mov dword ptr ss:[ebp-1C],eax
  0040DBE7     85C0                         test eax,eax
  0040DBE9     74 09                        je short pec2gui.0040DBF4
  
  打开LorDPE,修正镜像大小,dumpfull。IMPortREC修复之。保存,运行可以的。
  
:没有什么好方法脱,只有esp定律,::confused希望和大家一起交流

如有错误欢迎指正,学习中...
  
  
  
  
  
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2009年11月09日 17:05:50

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 212
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
PEcompact  这个壳MS可以走捷径

若干次F9(SHIFT+F9)  就可以到达JMP EAX
2009-11-9 18:04
0
雪    币: 142
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
上楼有什么捷径说出来交流一下
2009-11-9 18:46
0
游客
登录 | 注册 方可回帖
返回
//