首页
社区
课程
招聘
对于 Armadillo 脱壳壳后[Overlay]理解![讨论]
发表于: 2005-3-21 15:09 4634

对于 Armadillo 脱壳壳后[Overlay]理解![讨论]

2005-3-21 15:09
4634
用PE 查壳的类型为
Armadillo 1.xx - 2.xx -> Silicon Realms Toolworks [Overlay]
关于Armadillo 1.xx - 2.xx -> Silicon Realms Toolworks的壳论坛有帖子!
我就直接OD载入程序到了
00656999 M>/$  55          push ebp
0065699A   |.  8BEC        mov ebp,esp
0065699C   |.  6A FF       push -1
0065699E   |.  68 506C6700 push M2Server.00676C50
006569A3   |.  68 80636500 push M2Server.00656380             ;  SE handler installation
006569A8   |.  64:A1 00000>mov eax,dword ptr fs:[0]
006569AE   |.  50          push eax
006569AF   |.  64:8925 000>mov dword ptr fs:[0],esp
006569B6   |.  83EC 58     sub esp,58
006569B9   |.  53          push ebx
006569BA   |.  56          push esi
006569BB   |.  57          push edi
006569BC   |.  8965 E8     mov dword ptr ss:[ebp-18],esp
下了BP OpenMutexA命令,然后F9运行
程序断在 7C80EC1B k>  8BFF          mov edi,edi
7C80EC1D     55            push ebp
7C80EC1E     8BEC          mov ebp,esp
7C80EC20     51            push ecx
7C80EC21     51            push ecx
7C80EC22     837D 10 00    cmp dword ptr ss:[ebp+10],0
7C80EC26     56            push esi
7C80EC27     0F84 7A500300 je kernel32.7C843CA7
我查看了调用堆栈  应该压的地方是0012FBDC
根据各位老大提供的经验得:Ctrl+G定位到00401000处:
00401000                                 0000                   add byte ptr ds:[eax],al
00401002                                 0000                   add byte ptr ds:[eax],al
00401004                                 0000                   add byte ptr ds:[eax],al
00401006                                 0000                   add byte ptr ds:[eax],al
00401008                                 0000                   add byte ptr ds:[eax],al
0040100A                                 0000                   add byte ptr ds:[eax],al
0040100C                                 0000                   add byte ptr ds:[eax],al
0040100E                                 0000                   add byte ptr ds:[eax],al
以上全是空码,在00401000处Ctrl+E贴上以下代码,这些是根据老大们的经验得来的 :
00401000                                 60                     pushad
00401001                                 9C                     pushfd
00401002                                 68 F0FB1200            push 12FBDC  *这是堆栈中看到的
00401007                                 33C0                   xor eax,eax
00401009                                 50                     push eax
0040100A                                 50                     push eax
0040100B                                 E8 2FDB407C            call kernel32.CreateMutexA
00401010                                 9D                     popfd
00401011                                 61                     popad
00401012                               - E9 04DC407C            jmp kernel32.OpenMutexA
然的天00401000处单击右键,在弹出的菜单上选”在此处新建EIP“,确正。然后F9运行
断在
7C80EC1B k>  8BFF          mov edi,edi        *F2 取消
7C80EC1D     55            push ebp
7C80EC1E     8BEC          mov ebp,esp
7C80EC20     51            push ecx
7C80EC21     51            push ecx
7C80EC22     837D 10 00    cmp dword ptr ss:[ebp+10],0
7C80EC26     56            push esi
7C80EC27     0F84 7A500300 je kernel32.7C843CA7
Ctrl+G定位到00401000处,右键取消的修改。之后下断点:BP GetModuleHandleA ,F9运行
断在
7C80B529 k>  8BFF          mov edi,edi    *F2 取消开始调试
7C80B52B     55            push ebp
7C80B52C     8BEC          mov ebp,esp
7C80B52E     837D 08 00    cmp dword ptr ss:[ebp+8],0
7C80B532     74 18         je short kernel32.7C80B54C   点右键改在硬件执行;F9大概3次后又忽略一处异常后删除硬件断点 CTRL+F9 一路到
00DB799B     8B0D E011DE00 mov ecx,dword ptr ds:[DE11E0]
00DB79A1     89040E        mov dword ptr ds:[esi+ecx],eax
00DB79A4     A1 E011DE00   mov eax,dword ptr ds:[DE11E0]
00DB79A9     393C06        cmp dword ptr ds:[esi+eax],edi
00DB79AC     75 16         jnz short 00DB79C4
00DB79AE     8D85 B4FEFFFF lea eax,dword ptr ss:[ebp-14C]
00DB79B4     50            push eax
00DB79B5     FF15 CC80DD00 call dword ptr ds:[DD80CC]         ; kernel32.LoadLibraryA
00DB79BB     8B0D E011DE00 mov ecx,dword ptr ds:[DE11E0]
00DB79C1     89040E        mov dword ptr ds:[esi+ecx],eax
00DB79C4     A1 E011DE00   mov eax,dword ptr ds:[DE11E0]
00DB79C9     393C06        cmp dword ptr ds:[esi+eax],edi
00DB79CC     0F84 AD000000 je 00DB7A7F   *改为   jmp 00DB7A7F   
00DB79D2     33C9          xor ecx,ecx
00DB79D4     8B03          mov eax,dword ptr ds:[ebx]
00DB79D6     3938          cmp dword ptr ds:[eax],edi
00DB79D8     74 06         je short 00DB79E0
00DB79DA     41            inc ecx
00DB79DB     83C0 0C       add eax,0C
00DB79DE   ^ EB F6         jmp short 00DB79D6
后下断点 BP GetCurrentThreadId,F9运行。中断后 查看堆栈 大概2次F9 后返回在  
00DD456C     A3 AC56DE00   mov dword ptr ds:[DE56AC],eax
00DD4571     E8 1537FEFF   call 00DB7C8B
00DD4576     6A 00         push 0
00DD4578     E8 648FFEFF   call 00DBD4E1
00DD457D     6A 00         push 0
00DD457F     C705 DCDBDD00>mov dword ptr ds:[DDDBDC],0DDE6E8  ; ASCII "RC"
00DD4589     E8 7231FEFF   call 00DB7700
00DD458E     59            pop ecx
00DD458F     59            pop ecx
00DD4590     E8 4A11FFFF   call 00DC56DF
00DD4595     8BF8          mov edi,eax
00DD4597     A1 9455DE00   mov eax,dword ptr ds:[DE5594]
00DD459C     8B48 70       mov ecx,dword ptr ds:[eax+70]
00DD459F     3348 40       xor ecx,dword ptr ds:[eax+40]
00DD45A2     3348 08       xor ecx,dword ptr ds:[eax+8]
00DD45A5     03F9          add edi,ecx
00DD45A7     8B0E          mov ecx,dword ptr ds:[esi]
00DD45A9     85C9          test ecx,ecx
00DD45AB     75 2F         jnz short 00DD45DC
00DD45AD     8B78 70       mov edi,dword ptr ds:[eax+70]
00DD45B0     E8 2A11FFFF   call 00DC56DF
00DD45B5     8B0D 9455DE00 mov ecx,dword ptr ds:[DE5594]      ; M2Server.00671260
00DD45BB     FF76 14       push dword ptr ds:[esi+14]
00DD45BE     8B51 40       mov edx,dword ptr ds:[ecx+40]
00DD45C1     FF76 10       push dword ptr ds:[esi+10]
00DD45C4     3351 08       xor edx,dword ptr ds:[ecx+8]
00DD45C7     FF76 0C       push dword ptr ds:[esi+C]
00DD45CA     33D7          xor edx,edi
00DD45CC     03C2          add eax,edx
00DD45CE     8B51 68       mov edx,dword ptr ds:[ecx+68]
00DD45D1     3351 04       xor edx,dword ptr ds:[ecx+4]
00DD45D4     33D7          xor edx,edi
00DD45D6     2BC2          sub eax,edx
00DD45D8     FFD0          call eax
00DD45DA     EB 25         jmp short 00DD4601
00DD45DC     83F9 01       cmp ecx,1
00DD45DF     75 22         jnz short 00DD4603
00DD45E1     FF76 04       push dword ptr ds:[esi+4]
00DD45E4     FF76 08       push dword ptr ds:[esi+8]
00DD45E7     6A 00         push 0
00DD45E9     E8 F110FFFF   call 00DC56DF
00DD45EE     50            push eax
00DD45EF     A1 9455DE00   mov eax,dword ptr ds:[DE5594]
00DD45F4     8B48 70       mov ecx,dword ptr ds:[eax+70]
00DD45F7     3348 68       xor ecx,dword ptr ds:[eax+68]
00DD45FA     3348 04       xor ecx,dword ptr ds:[eax+4]
00DD45FD     2BF9          sub edi,ecx
00DD45FF     FFD7          call edi
00DD4601     8BD8          mov ebx,eax
00DD4603     5F            pop edi
00DD4604     8BC3          mov eax,ebx
00DD4606     5E            pop esi
00DD4607     5B            pop ebx
00DD4608     C3            retn
继续调试到:;005E4AF0     55            push ebp
005E4AF1     8BEC          mov ebp,esp
005E4AF3     83C4 F0       add esp,-10
005E4AF6     B8 E8465E00   mov eax,M2Server.005E46E8
005E4AFB     E8 2C22E2FF   call M2Server.00406D2C
005E4B00     74 03         je short M2Server.005E4B05
005E4B02     75 01         jnz short M2Server.005E4B05
005E4B04     E8 8D054C45   call 45AA5096
005E4B09     5E            pop esi
005E4B0A     00FF          add bh,bh
005E4B0C     D07404 75     sal byte ptr ss:[esp+eax+75],1
005E4B10     02F4          add dh,ah
005E4B12     FFE8          jmp far eax                        ; 非法使用寄存器
005E4B14     1C FB         sbb al,0FB
005E4B16     E1 FF         loopde short M2Server.005E4B17

