安全中国首页 > 文章中心 > 脱壳技术
 
安全中国网友投稿专用上传FTP空间:
Ftp服务器:download.anqn.com
Ftp端口:21
用户名:anqn
密 码:anqn.com
 

模拟跟踪+修复方法之ACProtect脱壳——完美卸载XP V9.12

更新时间:2008-4-20 0:21:06
责任编辑:阿loosen
热 点:
下载页面:  http://www.skycn.com/soft/6169.html
软件大小:  4316 KB
软件语言:  简体中文
软件类别:  国产软件 / 共享版 / 卸载清除
应用平台:  Win9x/NT/2000/XP
加入时间:  2003-11-06
下载次数:  332693
推荐等级:  **** 

【软件简介】:软件共有3个小程序,分别是:磁盘垃圾清理软件、软件安装监视器、软件卸载工具,是一套功能比较强大的安装/卸载/清理工具,新版更加全面的系统监视,让软件安装的一举一动历历在目,二次清理技术,软件卸载后将不留任何垃圾,磁盘垃圾清理的数量更多,软件运行更加稳定。

【作者声明】:只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!

【调试环境】:WinXP、flyODBG、PEiD、LordPE、ImportREC 1.4.2+、WinHex

————————————————————————————————— 
【脱壳过程】:
          
         

先说几句多余的话:请正确认识加密与解密(仅指技术研究)的关系——矛与盾——解密的发展无疑是促进了加密的进步!就偶个人以及偶所知道的朋友来说,学习CRACK只是个人兴趣,不为稻梁谋!否则也不会写破解笔记。

崇尚自由、共享!  


1、偶使用的调试器:Ollydbg Anti ACProtect For XP 修改版 —— flyODBG 
         下载页面:http://tongtian.net/pediybbs/viewtopic.php?t=1532 

2、反跟踪可以参考:梦幻Ollydbg —— 浅谈 ACProtect V1.09 Pro 的反跟踪And脱壳
         相关页面:http://tongtian.net/pediybbs/viewtopic.php?t=1525


用  Run Trace 方法来脱壳,可以让偶们节省一些脱壳中F7单步走的时间,难点是在何处使用模拟跟踪以及如何设置较佳的跟踪条件;这些只有根据具体的情况具体分析了。

ACProtect运用了变形技术,使得许多代码在脱壳后丢失。为了找到修复方法,偶曾经对 jingulong 兄说过偶准备3天3夜来分析,后来偶用了1天的时间终于成功。

这次的试炼品是:完美卸载XP V9.12的NetClean.exe  昨天升级为 V9.13 了,偶写这篇V9.12脱壳笔记,作者不会太在意吧?笔记所写只是偶的一点ACProtect脱壳思路,ACProtect是一款优秀的壳,以后碰到的几率不会少的。

—————————————————————————————————
一、模拟跟踪   寻找OEP


用IsDebug 1.4插件去掉flyODBG的调试器标志。设置 忽略 除了“内存访问异常”之外的所有其他异常选项。


004AE000     60                   pushad//进入OD后断在这!
004AE001     79 05                jns short NetClean.004AE008

F9运行,程序中断在异常处,这个int 1异常算是ACProtect的典型异常啦 

004B3E96     CD 01                int 1//ACProtect的典型异常
004B3E98     40                   inc eax//此处下断,SHIFT+F9断在这!CTRL+F9执行到返回!
004B3E99     40                   inc eax
004B3E9A     0BC0                 or eax,eax
004B3E9C     0F85 B6000000        jnz NetClean.004B3F58
    …… ……省 略…… ……
004B3F99     61                   popad
004B3F9A     61                   popad
004B3F9B     C3                   retn//返回到 004B7CC2

————————————————————————

004B7CC2     F9                   stc
004B7CC3     E9 04000000          jmp NetClean.004B7CCC

004B7CCC     83ED 01              sub ebp,1
004B7CCF     0F85 41FFFFFF        jnz NetClean.004B7C16//F4下去
004B7CD5     EB 01                jmp short NetClean.004B7CD8

004B7CD8     E8 BDB3FFFF          call NetClean.004B309A//F8带过
004B7CDD     E9 0B000000          jmp NetClean.004B7CED


OK,偶现在开始使用模拟跟踪!下命令:TC EIP<004B0000    当然,可以一步步F7走,也有更简便的方法,偶这里只是学习一下Run Trace方法。如果你有大把的时间,等数小时后程序会自动暂停在OEP处的。要想快点则需要手动干预一下!有2点需要注意:

