Blackk 发表于 2010-7-26 21:51:15

脱Armadillo 3.78 -> Silicon Realms Toolworks的壳时下GetModuleHandleA+5

脱Armadillo 3.78 -> Silicon Realms Toolworks的壳时下GetModuleHandleA+5到不了MAGIC JUMP
  请问下这是为什么?

xiaomajia 发表于 2010-7-27 11:11:34

因为你没看见被

爱因斯坦 发表于 2010-7-27 13:01:12

首先看你下GetModuleHandleA+5能不能断下来,如果能断下来就按接下来的做。
如果不能,建议换个强点的OD+SOD。

断下后按F9,注意观察堆栈,直到出现(地址不一样,注意后面的ASCII字符)001294AC   00B6CD14  ASCII "kernel32.dll"  
001294B0   00B6E094  ASCII "VirtualAlloc"再按一次F9,将出现下面的001294AC   00B6CD14  ASCII "kernel32.dll"
001294B0   00B6E088  ASCII "VirtualFree"再按一次F9,将出现下面的00129210   0012935C  ASCII "kernel32.dll"此时就是返回时机。

返回后将看到00B464F5    FF15 E471B600   call dword ptr ds:      ; kernel32.LoadLibraryA(标志)
00B464FB    8B0D AC55B700   mov ecx,dword ptr ds:
00B46501    89040E          mov dword ptr ds:,eax
00B46504    A1 AC55B700     mov eax,dword ptr ds:
00B46509    391C06          cmp dword ptr ds:,ebx
00B4650C    0F84 2F010000   je 00B46641                  (大je Magic jump就它了)
00B46512    33C9            xor ecx,ecx
00B46514    8B07            mov eax,dword ptr ds:
00B46516    3918            cmp dword ptr ds:,ebx
00B46518    74 06           je short 00B46520               (小 je)
00B4651A    41              inc ecx
00B4651B    83C0 0C         add eax,0C
00B4651E  ^ EB F6           jmp short 00B46516   (两个je 一个jmp 这也是判断是否正确的标志)

Blackk 发表于 2010-7-27 16:14:22

感谢感谢··昨天别人也给我指出出现三次"kernel32.dll"的时候差不多就到了··
谢谢你热心的回答·

爱因斯坦 发表于 2010-7-27 19:34:03

VirtualAlloc
VirtualFree
主要是看这两个函数

Blackk 发表于 2010-7-27 20:39:31

回复 5# 爱因斯坦


    貌似还是不行·
下断点后断在
7C80B52E    837D 08 00      cmp     dword ptr , 0
7C80B532    74 18           je      short 7C80B54C
F9后
堆:
0012E6FC  /0012E71C
0012E700  |76686512  返回到 wininet.76686512 来自 kernel32.GetModuleHandleA
0012E704  |76686520  ASCII "shlwapi.dll"
0012E708  |7668652C  ASCII "DelayLoadFailureHook"


没有出现你所说的那两个函数

最后就
7C80B52E    837D 08 00      cmp     dword ptr , 0
7C80B532    74 18           je      short 7C80B54C


不动了

爱因斯坦 发表于 2010-7-27 22:29:53

东西放外链发上来看看吧。:)

Blackk 发表于 2010-7-28 16:37:05

本帖最后由 Blackk 于 2010-7-28 16:38 编辑

回复 7# 爱因斯坦
http://mail.qq.com/cgi-bin/ftnExs_download?k=7a65663432d4eccf4ed20f3f1131031f02045555545257031c060555011c050704564b550303051d070057060006050557555e063727317162234677585f47554311034617031f06094b034c52310c&t=exs_ftn_download&code=1ef47110

Blackk 发表于 2010-7-28 16:37:26

回复 7# 爱因斯坦 http://mail.qq.com/cgi-bin/ftnExs_download?k=7a65663432d4eccf4ed20f3f1131031f02045555545257031c060555011c050704564b550303051d070057060006050557555e063727317162234677585f47554311034617031f06094b034c52310c&t=exs_ftn_download&code=1ef47110

爱因斯坦 发表于 2010-7-28 21:46:10