这里的字体全是红色的 ! 也就是程序的入口了!这里就可以直接DUMP了:
用Import Reconstructor 1.4.2+ 修复  后程序不能正常运行!因为个别指针无效!・
虽然解决了 Armadillo 1.xx - 2.xx -> Silicon Realms Toolworks 的问题但是[Overlay] 问题还没有 解决!之后我又查阅了大量的关于[Overlay]在本论坛的帖子!仍未解决! 请高手帮忙写完


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

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 898
活跃值: (4054)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
2
自己先用Armadillo的几种加壳方式加壳记事本练习脱壳
2005-3-21 15:15
0
雪    币: 218
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
关键是附加数据的问题啊!!!壳已经脱了!
2005-3-21 15:30
0
雪    币: 898
活跃值: (4054)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
4
你确定?
你自己用16进制工具查看一下这个东东所谓的附加数据就明白了
2005-3-21 16:27
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
呵呵
M2server.exe
传奇服务器主程序
2005-3-21 16:39
0
雪    币: 218
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
啊!那老大的意思是我的壳根本就没有脱正确对不!可是我用了几种办法都到了这一步!请FLY老大给点提示!谢谢!
2005-3-21 17:22
0
雪    币: 898
活跃值: (4054)
能力值: ( LV9,RANK:3410 )
在线值:
发帖
回帖
粉丝
7
看第2楼

估计你还不清楚Armadillo的几种加壳方式,所以让你去做一下
2005-3-21 17:24
0
雪    币: 218
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
好的谢谢老大指点
2005-3-21 17:32
0
雪    币: 218
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
FLY老大用其他的办法!OD 载入运行就提示 尝试新建个EIP 忽略所有异常的话  就跑飞了 !!
能不能给个大致思路啊!我已经走了很多弯路了!在继续我真的没有信心了!
2005-3-21 17:46
0
游客
登录 | 注册 方可回帖
返回