首页
社区
课程
招聘
[旧帖] [求助]Armadillo 2.51 - 3.xx DLL Stub -> Silicon Realms Toolworks 0.00雪花
发表于: 2008-7-22 14:24 2309

[旧帖] [求助]Armadillo 2.51 - 3.xx DLL Stub -> Silicon Realms Toolworks 0.00雪花

2008-7-22 14:24
2309
用OD载入,然后用插件隐藏OD...

00A14897 >  55                 push ebp                        ;停在这里
00A14898    8BEC               mov ebp,esp
00A1489A    53                 push ebx
00A1489B    8B5D 08            mov ebx,dword ptr ss:[ebp+8]
00A1489E    56                 push esi

CTRL+G输入GetModuleHandleA

7C82474A >  8BFF               mov edi,edi                    ;来到这里
7C82474C    55                 push ebp
7C82474D    8BEC               mov ebp,esp
7C82474F    837D 08 00         cmp dword ptr ss:[ebp+8],0
7C824753    74 18              je short kernel32.7C82476D      ;在这里下硬件执行断点
7C824755    FF75 08            push dword ptr ss:[ebp+8]

按了8次SHIFT+F9后堆栈里看到

000693A4  /0006EAEC
000693A8  |00F57122    返回到 00F57122 来自 kernel32.GetModuleHandleA
000693AC  |00F6BC1C    ASCII "kernel32.dll"
000693B0  |00F6CEB8    ASCII "VirtualFree"

继续SHIFT+F9一次就取消断点,ALT+F9返回

00F45FC9    8B0D AC40F700      mov ecx,dword ptr ds:[F740AC]            ;返回到这里
00F45FCF    89040E             mov dword ptr ds:[esi+ecx],eax
00F45FD2    A1 AC40F700        mov eax,dword ptr ds:[F740AC]
00F45FD7    391C06             cmp dword ptr ds:[esi+eax],ebx
00F45FDA    75 16              jnz short 00F45FF2
00F45FDC    8D85 B4FEFFFF      lea eax,dword ptr ss:[ebp-14C]
00F45FE2    50                 push eax
00F45FE3    FF15 BC62F600      call dword ptr ds:[F662BC]               ; kernel32.LoadLibraryA
00F45FE9    8B0D AC40F700      mov ecx,dword ptr ds:[F740AC]
00F45FEF    89040E             mov dword ptr ds:[esi+ecx],eax
00F45FF2    A1 AC40F700        mov eax,dword ptr ds:[F740AC]
00F45FF7    391C06             cmp dword ptr ds:[esi+eax],ebx
00F45FFA    0F84 2F010000      je 00F4612F                                         ;改为jmp后回车跟随
00F46000    33C9               xor ecx,ecx
00F46002    8B07               mov eax,dword ptr ds:[edi]
00F46004    3918               cmp dword ptr ds:[eax],ebx
00F46006    74 06              je short 00F4600E

00F4612F    83C7 0C            add edi,0C                                                ;来到这个地方
00F46132    89BD 78FDFFFF      mov dword ptr ss:[ebp-288],edi
00F46138    83C6 04            add esi,4
00F4613B    395F FC            cmp dword ptr ds:[edi-4],ebx
00F4613E  ^ 0F85 49FEFFFF      jnz 00F45F8D
00F46144    EB 03              jmp short 00F46149                                ;在这里F2之后SHIFT+F9运行,然后F2取消断点
00F46146    D6                 salc
00F46147    D6                 salc

回到00F45FFA撤销更改,CTRL+G输入GetTickCount

7C8219D1 > /EB 07              jmp short kernel32.7C8219DA                ;在这里F2下断
7C8219D3   |F3:                prefix rep:
7C8219D4   |90                 nop
7C8219D5   |90                 nop
7C8219D6   |90                 nop
7C8219D7   |90                 nop
7C8219D8   |90                 nop
7C8219D9   |90                 nop
7C8219DA   \8B0D 2403FE7F      mov ecx,dword ptr ds:[7FFE0324]

SHIFT+F9两次之后F2取消断点,再按ALT+F9返回

00F5C6D7    2B85 A4D4FFFF      sub eax,dword ptr ss:[ebp-2B5C]          ;来到这里
00F5C6DD    8B8D A8D4FFFF      mov ecx,dword ptr ss:[ebp-2B58]
00F5C6E3    6BC9 32            imul ecx,ecx,32
00F5C6E6    81C1 D0070000      add ecx,7D0
00F5C6EC    3BC1               cmp eax,ecx
00F5C6EE    76 07              jbe short 00F5C6F7
00F5C6F0    C685 34D9FFFF 01   mov byte ptr ss:[ebp-26CC],1
00F5C6F7    83BD E4D7FFFF 00   cmp dword ptr ss:[ebp-281C],0

问题就出在这一步,CTRL+S输入

push eax
xchg cx,cx
pop eax
stc

提示我没找到,我去掉stc之后找到一个地方

00F480E1    50                 push eax
00F480E2    66:87C9            xchg cx,cx
00F480E5    58                 pop eax
00F480E6    9E                 sahf

尝试按照原来的套路,在00F480E1下断,然后F9运行,报错了!!!!!!!!

提示"不知道如何继续进行,因为内存地址00000000处是不易读取的.请尝试更改EIP或者忽略异常执行程序."

确定之后想SHIFT+F9继续执行,然后LOADDLL.EXE就出错了,提示该内存不能为read......

请高手指点一下,这是什么原因,这种情况该怎么处理?

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回