time 
设为首页】【收藏本站
当前位置: 主页 > 电脑网络 > 安全技术 > 黑客攻防 > 使用OllyDbg快速脱壳

使用OllyDbg快速脱壳

时间:2009-10-15 23:23 点击:1620次 字体:[ ]




  使用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。很久没有写东西了。这一篇是写给初学者练手的。其实壳也是软件,再怎么复杂都有可能被脱下来。祝你好运。



本文地址 : http://www.fengfly.com/plus/view-117242-1.html
标签: 解压 使用 快速 dump POPAD PUSHAD
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码: