-
-
[旧帖] [求助]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......
请高手指点一下,这是什么原因,这种情况该怎么处理?
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......
请高手指点一下,这是什么原因,这种情况该怎么处理?
赞赏
赞赏
雪币:
留言: