yayazhi 发表于 2008-3-11 08:43:39

Armadillo 2.51 - 3.xx DLL 脱壳问题

用PEiD查壳 Armadillo 2.51 - 3.xx DLL Stub -> Silicon Realms Toolworks

OD 载入    停在这里

00934897 >/$55            PUSH EBP
00934898|.8BEC          MOV EBP,ESP
0093489A|.53            PUSH EBX
0093489B|.8B5D 08       MOV EBX,DWORD PTR SS:
0093489E|.56            PUSH ESI
0093489F|.8B75 0C       MOV ESI,DWORD PTR SS:
009348A2|.57            PUSH EDI
009348A3|.8B7D 10       MOV EDI,DWORD PTR SS:


下断点 BP GetModuleHandleA+5,   Shift+F9 运行中断后看堆栈:

到这里

000690C8/00069368
000690CC|00D65FC9返回到 00D65FC9 来自 kernel32.GetModuleHandleA
000690D0|0006921CASCII "kernel32.dll"

清除断点ALT+F9返回   


00D65FC9    8B0D AC40D900   MOV ECX,DWORD PTR DS:         返回到这里
00D65FCF    89040E          MOV DWORD PTR DS:,EAX
00D65FD2    A1 AC40D900   MOV EAX,DWORD PTR DS:
00D65FD7    391C06          CMP DWORD PTR DS:,EBX
00D65FDA    75 16         JNZ SHORT 00D65FF2
00D65FDC    8D85 B4FEFFFF   LEA EAX,DWORD PTR SS:
00D65FE2    50            PUSH EAX
00D65FE3    FF15 BC62D800   CALL DWORD PTR DS:               ; kernel32.LoadLibraryA
00D65FE9    8B0D AC40D900   MOV ECX,DWORD PTR DS:
00D65FEF    89040E          MOV DWORD PTR DS:,EAX
00D65FF2    A1 AC40D900   MOV EAX,DWORD PTR DS:
00D65FF7    391C06          CMP DWORD PTR DS:,EBX
00D65FFA    0F84 2F010000   JE 00D6612F                               je修改为jmp
00D66000    33C9            XOR ECX,ECX
00D66002    8B07            MOV EAX,DWORD PTR DS:
00D66004    3918            CMP DWORD PTR DS:,EBX
00D66006    74 06         JE SHORT 00D6600E
00D66008    41            INC ECX
00D66009    83C0 0C         ADD EAX,0C
00D6600C^ EB F6         JMP SHORT 00D66004


下断点 bp GetTickCount,Shift+F9 运行



00069370   00D7C6D7/CALL 到 GetTickCount 来自 00D7C6D1         在这里清除断点后Alt+F9返回
00069374   00D8FA98
00069378   7C9210EDntdll.RtlLeaveCriticalSection



00D7C6D7    2B85 A4D4FFFF   SUB EAX,DWORD PTR SS:       返回到这里
00D7C6DD    8B8D A8D4FFFF   MOV ECX,DWORD PTR SS:
00D7C6E3    6BC9 32         IMUL ECX,ECX,32
00D7C6E6    81C1 D0070000   ADD ECX,7D0
00D7C6EC    3BC1            CMP EAX,ECX
00D7C6EE    76 07         JBE SHORT 00D7C6F7
00D7C6F0    C685 34D9FFFF 0>MOV BYTE PTR SS:,1
00D7C6F7    83BD E4D7FFFF 0>CMP DWORD PTR SS:,0
00D7C6FE    0F85 8A000000   JNZ 00D7C78E
00D7C704    0FB685 94D4FFFF MOVZX EAX,BYTE PTR SS:
00D7C70B    85C0            TEST EAX,EAX
00D7C70D    74 7F         JE SHORT 00D7C78E
00D7C70F    6A 00         PUSH 0
00D7C711    8B85 98D4FFFF   MOV EAX,DWORD PTR SS:
00D7C717    C1E0 02         SHL EAX,2
00D7C71A    50            PUSH EAX
00D7C71B    8B85 0CD8FFFF   MOV EAX,DWORD PTR SS:
00D7C721    0385 90D4FFFF   ADD EAX,DWORD PTR SS:
00D7C727    50            PUSH EAX
00D7C728    E8 0D1E0000   CALL 00D7E53A
00D7C72D    83C4 0C         ADD ESP,0C
00D7C730    8B85 98D4FFFF   MOV EAX,DWORD PTR SS:


在 CPU 窗口按 Ctrl+S 查找如下代码

PUSH EAX
XCHG CX,CX
POP EAX
STC



提示命令未找到。不知道为什么/:011 ,请高手指点谢谢/:good ..

xuhw 发表于 2008-3-12 20:59:40

露希HE GetModuleHandleAShift+F9.栈囟位恚

xuhw 发表于 2008-3-12 21:01:26

要囟位,诖,

yingfeng 发表于 2008-3-12 21:05:57

bp GetTickCount换成
bp CreateThread 然后ALT+F9

F8到CALL ECXF7进

试下吧

yayazhi 发表于 2008-3-23 18:07:16

版主大姐,用你的方法F8好象到不了CALL ECX,麻烦你给小弟写个详细点的教程好嘛?/:good /:good /:good

yayazhi 发表于 2008-3-23 21:13:19

http://bbs.pediy.com/attachment.php?attachmentid=12497&d=1205645630

这有个附件/:L
页: [1]
查看完整版本: Armadillo 2.51 - 3.xx DLL 脱壳问题