根据论坛中的教程看了N 个armadillo DLL脱壳的教程 就是搞不定,请高人给我做下 过程 非常感谢!!
http://soft.yq169.cn/ScriptLoader.rar用PEID 查壳为 Armadillo 2.51 - 3.xx DLL Stub -> Silicon Realms Toolworks
OD 载入
来到 00930897 >/$ 55 PUSH EBP
00930898 |. 8BEC MOV EBP,ESP
0093089A |. 53 PUSH EBX
0093089B |. 8B5D 08 MOV EBX,DWORD PTR SS:[EBP+8]
0093089E |. 56 PUSH ESI
0093089F |. 8B75 0C MOV ESI,DWORD PTR SS:[EBP+C]
009308A2 |. 57 PUSH EDI
009308A3 |. 8B7D 10 MOV EDI,DWORD PTR SS:[EBP+10]
009308A6 |. 85F6 TEST ESI,ESI
009308A8 |. 75 09 JNZ SHORT ScriptLo.009308B3
009308AA |. 833D DCB79400>CMP DWORD PTR DS:[94B7DC],0
009308B1 |. EB 26 JMP SHORT ScriptLo.009308D9
009308B3 |> 83FE 01 CMP ESI,1
009308B6 |. 74 05 JE SHORT ScriptLo.009308BD
009308B8 |. 83FE 02 CMP ESI,2
下断点 HE OutputDebugStringA
Shift+F9 运行,中断下来。看堆栈:
0006EA98 00B25B30 /CALL 到 OutputDebugStringA 来自 00B25B2A
0006EA9C 0006F410 \String = "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s"
0006EAA0 00000000
0006EAA4 00000001
0006EAA8 00870000 ASCII "MZP"
0006EAAC 00080000
出现这个说明这个DLL是经过Armadillo 4.X压缩过
2 判断进程:DLL文件加壳应该是不可以双进程,所以这里是单进程方式。
二 、脱壳
1 寻找 Magic Jump
lordpe 查看 基址 00400000 入口点 000C0897
设置Ollydbg忽略所有的异常选项。去掉Ollydbg的调试器标志 清除断点后OD 重新载入
00930897 >/$ 55 PUSH EBP
00930898 |. 8BEC MOV EBP,ESP
0093089A |. 53 PUSH EBX
0093089B |. 8B5D 08 MOV EBX,DWORD PTR SS:[EBP+8]
0093089E |. 56 PUSH ESI
0093089F |. 8B75 0C MOV ESI,DWORD PTR SS:[EBP+C]
009308A2 |. 57 PUSH EDI
009308A3 |. 8B7D 10 MOV EDI,DWORD PTR SS:[EBP+10]
009308A6 |. 85F6 TEST ESI,ESI
009308A8 |. 75 09 JNZ SHORT ScriptLo.009308B3
009308AA |. 833D DCB79400>CMP DWORD PTR DS:[94B7DC],0
009308B1 |. EB 26 JMP SHORT ScriptLo.009308D9
下断点 BP GetModuleHandleA,Shift+F9 运行 不知道怎么了OD 挂了
下断点 BP GetModuleHandleA+5 清除断点后OD 重新载入 OD 也挂了
搞不懂 按教程来的,为什么就不行呢
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)