简单脱壳教程笔记

1、手脱UPX壳

简介:

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

脱壳:

工具:
ExeinfoPE或PEid、OD、LordPE、ImportREConstructor
脱壳文件:
01.rmvbfix.exe

笔记:

1、使用ExeinfoPE或PEid确定是否加壳

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

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

要点:将程序拖入到OD中,一步一步单步跟踪执行,原则向上跳转不能让其实现,向下跳转可以实现。
操作
1)将程序加载如OD中,会弹出是否自动分析的对话框。当我们确定程序是被加壳的情况下,我们选择否,否则我们选择是。
在这里插入图片描述

2) 找OEP 由于我们使用的是单步跟踪,我们可以按F8进行单步执行。
在这里插入图片描述
3)当向下跳转可以实现,继续单步即可
在这里插入图片描述
向上跳转不能让其实现
在这里插入图片描述
将代码运行到跳转的下一行:选中该行,右键——断点——运行到选中位置 或直接F4即可
在这里插入图片描述
或者设置断点——运行——取消断点
在这里插入图片描述
注意:当jmp下面是call的情况,我们要在call的下面下断点,如下图,我们就需要在papad的位置下断点
在这里插入图片描述
4) 当我们发现有出栈popad的时候,并且紧跟着一个大的跳转的时候,那么要调到的位置一般就是OEP的位置
在这里插入图片描述
5)我们进入到OEP位置
在这里插入图片描述
6)找到OEP后 我们就可以进行脱壳,

一、使用ODE插件

在这里插入图片描述
有两种方式,然后点脱壳,保存
在这里插入图片描述

二、tools按钮选择LordPE进行脱壳(提前在SETUP PATHS里添加好)

在这里插入图片描述
在这里插入图片描述
然后右键修复镜像大小、选择完整转存
在这里插入图片描述
使用ImportREConstructor 进行修复,先选择需要脱壳的程序
根据OD中的地址,计算出OEP, OEP=VA(0047738C)-加载基址(00400000) 及刚才插件显示的7738C
然后获取导入表,显示无效的,最后进行修复
在这里插入图片描述
7、查看脱壳是否成功
在这里插入图片描述

方法2:ESP定律法
ESP定律法

1、单步 只有ESP突变
在这里插入图片描述

在这里插入图片描述2、右键 在数据窗口跟随

在这里插入图片描述

或者在输入dd xxxx / hr xxxx(ESP值)
在这里插入图片描述

3、右键设置断点——硬件访问断点——word/Dword ( 在之前把其余断点删除)
在这里插入图片描述
然后运行
在这里插入图片描述
在这里插入图片描述

然后再删除硬件断点,单步到达OEP

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
重复方法一步骤6

方法3:2次内存镜像法
2次内存镜像法

1、第一次查找内存或者上排的M直达
在这里插入图片描述2、找到程序段的第一个.rsrc资源文件字,下段,然后运行
在这里插入图片描述

3、第二次找内存00401000下段,运行
在这里插入图片描述
4、单步跳转,到达OEP

方法4:一步直达法
一步直达法

1、右键或ctrl+f查找popad ,去掉整个块的√
在这里插入图片描述
在这里插入图片描述
2、若不是需要的就ctrl+L继续查找,运行到popad 两种方法都可以
在这里插入图片描述
在这里插入图片描述
3、单步跳转到OEP

2、手脱ASPACK壳

简介:

AsPack是高效的Win32可执行程序压缩工具,能对程序员开发的32位Windows可执行程序进行压缩,使最终文件减小达70%!

使用工具:

PEid、OD

笔记:

方法一:单步跟踪

1、单步到call 再F8发现程序会运行
在这里插入图片描述

按F7或这个键进入call
在这里插入图片描述
跳转
在这里插入图片描述
继续单步 又有一个call会运行 继续F7
在这里插入图片描述
继续单步,向上跳转F4,再继续单步
在这里插入图片描述
在这里插入图片描述
来到OEP
在这里插入图片描述
2、脱壳,记住修正地址
在这里插入图片描述
3、查看是否成功

方法二:ESP定律法

1、看关键句的下一句,单步,ESP突变在这里插入图片描述
在这里插入图片描述
2、数据窗口跟随
在这里插入图片描述
3、下段
在这里插入图片描述
3、运行一下,删掉断点
在这里插入图片描述
4、继续单步到OEP
在这里插入图片描述

方法三:一步直达法

一步直达法

方法四:2次内存镜像法

2次内存镜像法

方法五:模拟跟踪
模拟跟踪法

1、进入内存m,找到包含SFX的
在这里插入图片描述
2、tc eip<地址 ,回车 ,OD左上角显示跟踪字样,会自动跳到OEP
在这里插入图片描述
在这里插入图片描述

方法六:SPX

1、选项——调试设置——SFX 选择第二个
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

重载一下
在这里插入图片描述
自动跳转到OEP
在这里插入图片描述

3、手脱Nspack壳

脱1.3版本

单步到call ,ESP突变也用ESP定律法

在这里插入图片描述
也可用单步跟踪法
或者 模拟跟踪法
tc eip<0043000
在这里插入图片描述

或者 2次内存镜像法
没有.rsrc的话,直接在内存00401000下段,运行
在这里插入图片描述
或者 at GetVersion (适用于3.0之前的版本)
在这里插入图片描述
在这里插入图片描述
然后在retn下断点F2——运行——取消断点F2——单步F8
在这里插入图片描述
在这里插入图片描述

版本2.3和3.7版本

无特别差异

4、手脱FSG壳

脱壳

方法1

可用单步跟踪法
在这里插入图片描述
在jmp处下断点——单步 直接跳转OEP
在这里插入图片描述
使用LORDPE脱壳后发现无法运行

修复

找个这种call
在这里插入图片描述
前面和脱壳步骤一样,找到425210-400000=25210位置
在这里插入图片描述
对应
在这里插入图片描述
命令行 输入 d425210
在这里插入图片描述
向上向下翻找到并记录边界值
上边界地址00425000
在这里插入图片描述
下边界地址00425280
在这里插入图片描述
RVA值为上边界:00425000-00400000=25000
大小为下边界-上边界 :25280-25000=280 为了方便可直接填写1000
在这里插入图片描述

方法2

单步到这发现ESP突变,可以ESP定律法
在这里插入图片描述

方法3:FSG2.0

特殊ESP定律法,不遵循堆栈定义
单步到popad下面,看堆栈第四行
在这里插入图片描述
右键——反汇编窗口中跟随
在这里插入图片描述
下硬件断点
在这里插入图片描述
shift+F9跳转到OEP
在这里插入图片描述

  • 9
    点赞
  • 54
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值