能力值:
( LV2,RANK:10 )
|
-
-
2 楼
关于第15课--15、手脱Armadillo壳(穿山甲壳),要点如下:
第一、he GetModuleHandleA+5,选择返回的时机要正确
第二、记得修改MAGIC JUMP
第三、he GetCurrentThreadId选择返回的时机要正确,同第一个断点一样,一般在一个较大缓冲之后的断点返回用户领空
第四、dump程序时务必清除所有断点
第五、修复IAT前剪除无效指针
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
此外,在修改完MAGIC JUMP后直接在CODE区段下设置访问中断,可直接到达OEP。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
关于第16课双线程--进阶Armadillo壳
按照教程试了一下没有问题。
估计可能的问题:
1、记得隐藏OD
2、双变单过程push 12FDA0要修改成断点函数OpenMutexA的MutexName在堆栈地址中的数值
00401000 60 pushad
00401001 9C pushfd
00401002 68 A0FD1200 push 12FDA0 ; ASCII "44C::DA47D45903"
0012F71C 0012FDA0 MutexName = "12E0::DA47D45903"
并且返回到OpenMutexA后,记得将0x401000处修改的代码撤销
3、magic jump实际上要修改三次,分别对应如下三个动态库的GetModuleHandleA返回。
"KERNEL32.DLL"
"user32.dll"
"advapi32.dll"
教程为了简化脱壳过程,在修改完MAGIC JUMP后在如下JMP代码出下断。
01055C14 EB 03 jmp short 01055C19 //F2下断,Shift+F9,断下!取消断点!
01055C16 D6 salc
01055C17 D6 salc
断下后,除了取消断点,记得恢复MAGIC JUMP处代码;同时在CODE断F2下断。
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
牛,学习中的确可以得到帮助的
|
|
|