修复文件表问题及去自检验问题,请指出我操作的不对之处
程序名称:QQ棋牌伴侣3.4.4版编写程序:Borland Delphi 6.0 - 7.0
加壳程序:ASPack 2.12 -> Alexey Solodovnikov
OD加载程序,按F8后,显示ESP为0012FFA4,用ESP定律,下断HR 12FFA4,按F9运行,到了
00BED3B0 /75 08 JNZ SHORT QQ棋牌游.00BED3BA
00BED3B2 |B8 01000000 MOV EAX,1
00BED3B7 |C2 0C00 RETN 0C
00BED3BA \68 E4A75000 PUSH QQ棋牌游.0050A7E4
00BED3BF C3 RETN
到此处后,按三次F8单步,到达:
0050A7E2 50 PUSH EAX
0050A7E3 0055 8B ADD BYTE PTR SS:,DL
0050A7E6 EC IN AL,DX ; I/O 命令
0050A7E7 B9 04000000 MOV ECX,4
0050A7EC 6A 00 PUSH 0
点OD的插件中选择ollydump--脱壳在当前调试的进程,在弹出的窗口中,点下获取EIP做为OEP,得到10A7E4,再点脱壳。选择保存文件名字为dump.exe,然后再打开Import v1.6(完美汉化版),选择QQ棋牌伴侣进程,输入入口地址:10A7E4,再点自动搜索IAT,再点获得输入信息,再点修复抓取文件,在弹出的窗口中,选择我刚脱壳的dump.exe.得到如下记录:
分析进程...
已载入模块: c:\windows\system32\ntdll.dll
已载入模块: c:\windows\system32\kernel32.dll
已载入模块: c:\windows\system32\user32.dll
已载入模块: c:\windows\system32\gdi32.dll
已载入模块: c:\windows\system32\advapi32.dll
已载入模块: c:\windows\system32\rpcrt4.dll
已载入模块: c:\windows\system32\secur32.dll
已载入模块: c:\windows\system32\oleaut32.dll
已载入模块: c:\windows\system32\msvcrt.dll
已载入模块: c:\windows\system32\ole32.dll
已载入模块: c:\windows\system32\version.dll
已载入模块: c:\windows\system32\comctl32.dll
已载入模块: c:\windows\system32\shell32.dll
已载入模块: c:\windows\system32\shlwapi.dll
已载入模块: c:\windows\system32\wsock32.dll
已载入模块: c:\windows\system32\ws2_32.dll
已载入模块: c:\windows\system32\ws2help.dll
已载入模块: c:\windows\system32\imm32.dll
已载入模块: c:\windows\system32\lpk.dll
已载入模块: c:\windows\system32\usp10.dll
已载入模块: c:\windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83\comctl32.dll
相关模块载入完成.
映像基址:00400000 大小:00804000
原始 IAT RVA 发现于: 00118628 位于块 RVA: 00118000 大小:00003000
IAT 读取成功.
RVA:00118174 来自模块:ntdll.dll 序号:0217 名称:InitializeCriticalSection
RVA:00118170 来自模块:ntdll.dll 序号:02B6 名称:EnterCriticalSection
RVA:0011816C 来自模块:ntdll.dll 序号:01F0 名称:LeaveCriticalSection
RVA:001181C4 来自模块:ntdll.dll 序号:016C 名称:RtlGetLastWin32Error
RVA:001181F4 来自模块:ntdll.dll 序号:0301 名称:RtlUnwind
RVA:001182F8 来自模块:ntdll.dll 序号:0245 名称:RtlLeaveCriticalSection
RVA:00118368 来自模块:ntdll.dll 序号:016B 名称:RtlGetLastWin32Error
RVA:001183C4 来自模块:ntdll.dll 序号:0098 名称:RtlEnterCriticalSection
RVA:001183CC 来自模块:ntdll.dll 序号:0082 名称:RtlDeleteCriticalSection
---------------------------------------------------------------------------------------------------------------------------
当前输入表:
11 (十进制:17) 个有效模块 (已添加: +11 (十进制:+17))
1E6 (十进制:486) 个输入函数. (已添加: +1E6 (十进制:+486))
---------------------------------------------------------------------------------------------------------------------------
修正转储文件...
11 (十进制:17) 个模块
1E6 (十进制:486) 个输入函数.
*** 成功添加了新节. RVA:00807000 大小:00003000
映像输入表描述符大小: 154; 总共长度: 2312
C:\Documents and Settings\Administrator\桌面\dump_.exe 保存成功.
关闭IMPORT,再关闭OD。。。
现问:我想问一下,dump.exe和dump_.exe哪一个才是修复好的程序????
[ 本帖最后由 秋风四起 于 2008-9-15 10:15 编辑 ] dump_.exe为修复好的文件 2.去自校验
程序脱完壳变成8000K+
比较文件大小的自校验
下GetFileSize断点
----断在这里
7C810B07 >8BFF MOV EDI,EDI ; ntdll.7C910208
7C810B09 55 PUSH EBP
7C810B0A 8BEC MOV EBP,ESP
7C810B0C 51 PUSH ECX
7C810B0D 51 PUSH ECX
7C810B0E 8D45 F8 LEA EAX,DWORD PTR SS:
7C810B11 50 PUSH EAX
----返回到程序领空,一路F8下来
00491FBC .E8 DF2EF7FF CALL dumped_.00404EA0
00491FC1 .75 12 JNZ SHORT dumped_.00491FD5;关键跳
;-------将jnz nop掉--去掉了自校验
00491FC3 .B8 E0930400 MOV EAX,493E0
00491FC8 .E8 3F13F7FF CALL dumped_.0040330C
00491FCD .C1E0 02 SHL EAX,2
00491FD0 .8945 F0 MOV DWORD PTR SS:,EAX
00491FD3 .EB 11 JMP SHORT dumped_.00491FE6
00491FD5 >B8 E0930400 MOV EAX,493E0
请问一下, 我为什么不能到达
----返回到程序领空,一路F8下来
00491FBC .E8 DF2EF7FF CALL dumped_.00404EA0
00491FC1 .75 12 JNZ SHORT dumped_.00491FD5;关键跳
;-------将jnz nop掉--去掉了自校验
00491FC3 .B8 E0930400 MOV EAX,493E0
00491FC8 .E8 3F13F7FF CALL dumped_.0040330C
这里呢???? 没看懂自校验部分楼主的意思,关键跳如果只有这一个的话就保存啊/:QQ3 原帖由 傻人有傻福 于 2008-9-15 10:55 发表 https://www.chinapyg.com/images/common/back.gif
没看懂自校验部分楼主的意思,关键跳如果只有这一个的话就保存啊/:QQ3
大哥,我就是找不到一品天下说的
00491FBC .E8 DF2EF7FF CALL dumped_.00404EA0
00491FC1 .75 12 JNZ SHORT dumped_.00491FD5;关键跳;-------将jnz nop掉--去掉了自校验
00491FC3 .B8 E0930400 MOV EAX,493E0
00491FC8 .E8 3F13F7FF CALL dumped_.0040330C
在哪。我找不到这个地方啊,下断bp GetFileSize后,不断的按F8,都来不到这个关键CALL的地方,每个版本不同地址。。。一品天下用的是3.0.2版本做的
我想问一下,怎么才能找到一品天下大哥说的关键CALL。。。。。。。。。。。。。。难道去自检验要一个个代码的看吗????
顺便想问下,去自检验的关键CALL怎么样才容易找得着??如何判断它就是关键CALL呢???
[ 本帖最后由 秋风四起 于 2008-9-15 11:04 编辑 ] .............. bp ExitProcess 原帖由 km159 于 2008-9-15 22:36 发表 https://www.chinapyg.com/images/common/back.gif
bp ExitProcess
感觉不起作用。这个中断。 004A0E15 /75 12 jnz short 004A0E29 ; NOP 即可
004A0E17 |B8 E0930400 mov eax, 493E0
004A0E1C |E8 DB24F6FF call 004032FC
004A0E21 |C1E0 02 shl eax, 2
004A0E24 |8945 F0 mov dword ptr , eax 原帖由 Luckly 于 2008-9-15 23:58 发表 https://www.chinapyg.com/images/common/back.gif
004A0E15 /75 12 jnz short 004A0E29 ; NOP 即可
004A0E17 |B8 E0930400 mov eax, 493E0
004A0E1C |E8 DB24F6FF call 004032FC
004A0E21 |C1E0 02 ...
用搜索方式,我能找得到这个75 12的地址。。用别人说的下断什么的,来F8到这里,我怎么也到达不了。。。
大哥你认为怎么样到达75 12地点???
又怎么判断它是关键跳??????????????
页:
[1]
2