taohuadaozhu 发表于 2020-1-30 22:19

第一次脱壳UPX,有点小开心

目标文件:链接:https://pan.baidu.com/s/1mx8G85Zbla2Z61i0eGzkzQ
提取码:v14c


PEid打开文件如图:

javascript:;


PEid查询结果是UPX v0.89.6的壳,站内搜了一下,好多教程,接着百度了一下,发现了ESP定律可以脱壳

ESP定律又叫平衡堆栈,UPX会先把8个通用寄存器的值压入栈内,汇编指令:pushad,保存环境

用x64dbg打开目标文件如图:



看到了pushad指令,这是EBP栈底是0014FF94,ESP栈顶是0014FF84,F8执行pushad指令



这时候右键点击esp,选择在内存窗口中转到


可以看到定位到了内存窗口中数据和堆栈中数据相同



在内存中打硬件断点,并且F9直接执行:

找到了popad,这就是壳结束的地方了



而图中的jmp就是OEP了,

然后选择插件-scylla,在OEP处填入原始OEP的地址,点击Dump就完成了,开心。

netspirit 发表于 2020-1-31 15:43

过来人告诉你这根本就没什么屁用 压缩壳我我十年前就会脱了 加密壳我现在都不会脱...........

mycc 发表于 2020-1-31 17:37

netspirit 发表于 2020-1-31 15:43
过来人告诉你这根本就没什么屁用 压缩壳我我十年前就会脱了 加密壳我现在都不会脱...........

过来人告诉你,ESP 定律对任何壳都有效,任何。。。,当然这个有效是辅助和局部

12250279 发表于 2020-1-31 14:46

牛逼佩服

hnnwee 发表于 2020-1-31 14:50

不懂,过来看看

q3814416 发表于 2020-1-31 15:23

我也不懂,过来看看

pack39 发表于 2020-1-31 16:15

首先要恭喜你,这大过年的,又逢疫情,正好学习

跌宕起伏 发表于 2020-1-31 17:33

第一次心情特别爽,兴趣爱好才是第一老师,加油共同努力学习

netspirit 发表于 2020-1-31 18:27

mycc 发表于 2020-1-31 17:37
过来人告诉你,ESP 定律对任何壳都有效,任何。。。,当然这个有效是辅助和局部
加密壳要懂原理 需要精通汇编和反汇编 还有编程基础 还要有系统调试相关的知识呀.........

mycc 发表于 2020-1-31 19:41

netspirit 发表于 2020-1-31 18:27
加密壳要懂原理 需要精通汇编和反汇编 还有编程基础 还要有系统调试相关的知识呀.........

精通汇编就不用了,能看懂基本指令,主要多了解壳的原理,编程要会,会写脚本很关键
页: [1] 2 3 4
查看完整版本: 第一次脱壳UPX,有点小开心