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}

 

C:\Users\Administrator>takeown /f "C:\Users\Administrator\AppData\Local\Temp_ME1288602" /r /d y 错误: 系统找不到指定的文件。 C:\Users\Administrator>icacls "C:\Users\Administrator\AppData\Local\Temp_ME1288602" /grant administrators:F /t C:\Users\Administrator\AppData\Local\Application Data\*: 拒绝访问。 已成功处理 0 个文件; 处理 1 个文件时失败 C:\Users\Administrator>可能的原因分析 '可能的原因分析' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 C:\Users\Administrator>在处理 takeown 和 icacls 命令时,如果遇到错误提示“系统找不到指定的文件”或“拒绝访问”,通常可能由以下几个原因引起: '在处理' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 C:\Users\Administrator> C:\Users\Administrator>权限不足:运行这些命令需要管理员权限。如果没有以管理员身份运行命令提示符,则可能导致权限被拒。 '权限不足:运行这些命令需要管理员权限。如果没有以管理员身份运行命令提示符,则可能导致权限被拒。' 不是内部或外部命令,也 不是可运行的程序 或批处理文件。 C:\Users\Administrator>路径问题:目标文件或目录路径可能存在拼写错误或者不可达的情况。 '路径问题:目标文件或目录路径可能存在拼写错误或者不可达的情况。' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 C:\Users\Administrator>文件系统损坏:某些情况下,文件系统的元数据可能出现问题,导致无法正常操作特定文件或目录。 '文件系统损坏:某些情况下,文件系统的元数据可能出现问题,导致无法正常操作特定文件或目录。' 不是内部或外部命令,也不是可 运行的程序 或批处理文件。 C:\Users\Administrator>针对上述情况的具体解决方案如下: '针对上述情况的具体解决方案如下:' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 C:\Users\Administrator> C:\Users\Administrator>解决方案 '解决方案' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 C:\Users\Administrator>方法一:确保以管理员身份运行命令提示符 '方法一:确保以管理员身份运行命令提示符' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 C:\Users\Administrator>确认当前使用的命令提示符是以管理员身份启动的。可以通过右键点击“开始菜单”中的“命令提示符”选项并选 择“以管理员身份运行”。如果不具备足够的权限,即使输入了正确的命令也无法成功执行1。 '确认当前使用的命令提示符是以管理员身份启动的。可以通过右键点击“开始菜单”中的“命令提示符”选项并选择“以管理员身份运行”。 如果不具备足够的权限,即使输入了正确的命令也无法成功执行1。' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 C:\Users\Administrator> C:\Users\Administrator>方法二:验证路径准确性 '方法二:验证路径准确性' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 C:\Users\Administrator>仔细检查所提供的文件或目录路径是否完全正确无误,并注意区分大小写字母以及处理好其中含有的空格字符 等问题。对于含有空格的路径名应加上双引号来包裹整个字符串表示法。 '仔细检查所提供的文件或目录路径是否完全正确无误,并注意区分大小写字母以及处理好其中含有的空格字符等问题。对于含有空格的 路径名应加上双引号来包裹整个字符串表示法。' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 C:\Users\Administrator> C:\Users\Administrator>方法三:修复文件所有权与权限设置 '方法三:修复文件所有权与权限设置' 不是内部或外部命令,也不是可运行的程序 或批处理文件。 C:\Users\Administrator>可以尝试先使用以下命令重新获取对象的所有权再调整其访问控制列表(ACLs): '可以尝试先使用以下命令重新获取对象的所有权再调整其访问控制列表' 不是内部或外部命令,也不是
03-21
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值