今天咱们讲解下怎么去除UPX压缩壳
1.现在市场很多DLL都被加了UPX的压缩壳
咱们针对这些内容来脱壳和修复
2.好了咱们开始看教程
3.看教程之前介绍下咱们所用到的工具
(ImportREC 1.7汉化版)修复用的
(LPE-DLX)脱壳用的
(PEiD)查壳用的
UPX 0.89.6 - 1.02 / 1.05 - 2.90 -> Markus & Laszlo
看了这个工具用到的是UPX的壳
UPX -> Markus & Laszlo ver. [ 1.93 ] <- 获取文件信息. ( 签名像是 UPX 加壳 )
pushad
这里就是壳的入口点
加壳后的程序载入无法正常看到他的启齿段落
向下运行
0018FF6C咱们看到了这个ESP被点亮
这个是寄存器被压缩或者修改的情况
咱们往下走
UPX壳想脱壳只能往下往上走的我来教你们跳过这些段落
005790A9 >^\72 ED jb Xrmvbfix.00579098
在这一句的下面(切换断点 或 F4)
刚才跳了一个上行的
就要从新来
这里说明下 F2使用后记住恢复断点
popad这里我说明下这个命令是出站命令 这个点下面的跳转会跳到镜像上面咱们需要脱壳的就是这里
jmp 0047738C
既然上面的命令是出站命令 我们是否可以理解这里上面是加壳后为了干扰我们所制造的干扰出站后所看到的点是原始的站命令
是否正确我们跟下看看
看到了
我们找半天要找的东西出来了
这里说明下7738C这个是修复数据
为什么是这个了? 因为他原始索引点是00400000 咱们现在所找到的点-索引点=修复数据的点
开始用到了第二个软件
咱们在查询下壳
这里没有修复完毕 剩下的步骤看好
第二种方法就是在 OD咱们刚才找的点进行脱壳
会出现假死这个情况正常这里是转存
用OD在定位点上脱出来的是直接无壳的
咱们来看修复
PE的段落等会我会给你们讲解什么意思怎么修复
找到咱们这个在OD运行的进程
就是在OD运行并且断点的进程
切记是在壳出口断点的进程
OEP值改成咱们出口点在自动搜索
OK搜索完毕咱们看获取下输入表
在显示下无效数据
删除
现在
这个时候咱们看下壳情况
现在咱们看下00401000
先看原始的
看到了直接载入OD是原始的提示压缩并且00401000无效数据引导
咱们看脱过壳并且修复过后的不提示压缩了吧?在看00401000是否无效
可以证明脱壳了吧
这个PE有问题
他不能重建修改头部命令
好了课程到这里