sunkj201 发表于 2009-8-6 09:44:21

关于手脱Armadillo 5.0 (Standard + Debug-Blocker).

在学习wuhanqi 手脱Armadillo 5.0 (Standard + Debug-Blocker).   的时候

首先运行Armadillo Process Detach.将unpackme脱入Arma Detach中。
会显示内容如下:
DONE!
Child process ID: 000002C8
Entry point: 004A2DC2
Original bytes: E8E3

这时我们打开一个od.文件--附加.然后选中PID为2C8的进程.即为Armadillo的子进程.
我们载入后.F9.再F12.便断到如下代码处: 复制内容到剪贴板 代码:
004A2DC2 >- EB FE         JMP SHORT <ModuleEntryPoint>
004A2DC4    40            INC EAX
004A2DC5    0000            ADD BYTE PTR DS:,AL
004A2DC7^ E9 16FEFFFF   JMP 004A2BE2
004A2DCC    6A 0C         PUSH 0C
004A2DCE    68 B0104D00   PUSH 004D10B0
004A2DD3    E8 44150000   CALL 004A431C
004A2DD8    8B4D 08         MOV ECX,DWORD PTR SS:
004A2DDB    33FF            XOR EDI,EDI
004A2DDD    3BCF            CMP ECX,EDI
004A2DDF    76 2E         JBE SHORT 004A2E0F
004A2DE1    6A E0         PUSH -20
004A2DE3    58            POP EAX
004A2DE4    33D2            XOR EDX,EDX
004A2DE6    F7F1            DIV ECX
004A2DE8    3B45 0C         CMP EAX,DWORD PTR SS:
入口点是一个跳转.其实是Arma Detach为了防止穿山甲检测.才修改了入口点.
我们根据Arma Detach给我们的数据:Original bytes: E8E3.将jmp那两个字节修改为E8E3.即可恢复正常的入口点. 复制内容到剪贴板 代码:
004A2DC2 >E8 E3400000   CALL 004A6EAA
004A2DC7^ E9 16FEFFFF   JMP 004A2BE2
004A2DCC    6A 0C         PUSH 0C
004A2DCE    68 B0104D00   PUSH 004D10B0
004A2DD3    E8 44150000   CALL 004A431C
004A2DD8    8B4D 08         MOV ECX,DWORD PTR SS:
004A2DDB    33FF            XOR EDI,EDI
004A2DDD    3BCF            CMP ECX,EDI
004A2DDF    76 2E         JBE SHORT 004A2E0F
004A2DE1    6A E0         PUSH -20
004A2DE3    58            POP EAX
004A2DE4    33D2            XOR EDX,EDX
004A2DE6    F7F1            DIV ECX
004A2DE8    3B45 0C         CMP EAX,DWORD PTR SS:
接下来我们需要确认OD没有硬件断点.以及Alt+B确认没有任何切换断点.
然后我们下bp VirtualProtect.可以使我们来到穿山甲处理IAT的地址.
shift+f9运行程序.OD就会有程序已被挂起的提示。。。换个OD也不行。我想问问这个应该怎么解决。。。

sniy 发表于 2009-8-18 21:42:25

这主题编辑的怎么这么乱呢?~
页: [1]
查看完整版本: 关于手脱Armadillo 5.0 (Standard + Debug-Blocker).