ISCTF2023--RE--crackme(手把手教你手脱upx壳)

608f2fb07f664dcf80c45c93cf3fdf22.png

第一次学习手脱,就想着记录一下

此题作为签到题好像是可以直接运行得到flag的,应该是出题人忘了,本题要考察的其实是关于upx的脱壳

先下载附件

4b0d5593ff88484c98e042eb8abee24c.png

发现有个upx壳,用指令脱一下壳,这里用到upx4.21

然后发现脱壳失败,看样子不能用工具脱upx壳了,试试手脱

由于之前查到的是64位程序,所以打开工具,这里用到了xdbg

d7b9d17a8b0f4bb2a0482b503c739749.png

打开文件查看断点

5a81ec681fb14c61b23c15d1b33cbe63.png

这里发现有个push断点,应该是入口断点,直接进去

d3ef4a6a59354cd3a4bb9037ef7afa7e.png

按F9运行到断点处

dca06c11c32043f693e698a2a1c50aa4.png

咦,怎么不是之前看见的那个断点,可能是那两个断点中的另一个断点。。。

再按F9运行到下一个断点吧

17722ba807e741bf9cc2469742e812bb.png

到了,这时候再按F7逐步走完push指令

4d30f771b3304fb4b2d9c9e5770a2f61.png

发现RSP有变化

根据ESP定律在RSP的内存地点下断点
9cad14354eee463bbbc0e2035c33507a.png

点击在转储中跟随

cf03c54ac187496bb7f899f5538443cb.png

在右下角内存中下一个4字节断点,下好之后按F9运行到断点
7f993c9b2dce49059ef6a38c4aff7ffb.png

这里发现一串pop后有一个大跳而且是jmp,大概率是我们要找的目标位置

39e4be259deb490ca8fbd01742b8d6cf.png

在jmp行直接下断点,F9与F7结合运行过去

d24955fd0f3341c988d920dd384196ad.png

这时候就可以使用Scylla插件了

bce60d4765e143ca85ffd0605f8c334c.png

转储就可以dump出来了

9fac0a5664b24e4f97ff67d95d62edcd.png

这里为了方便查找和使用就放桌面上

而且是个exe文件,大概率是对的吧QAQ

这时候就可以用你老婆IDA打开了

1a8e6efbffa04b33b6d88a7eaca35960.png

c7d6386b70de41de83be2b884589b2a4.png

发现有main函数,这下应该是把壳脱掉了

进入main函数,F5反汇编得到伪代码

51632bb2f6354fa1b3a1b50642831e9f.png

就可以得到flag了

ISCTF{873c-298c-2948-23bh-291h-kt30}

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值