upx手动脱壳

虽然upx已经出现了很多工具,但是出题人其实只需要根据工具或者一写地方,小小改一下就行了,所以我们有必要进行upx手动脱壳

这里我先简述一下脱壳的大概思路

我们直接反编译,会发现里面很多都看不见

但是为什么我们能运行呢? 期间肯定运行的时候,程序自己进行了解密的过程

我们的目的就是要断在解密后的那一刻,然后把程序dump下

然后就是细节(我的理解根据esp定理):

你既然要解密,那么你要压入栈,然后进行解密,你压入栈,又是大工程,那么就有很多的pop,push指令(32位好像popad)

你push后的解密我不管,那你是不是要jmp回来?

你jmp回来程序是不是就正常了?

OK,大致思路如此

这里我们用BUUCTF的新年快乐来举例

BUUCTF在线评测 (buuoj.cn)

____________________________________

可以看见是32位的信息

小蜘蛛x32打开(吾爱破解里面有)

这是我的设置,大家如果有和我不一样的,可以看一下是不是这的设置

进来之后,就看见了push

按一下f8

可以看见esp被修改了

(esp栈顶ebp栈低)

在这里右键,在内存窗口转到

可以看见

这里

其实就是存数据了

同时也在这里断点选择4字节(因为esp是四字节)

然后f9

然后就可以看见,有大跳(jump到很远)(这个方法比较粗糙哈,具体还是要多联合上下文,我比较菜)

双击进入

点击插件

第一步

他会直接创建一个dump文件

第二步

第三步

第四步选择之前的dump文件

就会出现一个succes

最后这个文件

就可以发现已经没壳了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_Nickname

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值