1、jnz等的向上循环手动F4下去跳出循环
2、CALL的地址比程序当前地址低的可以F8带过,不需要TC进入

当TC时间稍长时,可以查看 运行跟踪   找出上面所说的情况,手动干预一下,使模拟跟踪加快速度!


004B88FA     E8 43D6FFFF          call NetClean.004B5F42//CALL入低地址段
004B88FF     E9 03000000          jmp NetClean.004B8907//F2下断,暂停运行跟踪,F9断在这

继续 TC EIP<004B0000  如果嫌记录太长,可以 清除记录 后再TC

004B9D46     E8 F7C1FFFF          call NetClean.004B5F42
004B9D4B     D3C8                 ror eax,cl//F2下断,暂停运行跟踪,F9断在这

继续 TC EIP<004B0000  

查看 运行跟踪   发现程序在 004B9DA5 处循环太多,偶们手动来协助它吧

004B9DA5     0F85 1CFFFFFF        jnz NetClean.004B9CC7//F2下断,断下后取消断点,F4下去
004B9DAB     7E 03                jle short NetClean.004B9DB0


以下处理方法相同:

004BBEEC     E8 51A0FFFF          call NetClean.004B5F42
004BBEF1     75 01                jnz short NetClean.004BBEF4//F2下断,暂停运行跟踪,F9断在这

004BBF3B     0F85 55FFFFFF        jnz NetClean.004BBE96//F4下去
004BBF41     E8 01000000          call NetClean.004BBF47

004BDAAC     E8 9184FFFF          call NetClean.004B5F42
004BDAB1     75 02                jnz short NetClean.004BDAB5//F2下断,暂停运行跟踪,F9断在这

004BDB08     0F85 2AFFFFFF        jnz NetClean.004BDA38//F2下断,断下后取消断点,F4下去
004BDB0E     E8 01000000          call NetClean.004BDB14

004BE0DA     E8 C25EFFFF          call NetClean.004B3FA1
004BE0DF     77 01                ja short NetClean.004BE0E2//F2下断,暂停运行跟踪,F9断在这

004BE136     0F85 5AFFFFFF        jnz NetClean.004BE096//F2下断,断下后取消断点,F4下去
004BE13C     E8 01000000          call NetClean.004BE142

004BE51D     0F85 29FFFFFF        jnz NetClean.004BE44C//F2下断,断下后取消断点,F4下去
004BE523     74 03                je short NetClean.004BE528

004BE528     E8 BD5CFFFF          call NetClean.004B41EA
004BE52D     87F2                 xchg edx,esi//F2下断,暂停运行跟踪,F9断在这

004BE578     E8 245AFFFF          call NetClean.004B3FA1
004BE57D     71 01                jno short NetClean.004BE580//F2下断,暂停运行跟踪,F9断在这

004BE605     E8 904AFFFF          call NetClean.004B309A
004BE60A     0F82 03000000        jb NetClean.004BE613//F2下断,暂停运行跟踪,F9断在这

004BE632     E8 985EFFFF          call NetClean.004B44CF
004BE637     C1DA 12              rcr edx,12//F2下断,暂停运行跟踪,F9断在这

004BE63D     0F85 71FFFFFF        jnz NetClean.004BE5B4//F2下断,断下后取消断点,F4下去
004BE643     EB 01                jmp short NetClean.004BE646

    …… ……省 略…… ……

004BEA52     0F85 3BFFFFFF        jnz NetClean.004BE993//F2下断,断下后取消断点,F4下去
004BEA58     50                   push eax

004BEE16     0F85 36FFFFFF        jnz NetClean.004BED52//F2下断,断下后取消断点,F4下去
004BEE1C     E8 01000000          call NetClean.004BEE22

004BEF72     0F85 4AFFFFFF        jnz NetClean.004BEEC2//F2下断,断下后取消断点,F4下去
004BEF78     E8 01000000          call NetClean.004BEF7E

004C07B7     0F85 4CFFFFFF        jnz NetClean.004C0709//F2下断,断下后取消断点,F4下去
004C07BD     EB 01                jmp short NetClean.004C07C0

004C1B9F     0F85 34FFFFFF        jnz NetClean.004C1AD9//F2下断,断下后取消断点,F4下去
004C1BA5     50                   push eax

004C693E     0F85 55FFFFFF        jnz NetClean.004C6899//F2下断,断下后取消断点,F4下去

1 2 3 下一页

 
相关文章
一日一文章
 
一日一软件
一日一动画