最近在学习脱穿山甲壳,可一个也没脱下来,关键是我对着教程,前面几步堆栈中的数据还能对上,但后面的,尤其是返回时机总是对不上而且执行用户代码老是是在那个地方,各步骤详细如下,我真的是要崩溃了,在百度上找了好长时间也没找到解决的办法。
00523C43 >/$ 55 PUSH EBP //入口处
00523C44 |. 8BEC MOV EBP,ESP
00523C46 |. 6A FF PUSH -1
00523C48 |. 68 90CF5400 PUSH Loader.0054CF90
00523C4D |. 68 80395200 PUSH Loader.00523980 ; SE 处理程序安装
00523C52 |. 64:A1 0000000> MOV EAX,DWORD PTR FS:[0]
00523C58 |. 50 PUSH EAX
00523C59 |. 64:8925 00000> MOV DWORD PTR FS:[0],ESP
00523C60 |. 83EC 58 SUB ESP,58
----------------------------------------------------------------------------------------
设置OD忽略所有异常,UDD文件中的文件已经全部清除。然后下断点he GetModuleHandleA+5 shift+F9到达这里。
7C80B6A6 837D 08 00 CMP DWORD PTR SS:[EBP+8],0
7C80B6AA 74 18 JE SHORT kernel32.7C80B6C4
7C80B6AC FF75 08 PUSH DWORD PTR SS:[EBP+8]
7C80B6AF E8 C0290000 CALL kernel32.7C80E074
7C80B6B4 85C0 TEST EAX,EAX
7C80B6B6 74 08 JE SHORT kernel32.7C80B6C0
7C80B6B8 FF70 04 PUSH DWORD PTR DS:[EAX+4]
7C80B6BB E8 7D2D0000 CALL kernel32.GetModuleHandleW
7C80B6C0 5D POP EBP
------------------------------------------------------------------------------------------
堆栈中的数据。
0012FF34 /0012FFC0
0012FF38 |00523D0B 返回到 Loader.<模块入口点>+0C8 来自 kernel32.GetModuleHandleA
0012FF3C |00000000
0012FF40 |00000000
0012ED2C /0012ED64
0012ED30 |5D175324 返回到 5D175324 来自 kernel32.GetModuleHandleA
0012ED34 |5D175370 ASCII "kernel32.dll"
0012ED38 |5D1E3AB8
0012F738 /0012F7A0
0012F73C |0050E8F3 返回到 Loader.0050E8F3 来自 kernel32.GetModuleHandleA
0012F740 |00000000
0012F744 |0000FFFF
0012CF40 /0012E200
0012CF44 |60002347 返回到 kmon.60002347 来自 kernel32.GetModuleHandleA
0012CF48 |600603E0 ASCII "ntdll.dll"
0012CF4C |669A12BA inetmib1.669A12BA
其中在这里我的跳转感觉挺大的,取消断点后,在这里执行到用户代码然后就返回到这里好我调试的3个软件都是跳到这里,这个问题急需解决,
003E5C56 894424 1C MOV DWORD PTR SS:[ESP+1C],EAX
003E5C5A 61 POPAD
003E5C5B F0:FF0D F85B3E0>LOCK DEC DWORD PTR DS:[3E5BF8] ; LOCK 前缀
003E5C62 9D POPFD
003E5C63 C2 1800 RETN 18
003E5C66 90 NOP
003E5C67 90 NOP
003E5C68 90 NOP
003E5C69 90 NOP
003E5C6A 90 NOP
003E5C6B 90 NOP
003E5C6C 90 NOP
003E5C6D 90 NOP
003E5C6E 90 NOP
003E5C6F 90 NOP
003E5C70 90 NOP
003E5C71 90 NOP
003E5C72 90 NOP
就成这样了,我脱了3个穿山甲的壳,都是这样,就不知道怎么回事,是不是我设置有问题
00129524 /0012EC6C
00129528 |00CD7105 返回到 00CD7105 来自 kernel32.GetModuleHandleA
0012952C |00CEBC1C ASCII "kernel32.dll"
00129530 |00CECEC4 ASCII "VirtualAlloc"
00129524 /0012EC6C
00129528 |00CD7122 返回到 00CD7122 来自 kernel32.GetModuleHandleA
0012952C |00CEBC1C ASCII "kernel32.dll"
00129530 |00CECEB8 ASCII "VirtualFree"111111111111111111111
00129288 /00129528
0012928C |00BF5FC9 返回到 00BF5FC9 来自 kernel32.GetModuleHandleA
00129290 |001293DC ASCII "kernel32.dll"
教程上是到这里说是返回时机,可是我在1111111111111111111处再按F9就出现了
不知道如何回避00D0166F处的命令,请尝试更改EIP,或将异常传给程序。这是一个对话框附件传不上来就只能打字了
我调试穿山甲第一步就没过去过,我完全按照教程的思想,步骤,并且用的是他们调试的程序。但就是找不到MAGIC JUMP。请看雪的高手,斑竹们帮帮我,我QQ393025074.本人不胜感激。学习中就在这块遇到问题了。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)