简单脱壳教程笔记(2)---手脱UPX壳(1)

本笔记是针对ximo早期发的脱壳基础视频教程,整理的笔记。

ximo早期发的脱壳基础视频教程 下载地址如下:

http://down.52pojie.cn/%E5%90%BE%E7%88%B1%E7%A0%B4%E8%A7%A3%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B/ximo%e8%84%b1%e5%a3%b3%e5%9f%ba%e7%a1%80.7z

本笔记用到的工具下载地址:

http://download.csdn.net/detail/obuyiseng/9466056

简介:

UPX (the Ultimate Packer for eXecutables)是一款先进的可执行程序文件压缩器,压缩过的可执行文件体积缩小50%-70%,主要功能是压缩PE文件(比如exe,dll等文件),有时候也可能被病毒用于免杀.壳upx是一种保护程序。

脱壳:

工具:

ExeinfoPE或PEid、OD、LordPE、ImportREConstructor

脱壳文件:

01.rmvbfix.exe

笔记:

         1、使用ExeinfoPE或PEid确定是否加壳
简单脱壳教程笔记(2)---手脱UPX壳(1)
  

2、脱壳,们这里使用四种方法来进行脱壳,无论使用哪种,我们都需要找到OEP位置,然后进行脱壳即可。

方法1:单步跟踪(需要有耐心)

要点:将程序拖入到OD中,一步一步单步跟踪执行,原则向上跳转不能让其实现,向下跳转可以实现。

操作:

1)将程序加载如OD中,会弹出是否自动分析的对话框。当我们确定程序是被加壳的情况下,我们选择否,否则我们选择是。

简单脱壳教程笔记(2)---手脱UPX壳(1)

2) 找OEP  由于我们使用的是单步跟踪,我们可以按F8进行单步执行。

简单脱壳教程笔记(2)---手脱UPX壳(1)

3)当向下跳转可以实现,继续单步即可

简单脱壳教程笔记(2)---手脱UPX壳(1)

向上跳转不能让其实现

简单脱壳教程笔记(2)---手脱UPX壳(1)

将代码运行到跳转的下一行:选中该行,右键--断点--运行到选中位置  或直接F4即可

简单脱壳教程笔记(2)---手脱UPX壳(1)

注意:当jmp下面是call的情况,我们要在call的下面下断点,如下图,我们就需要在papad的位置下断点
   简单脱壳教程笔记(2)---手脱UPX壳(1)

4)  当我们发现有出栈popad的时候,并且紧跟着一个大的跳转的时候,那么要调到的位置一般就是OEP的位置

简单脱壳教程笔记(2)---手脱UPX壳(1)

5)我们进入到OED位置

简单脱壳教程笔记(2)---手脱UPX壳(1)

6)找到OEP后 我们就可以进行脱壳,我们使用LordPE进行脱壳

打开LordPE,找到程序(在XP下能找到,win7找不到)

简单脱壳教程笔记(2)---手脱UPX壳(1)

然后右键修复镜像大小、选择完整转存

简单脱壳教程笔记(2)---手脱UPX壳(1)

7)使用ImportREConstructor 进行修复

根据OD中的地址,计算出OEP, OEP=VA(0047738C)-加载基址(00400000)

然后获取导入表,显示无效的,最后进行修复

简单脱壳教程笔记(2)---手脱UPX壳(1)

8、查看脱壳是否成功

简单脱壳教程笔记(2)---手脱UPX壳(1)

方法2:ESP定律法

方法3:2次内存镜像法

方法4:一步直达法

    我们另起一篇文章  简单脱壳教程笔记(3)---手脱UPX壳(2)
上一篇:如何将一个div水平垂直居中?6种方法做推荐


下一篇:python 关于文件的操作