首页
社区
课程
招聘
[原创]ASPACK加壳的IceSword 1.18脱壳
发表于: 2006-9-23 03:55 5334

[原创]ASPACK加壳的IceSword 1.18脱壳

2006-9-23 03:55
5334
【文章标题】: ASPACK加壳的IceSword 1.18脱壳
【文章作者】: flong
【作者邮箱】: flong99@ 163.com
【软件名称】: IceSword 1.18英文版
【下载地址】: 自己搜索下载
【加壳方式】: ASPack 2.12 -> Alexey Solodovnikov
【使用工具】: OllyICE v1.10 修改版
【软件介绍】: 不用介绍了,大家都知道
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
    用OllyICE载入IceSword,提示有压缩,不理会。
    来到入口处
    00647001 >  60              pushad
    00647002    E8 03000000     call    0064700A
    00647007  - E9 EB045D45     jmp     45C174F7
    0064700C    55              push    ebp
    0064700D    C3              retn
    0064700E    E8 01000000     call    00647014
    00647013    EB 5D           jmp     short 00647072
    00647015    BB EDFFFFFF     mov     ebx, -13
    0064701A    03DD            add     ebx, ebp
    0064701C    81EB 00702400   sub     ebx, 247000
    00647022    83BD 22040000 0>cmp     dword ptr [ebp+422], 0
    00647029    899D 22040000   mov     [ebp+422], ebx
    0064702F    0F85 65030000   jnz     0064739A
   
   
    按几次F7,来到0064702F    0F85 65030000   jnz     0064739A,在该语句上点右键-跟随,来到0064739A
   
    00647395  ^\E9 EBFEFFFF     jmp     00647285
    0064739A    B8 6BA30200     mov     eax, 2A36B
    0064739F    50              push    eax
    006473A0    0385 22040000   add     eax, [ebp+422]
   
   
    可以看到附近的 00647395  ^\E9 EBFEFFFF     jmp     00647285跳转回去了,是一个循环。选中0064739A,按F4执行到该语句。然后按F7几次,来到:
    006473A7    0BC9            or      ecx, ecx
    006473A9    8985 A8030000   mov     [ebp+3A8], eax
    006473AF    61              popad
    006473B0    75 08           jnz     short 006473BA
    006473B2    B8 01000000     mov     eax, 1
    006473B7    C2 0C00         retn    0C
    006473BA    68 00000000     push    0
    006473BF    C3              retn
   
    看到了吧,popad出现了,哈哈,继续按F7到 006473BF    C3    retn,再按一次F7,出现了一个大跳转:
   
    0042A36B   .  55            push    ebp
    0042A36C   ?  8BEC          mov     ebp, esp
    0042A36E   .  6A FF         push    -1
    0042A370   ?  68 10584E00   push    004E5810
   
    哈哈,这个就是脱壳之后的程序了,确定无疑了。在 0042A36B   55  push    ebp上面点右键-dump debugged process,跳出对话框DllyDump,看到入口点已经修改为2A36B。记住fix raw size &offset of dump image一定要选中,这是修复功能。
    然后按Dump按钮,保存下来,关闭OllyICE。运行一下试试,完全没有问题,功能全部正常!注意一定要关闭OllyICE才能运行IceSword,因为IceSword不能运行2个实例。
   
   
    好了,收工,谢谢观看。
  
--------------------------------------------------------------------------------
【版权声明】: 本文原创于看雪技术论坛, 转载请注明作者并保持文章的完整, 谢谢!

                                                       2006年09月23日 上午 03:56:27

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 44229
活跃值: (19960)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
为你的进步祝贺一下
建议再研究一下:
1.在你目前基础上,试试ImportREC修复输入表(DllyDump虽自带这功能,但不强大,你碰到猛壳时,离不开ImportREC的)
2.根据壳的特点来解壳,Aspack壳一个特点是内存数据完全解压后,内存镜像中输入表等没破坏,此将整个文件直接Dump出来,然后你根据输入表的结构找回输入表位置就成功了。
2006-9-23 07:43
0
雪    币: 207
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢看雪大哥的鼓励,下面就用另外一种方法脱壳并修复。

用OllyICE载入IceSword,停在入口处,按照上面说的方法,找到真正的入口:

    0042A36B   .  55            push    ebp
    0042A36C   ?  8BEC          mov     ebp, esp
    0042A36E   .  6A FF         push    -1
    0042A370   ?  68 10584E00   push    004E5810

程序停在0042A36B ,打开LordPE,进程列表中选中icesword.exe,右键dump full,保存下来dumped.exe,关闭LordPE。
打开ImportREC,选中icesword.exe,在左下的OEP框中填写刚才找到的真正入口地址0002A36B,然后点击自动查找IAT,提示可能找到了原始IAT。再点击获取输入表,可以看到输入表的函数全部找到并且有效。然后修复刚才抓取的dumped.exe,点击修复转存文件,跳出对话框,把dumped.exe修复。好了,关闭OllyICE。
修复好的文件名已经改为dumped_.exe,运行一下,全部功能都正常。
2006-9-23 13:42
0
雪    币: 239
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
鼓励,鼓励,鼓励
2006-9-23 14:22
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
在文章的指引下脱了一壳 谢谢楼主
2006-9-24 11:41
0
游客
登录 | 注册 方可回帖
返回
//