帮你帮到底吧,这个程序好像天草教程里面有。
下 GetModuleHandleA
F9直到出现如下001292A8   00B86AA1  返回到 00B86AA1 来自 kernel32.GetModuleHandleA
001292AC   00B9BD6C  ASCII "kernel32.dll"
001292B0   00B9DDAC  ASCII "VirtualAlloc"再按一次F9如下001292A8   00B86ABE  返回到 00B86ABE 来自 kernel32.GetModuleHandleA
001292AC   00B9BD6C  ASCII "kernel32.dll"
001292B0   00B9DDA0  ASCII "VirtualFree"再按一次F9就到返回时机了,如下0012900C   00B75A14  返回到 00B75A14 来自 kernel32.GetModuleHandleA
00129010   0012915C  ASCII "kernel32.dll"Alt+F9返回00B75A14    8B0D 6C50BA00   mov ecx,dword ptr ds:
00B75A1A    89040E          mov dword ptr ds:,eax
00B75A1D    A1 6C50BA00     mov eax,dword ptr ds:
00B75A22    391C06          cmp dword ptr ds:,ebx
00B75A25    75 16           jnz short 00B75A3D
00B75A27    8D85 B4FEFFFF   lea eax,dword ptr ss:
00B75A2D    50              push eax
00B75A2E    FF15 B862B900   call dword ptr ds:               ; kernel32.LoadLibraryA(标志)
00B75A34    8B0D 6C50BA00   mov ecx,dword ptr ds:
00B75A3A    89040E          mov dword ptr ds:,eax
00B75A3D    A1 6C50BA00     mov eax,dword ptr ds:
00B75A42    391C06          cmp dword ptr ds:,ebx
00B75A45    0F84 2F010000   je 00B75B7A                                  ;长跳转 magic jump
00B75A4B    33C9            xor ecx,ecx
00B75A4D    8B07            mov eax,dword ptr ds:
00B75A4F    3918            cmp dword ptr ds:,ebx
00B75A51    74 06           je short 00B75A59
00B75A53    41              inc ecx
00B75A54    83C0 0C         add eax,0C
00B75A57  ^ EB F6           jmp short 00B75A4F改完之后在magic jump的正常跳转的下面下断,断下后再把magic jump那里改回去。不然会被检测到。

下 CreateThread 断下后返回,单步走,找CALL寄存器。00B90325    6A 00           push 0
00B90327    FF76 0C         push dword ptr ds:
00B9032A    2BCA            sub ecx,edx
00B9032C    FFD1            call ecx                                               ;F7跟进到达OEP
00B9032E    8945 FC         mov dword ptr ss:,eax
00B90331    8B45 FC         mov eax,dword ptr ss:OEP如下004312A7    55              push ebp
004312A8    8BEC            mov ebp,esp
004312AA    6A FF           push -1
004312AC    68 B8CA4500     push ASFConve.0045CAB8
004312B1    68 605A4300     push ASFConve.00435A60修复,无效指针14个,剪切掉。



关于,Armadillo脱壳后显示1.XX-2.XX,可以参考fly大哥的办法。

可以试试用PETools->PE Ediotr打开脱壳后文件,->Optional Header
修改Major Linker Version、Minor Linker Version为00、00或者05、0C或者06 00(VC)



收工。

Blackk 发表于 2010-7-28 22:08:48

回复 10# 爱因斯坦
弱弱的问一句··
在虚拟机里情况是不是会不一样·
就是天草教程里的·

爱因斯坦 发表于 2010-7-28 22:11:38

应该不会,确定你的OD没问题?
我用的 Shadow Defender 没用过虚拟机,感觉太麻烦。
以上回复基本算一篇Armadillo脱壳文章了。
汗。

Blackk 发表于 2010-7-28 22:19:35

回复 12# 爱因斯坦


    奥··让你费心了··
  果然是虚拟机的问题··
   在本机上就是按你的方法就可以了··
可以加MSN吗?

爱因斯坦 发表于 2010-7-28 22:28:31

失败,发完PM才看到发PM扣UB的,哭,太不合理了{:2_78:}
助人为快乐之本{:2_71:}

xie83544109 发表于 2010-7-29 10:11:20

{:3_99:}
哦也来下载学习看。。。
页: [1] 2
查看完整版本: 脱Armadillo 3.78 -> Silicon Realms Toolworks的壳时下GetModuleHandleA+5