手脱UPX3.91壳(练习)

版权声明:本文为博主原创文章,未经博主允许不得转载 https://blog.csdn.net/qq_38924942/article/details/85422463

0x01 准备

OD
UPX加壳程序
可以加壳的软件

0x02 给软件加壳

我找了半天发现winhex不错,而且是没壳的可以直接加壳
1.复制一份可执行文件
在这里插入图片描述
将赋值好的文件用UPX3.91加壳
在这里插入图片描述

0x02 脱壳

查一下壳
在这里插入图片描述
OD载入,查看入口点
在这里插入图片描述
单步调试,到如图的这一步,不能向下跟,因为下面call的函数是ExitProcess(一般程序到快结束的时候会调用这个API)说明程序要跑飞了
在这里插入图片描述
之后研究一下这个跳转这个是个类似循环,在A1和BE之间跳转,在跳转里面还有两个跳转,一个是在A6,一个是在B7,je会跳转到84,而B7会跳转到C0,可能程序正在解压。C0是刚才说了程序会跑飞,这个跳转先别管,看一下A6这个跳转
在这里插入图片描述
在这里插入图片描述
这个跳转跳到84,84下面有个为实现的跳转,会跳到C6,跳过ExitProcess这个函数,好的,我们直接在C6下断点,之后单步执行
在这里插入图片描述
在这里插入图片描述
这个看到了popad,说明程序解压完了,之后看到一个大跳转,说明马上到OEP了
在这里插入图片描述
之后到达程序OEP
**在这里插入图片描述**
之后使用od自带的插件脱壳
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后查壳运行
在这里插入图片描述
在这里插入图片描述

0x04 总结

加密壳脱法比较简单一般是push开始,popad结束,可以使用查询popad,esp定律法等等来脱壳。

猜你喜欢

转载自blog.csdn.net/qq_38924942/article/details/85422463