第二题,hello_pwn。说个hello吧。
ida一下找到main函数如上图,使得dword_601068==18。。。(巴拉巴拉这个数)即可,因为sub_400686是个后门函数,不信点开看看。
把185(很长那个数)转化为字符,右键选择char即可。结果是‘nuaa’。
ok,现在看一下输入点到溢出目标的位置0x60106c-0x611068=4个字节,那么输入4个a就可以到达目标地址(python里b’a‘的长度是一个字节),再输入‘nuaa‘即可,需要注意的是checksec后是小端序,绝大部分题目都是小端序,所以数据高位应该在地址低位,即输入’aaun‘,总体的payload应该是aaaa+aaun,如果暂时无法理解这个亦可以使用pwntools工具,使用p64打包数据即可,这样的话payload应该是payload=b’a‘*4+p64(0x6E756161),这个0x6E。。。十六进制数就是刚刚的目标数(nuaa?),同样ida里右键即可修改。结果如图:
连payload都不用写,直接淦就完了。