飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 5466|回复: 9

郁闷!今天遇到一个ASProtect v1.23RC1的壳,能找到OEP,但不能修复IAT!

[复制链接]

该用户从未签到

发表于 2005-8-8 14:28:15 | 显示全部楼层 |阅读模式
郁闷!今天遇到一个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,回车。

在命令行中输入  HW  12ffc0  回车

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],eax
012A335E    EB 01           jmp short 012A3361
012A3360    68 648F0500     push 58F64
012A3365    0000            add byte ptr ds:[eax],al
012A3367    00EB            add bl,ch


25个  SHIFT+F9 内存异常
012A2CD1    3100            xor dword ptr ds:[eax],eax
012A2CD3    64:8F05 0000000>pop dword ptr fs:[0]
012A2CDA    58              pop eax
012A2CDB    833D 7C6D2A01 0>cmp dword ptr ds:[12A6D7C],0
012A2CE2    74 14           je short 012A2CF8
012A2CE4    6A 0C           push 0C



CRTL+g  输入右边堆栈区的异常句柄 (SE 句柄)(也就是ESP-1的单元内的值)(012A2CB4),回车 代码跳到刚才输入的值的地方。
0012FF64   0012FFE0  指针到下一个 SEH 记录
0012FF68   012A2CB4  SE 句柄
0012FF6C   01290000
0012FF70   01270000


在这儿下断点,再向下遇到一个RETN,再向下又看到一个RETn,在此处下断。
012A2CB4    8B4424 0C       mov eax,dword ptr ss:[esp+C]      这儿下个断点
012A2CB8    8380 B8000000 0>add dword ptr ds:[eax+B8],2
012A2CBF    C740 18 0000000>mov dword ptr ds:[eax+18],0
012A2CC6    31C0            xor eax,eax
012A2CC8    C3              retn                              一个RETN  
012A2CC9    31C0            xor eax,eax
012A2CCB    64:FF30         push dword ptr fs:[eax]
012A2CCE    64:8920         mov dword ptr fs:[eax],esp
012A2CD1    3100            xor dword ptr ds:[eax],eax
012A2CD3    64:8F05 0000000>pop dword ptr fs:[0]
012A2CDA    58              pop eax
012A2CDB    833D 7C6D2A01 0>cmp dword ptr ds:[12A6D7C],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:[ebp-8]
012A2CEE    BA 04000000     mov edx,4
012A2CF3    E8 54E1FFFF     call 012A0E4C
012A2CF8    FF75 FC         push dword ptr ss:[ebp-4]
012A2CFB    FF75 F8         push dword ptr ss:[ebp-8]
012A2CFE    8B45 F4         mov eax,dword ptr ss:[ebp-C]
012A2D01    8338 00         cmp dword ptr ds:[eax],0
012A2D04    74 02           je short 012A2D08
012A2D06    FF30            push dword ptr ds:[eax]
012A2D08    FF75 F0         push dword ptr ss:[ebp-10]
012A2D0B    FF75 EC         push dword ptr ss:[ebp-14]
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 00000000  mov eax,dword ptr fs:[0]
0043B14B    50              push eax
0043B14C    64:8925 0000000>mov dword ptr fs:[0],esp
0043B153    83EC 58         sub esp,58



到这后,下面修复IAT我没有成功,请大吓帮忙完成。

[ Last edited by brightsm on 2005-8-8 at 02:30 PM ]
PYG19周年生日快乐!

该用户从未签到

发表于 2005-8-8 19:26:38 | 显示全部楼层
用 脱壳机看看~
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2005-8-8 23:10:11 | 显示全部楼层
这个好象没有脱壳机!
PYG19周年生日快乐!

该用户从未签到

发表于 2005-8-9 10:53:39 | 显示全部楼层
stripper 2.X
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2005-8-10 01:05:09 | 显示全部楼层
脱壳机找到了!传到坛子上吧!
PYG19周年生日快乐!

该用户从未签到

 楼主| 发表于 2005-8-10 01:06:45 | 显示全部楼层
不过还是想学习一下手动修复iat!
自己手动修复就是不能成 功!
PYG19周年生日快乐!

该用户从未签到

发表于 2006-1-12 21:05:51 | 显示全部楼层
到最后一次异常后,直接LordPE,dump出来
PYG19周年生日快乐!
  • TA的每日心情
    开心
    2018-6-4 20:46
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2006-1-13 15:57:25 | 显示全部楼层
    你发的那个地址下不了那个软件啊!怎么帮你啊?
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2010-11-3 16:19:26 | 显示全部楼层
    我找了一个这个壳 搞了两天了还没搞定。来吸取下经验
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2022-9-1 14:33
  • 签到天数: 12 天

    [LV.3]偶尔看看II

    发表于 2010-11-4 21:48:26 | 显示全部楼层
    这玩意有脱壳机?
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表