题目给了下列的shellcode
\xe8\xff\xff\xff\xff\xc0\x5d\x6a\x05\x5b\x29\xdd\x83\xc5\x4e\x89\xe9\x6a\x02\x03\x0c\x24\x5b\x31\xd2\x66\xba\x12\x00\x8b\x39\xc1\xe7\x10\xc1\xef\x10\x81\xe9\xfe\xff\xff\xff\x8b\x45\x00\xc1\xe0\x10\xc1\xe8\x10\x89\xc3\x09\xfb\x21\xf8\xf7\xd0\x21\xd8\x66\x89\x45\x00\x83\xc5\x02\x4a\x85\xd2\x0f\x85\xcf\xff\xff\xff\xec\x37\x75\x5d\x7a\x05\x28\xed\x24\xed\x24\xed\x0b\x88\x7f\xeb\x50\x98\x38\xf9\x5c\x96\x2b\x96\x70\xfe\xc6\xff\xc6\xff\x9f\x32\x1f\x58\x1e\x00\xd3\x80
这个shellcode是被混淆了的
我们可以使用pwntools自带的disasm快速根据shellcode返汇编代码

可以看到是x86-32的,而且调用了系统调用
所以思路类似于上一题,执行这段代码,然后对系统调用打hook,把参数print出来,然后再跳过去。
调用号放在eax寄存器,参数的顺序是:ebx,ecx,edx,esi,edi。在hook函数中使用reg_read读这几个寄存器
可以Hook一个int 80h指令,它由cd 80表示
hook函数如下

完整代码在6.py,运行后如下所示
unicorn教程三
最新推荐文章于 2025-03-31 11:10:03 发布
本文深入解析混淆的shellcode,展示如何使用pwntools进行反汇编,识别并模拟系统调用。通过实例演示了如何修改二进制程序逻辑及在ARM架构下模拟执行程序,获取计算结果。

最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



