第一次脱壳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
过来人告诉你这根本就没什么屁用 压缩壳我我十年前就会脱了 加密壳我现在都不会脱...........
过来人告诉你,ESP 定律对任何壳都有效,任何。。。,当然这个有效是辅助和局部 牛逼佩服 不懂,过来看看 我也不懂,过来看看 首先要恭喜你,这大过年的,又逢疫情,正好学习 第一次心情特别爽,兴趣爱好才是第一老师,加油共同努力学习 mycc 发表于 2020-1-31 17:37
过来人告诉你,ESP 定律对任何壳都有效,任何。。。,当然这个有效是辅助和局部
加密壳要懂原理 需要精通汇编和反汇编 还有编程基础 还要有系统调试相关的知识呀......... netspirit 发表于 2020-1-31 18:27
加密壳要懂原理 需要精通汇编和反汇编 还有编程基础 还要有系统调试相关的知识呀.........
精通汇编就不用了,能看懂基本指令,主要多了解壳的原理,编程要会,会写脚本很关键