使用OllyDbg快速脱壳
dOSKEY lEE
目标:采用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。很
久没有写东西了。这一篇是写给初学者练手的。其实壳也是软件,再怎么复杂都有可
能被脱下来。祝你好运。
相关视频
相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么
热门文章 去除winrar注册框方法
最新文章
比特币病毒怎么破解 比去除winrar注册框方法
华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)通过Access破解MSSQL获得数据
人气排行 华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)qq相册密码破解方法去除winrar注册框方法(适应任何版本)怎么用手机破解收费游戏华为无线猫HG522破解如何给软件脱壳基础教程
查看所有0条评论>>