黑客风云——风云网络
设为首页 加入收藏 我要投稿 网站地图

您现在的位置: 黑客风云 >> 黑客文章 >> 黑客进阶 >> 软件破解 >> 正文
·没有路由密码权限时的鸽08-23·使用OllyDbg快速脱壳11-04
·PHP注入实例11-04·利用Discuz! 漏洞得到we11-04
·写入缓存失败”的八个最11-04·另类破解Windows忘记的密11-04
·打造个性化Windows XP客11-04·1G空间支持外链免费网络11-04
·蜡笔小新提供300M/ftp免11-04·Discuz! trade.php 数据11-03
·Discuz!数据库'注射11-03·妙招:Vista操作系统中的11-03
·永硕80M免费硬盘免费申请11-03·itriss提供5000M免费php11-03
·友情检测某省会城市商务11-02·XPSHOP商城系统漏洞利用11-02
·MS08067全自动抓鸡利用工11-02·1K JSP网马11-02
·LOG备份与备份差异的对比11-02·通过Mysql入侵服务器11-02
·手工打造更强大的Window11-02·我的网络电脑,网络免费11-02
·著名的智能化免费DNS解析11-02·HastyFree提供1G免费php11-02
·利用“dbo”获得SQL管理10-31·入侵渗透梁静茹官方网站10-31
·妙用QQ安全链接中心10-31·PHP168整站系统0DAY10-31
[推荐]使用OllyDbg快速脱壳
        ★★★★

使用OllyDbg快速脱壳

文章整理发布:黑客风云 文章来源:www.05112.com 更新时间:2008-11-4 12:16:25
目标:采用ASPACK、UPX加壳的NOTEPAD.EXE  
工具:OllyDbg 1.09英文版、DUMP插件、PEditor  
系统:Win98SE  
关键词: 脱壳、OllyDbg、OD、DUMP、PUSHAD、POPAD  

预备知识  
    大多数壳都有一个共同的特点。在壳准备开始解压时都要执行PUSHAD,当壳解压  
完时都要调用POPAD。到底PUSHAD和POPAD是什么干什么用的呢?其实PUSHAD是用来将  
所有普通寄存器顺序进栈的指令,POPAD是所有普通寄存器顺序出栈指令。POPAD的出  
栈顺序和PUSHAD相反。壳为了保护寄存器,便在解压前将所有寄存器进栈保护起来,  
当解压完成后又将寄存器出栈,恢复其原貌,并将IP设置为原程序的OEP。这样我们就  
可以通过这个特点快速脱掉多种软件的壳。  

ASPACK篇  
    先用ASPACK将NOTEPAD.EXE加壳。用OllyDbg(以下简称OD)载入。看见光标停在  
壳的入口处。  
0040D001 >  60              PUSHAD ;壳的入口。准备开始解压,保护寄存器  
0040D002    E8 03000000    CALL    NOTEPAD.0040D00A  
……  
我们不管它,直接向下翻页找POPAD指令。在40D3AF处找到POPAD  
……  
0040D3AF    61              POPAD ;解压完成,恢复寄存器  
0040D3B0    75 08          JNZ    SHORT NOTEPAD.0040D3BA  
0040D3B2    B8 01000000    MOV    EAX, 1  
0040D3B7    C2 0C00        RETN    0C  
0040D3BA    68 CC104000    PUSH    NOTEPAD.004010CC ;返回到原程序OEP处  
0040D3BF    C3              RETN  
……  
选定40D3AF这一行,F4运行到此处。在这里说明壳已经完成解压工作。并且返回到原  
程序的入口处。F8单步到4010CC,这里便是原程序的OEP。用DUMP插件直接DUMP出来就  
可以了(在DUMP时注意将入口点改为10CC,即4010CC-400000=10CC,400000是映象基  
地址)。文件大小是77059字节,用PEditor重建PE头便可以了。未压缩的文件大小是  
53248字节,脱壳后的文件大小是60930字节。  

UPX篇  
    用UPX将NOTEPAD.EXE加壳,然后用OD载入。停在PUSHAD处,用脱ASPACK同样的方  
法,向下翻页找POPAD。  
……  
0040E9FE    61              POPAD  
0040E9FF  - E9 C826FFFF    JMP    NOTEPAD.004010CC  
……  
下面的JMP就是跳转到程序的OEP处。F4到40E9FF处,F8单步一下,来到OEP处,DUMP出  
来。DUMP文件的大小是65536字节,直接就可以运行。为了完美,用PEditor重建PE头。  
那么脱壳后的文件大小是60293字节。  

后记  
    用上面说的方法,很多种壳都可以快速的手动脱掉。如果你没有OD的DUMP插件,  
可以到新论坛的下载区找。如果实在没有,也可以直接停在OEP处用PEDump来DUMP。很  
久没有写东西了。这一篇是写给初学者练手的。其实壳也是软件,再怎么复杂都有可  
能被脱下来。祝你好运。  
文章录入:cainiaowang    责任编辑:xinlian 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 【字体:
    Copyright @2006 黑客风云 ●业务联系:QQ 联系怪人 联系奇人 Email:给怪人发邮件 给奇人发邮件
    ICP备案:冀06009886