介绍

Upx壳是一个支持很多平台的壳,包括windows/linux等。
Upk壳是一个支持很多种架构的壳,包括×86/arm等。
Upk壳是开源的。
Upx壳是压缩壳。
官网:https://upx.github.io/
◆Upx壳的主程序是命令行程序
◆功能介绍
◆加壳-123456789
◆脱壳-d

加壳与未加壳对比

大小不一样

image.png
15pb.rar(加壳)
15pb副本.rar

入口点不一样

image.png

内存大小加壳之后更大

image.png

脱壳演示

脱壳思路

方法1(OD):
①寻找OEP(原始入口点)
◆ESP定律
② dump内存(转储内存中代码数据到文件)
·OllyDump
③修复IAT(重建导入表、IAT)
◆ImpREC方法2(×32dbg):
◆与OD类似,需要用到Scylla插件方法3:
◆使用upx-d命令

方法一:

OD:
1.越过pushad,在esp下访问断点,F9直接运行
2.到达popad附近,最后一个jump跳到oep
3.右键OllyDump检查起始地址、oep,取消重建输入表,点击脱壳
4.打开ImportREC打开15pb.exe,填写oep,自动查找、获取输入表,无效函数右键剪切,转储文件

方法二:

x32dbg:
同方法一1、2步骤
3.点击插件Scylla会默认选中进程,oep也已经读取出来了,点击IAT Autosearch、Get Impotrs,如果有无效的就右键删除,dump并存储文件,fixdump选中刚才的文件
4.如果无法运行,OD调试发现某个地址写入违规,这是判断该地址属于哪个区段,lordPE更改该区段的属性为可写
(FF15这个call后边的函数地址就是IAT的地址,该插件会首先判断这个地址是否存着api函数的地址,然后沿着这个地址往上找)