郁闷!今天遇到一个ASProtect v1.23RC1的壳,能找到OEP,但不能修复IAT!
郁闷!今天遇到一个ASProtect v1.23RC1的壳,能找到OEP,但不能修复IAT!今天遇到一个ASProtect v1.23RC1的壳,由于没有脱壳这样的壳,就找了一篇相关的文章。
看雪的文章(关于asprotect 1.23rc1)
http://www.pediy.com/bbshtml/BBS6/pediy6259.htm
遇到的软件是一个外挂,脱壳过程如下:
【软件名称】:梦幻宝宝 V 6.1.4
【软件功能】:梦幻西游外挂
【下载地址】:http://www.5uwg.com/soft/4060.htm
【作者声明】:初学Crack,只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
【调试环境】:WinXP、Flydbg1.10、PEiD、LordPE、Import REConstructor v1.6 FINAL
1.查壳,从看雪下载了FI3.0r和Peid0.93,解压后查看壳的类型,都显示为ASProtect v1.23RC1。
2.下载FLYOD,运行,载入隐藏插件运行,载入外挂。
3.按照看雪的文章,一步一步的进行下去,到了第25个shift+f9的时候,看堆栈,设断点,再按F8,按了N个F8,花了3个多小时,没有结果。(可能是我的汇编太差了)
4.想了想,看看有没有简单一点的办法,最后想到看看用ESP定律能不能搞定它。试了几次后,发现可以,而且速度很快,没要多少步骤。
5.现在重新来过,运行OD,运行隐藏插件,载入此软件。
按一下F8,现在的ESP的值是12ffc0。在命令行内输入hw 12ffc0,回车。
在命令行中输入HW12ffc0回车
00401000 >68 01105300 push my.00531001
00401005 E8 01000000 call my.0040100B
0040100A C3 retn
0040100B C3 retn
F9中断
00531002 E8 03000000 call my.0053100A
00531007- E9 EB045D45 jmp 45B014F7
0053100C 55 push ebp
0053100D C3 retn
F9内存异常
012A335C 3100 xor dword ptr ds:,eax
012A335E EB 01 jmp short 012A3361
012A3360 68 648F0500 push 58F64
012A3365 0000 add byte ptr ds:,al
012A3367 00EB add bl,ch
25个SHIFT+F9 内存异常
012A2CD1 3100 xor dword ptr ds:,eax
012A2CD3 64:8F05 0000000>pop dword ptr fs:
012A2CDA 58 pop eax
012A2CDB 833D 7C6D2A01 0>cmp dword ptr ds:,0
012A2CE2 74 14 je short 012A2CF8
012A2CE4 6A 0C push 0C
CRTL+g输入右边堆栈区的异常句柄 (SE 句柄)(也就是ESP-1的单元内的值)(012A2CB4),回车 代码跳到刚才输入的值的地方。
0012FF64 0012FFE0指针到下一个 SEH 记录
0012FF68 012A2CB4SE 句柄
0012FF6C 01290000
0012FF70 01270000
在这儿下断点,再向下遇到一个RETN,再向下又看到一个RETn,在此处下断。
012A2CB4 8B4424 0C mov eax,dword ptr ss: 这儿下个断点
012A2CB8 8380 B8000000 0>add dword ptr ds:,2
012A2CBF C740 18 0000000>mov dword ptr ds:,0
012A2CC6 31C0 xor eax,eax
012A2CC8 C3 retn 一个RETN
012A2CC9 31C0 xor eax,eax
012A2CCB 64:FF30 push dword ptr fs:
012A2CCE 64:8920 mov dword ptr fs:,esp
012A2CD1 3100 xor dword ptr ds:,eax
012A2CD3 64:8F05 0000000>pop dword ptr fs:
012A2CDA 58 pop eax
012A2CDB 833D 7C6D2A01 0>cmp dword ptr ds:,0
012A2CE2 74 14 je short 012A2CF8
012A2CE4 6A 0C push 0C
012A2CE6 B9 7C6D2A01 mov ecx,12A6D7C
012A2CEB 8D45 F8 lea eax,dword ptr ss:
012A2CEE BA 04000000 mov edx,4
012A2CF3 E8 54E1FFFF call 012A0E4C
012A2CF8 FF75 FC push dword ptr ss:
012A2CFB FF75 F8 push dword ptr ss:
012A2CFE 8B45 F4 mov eax,dword ptr ss:
012A2D01 8338 00 cmp dword ptr ds:,0
012A2D04 74 02 je short 012A2D08
012A2D06 FF30 push dword ptr ds:
012A2D08 FF75 F0 push dword ptr ss:
012A2D0B FF75 EC push dword ptr ss:
012A2D0E C3 retn 这儿下个断点
按2下SHIFT+F9停在RETN (012A2D0E C3 retn)
按一下F8
012B4104 /E9 65080000 jmp 012B496E
012B4109 |888A 1F3E7DFB mov byte ptr ds:[edx+FB7D3E1>
012B410F |7D 29 jge short 012B413A
012B4111 |34 B9 xor al,0B9
012B4113^|73 E7 jnb short 012B40FC
012B4115 |CF iretd
012B4116 |C6 ??? ; 未知命令
012B4117 |BD B959E5CB mov ebp,CBE559B9
按一下CTRL+F8程序会一个地方后不断循环,按一下F8,使程序暂停,按F8直到这段循环的最下面的一行,用鼠标点一下下一行程序,按F4跳出循环。
012B49BF 47 inc edi
012B49C0 8BEF mov ebp,edi
012B49C2 D1C5 rol ebp,1
012B49C4 81F5 A38FD7AC xor ebp,ACD78FA3
012B49CA 3BEE cmp ebp,esi
012B49CC^ 0F85 EDFFFFFF jnz 012B49BF 上面是循环体
012B49D2 66:8BC6 mov ax,si 用鼠标点一下这一行程序,按F4跳出循环。
F9 这时前面设的硬件断点起作用了,现在程序停在了OEP附近。
012B496B 61 popad
012B496C FFE0 jmp eax
按两下F8进入OEP,这时就可以进行DUMP了。
0043B136 55 push ebp 标准MFC++OEP
0043B137 8BEC mov ebp,esp
0043B139 6A FF push -1
0043B13B 68 38664C00 push my.004C6638
0043B140 68 80FD4300 push my.0043FD80
0043B145 64:A1 00000000mov eax,dword ptr fs:
0043B14B 50 push eax
0043B14C 64:8925 0000000>mov dword ptr fs:,esp
0043B153 83EC 58 sub esp,58
到这后,下面修复IAT我没有成功,请大吓帮忙完成。
[ Last edited by brightsm on 2005-8-8 at 02:30 PM ] 用 脱壳机看看~ 这个好象没有脱壳机! stripper 2.X 脱壳机找到了!传到坛子上吧! 不过还是想学习一下手动修复iat!
自己手动修复就是不能成 功! 到最后一次异常后,直接LordPE,dump出来 你发的那个地址下不了那个软件啊!怎么帮你啊? 我找了一个这个壳 搞了两天了还没搞定。来吸取下经验 这玩意有脱壳机?
页:
[1]