攻防世界 re serial 150 - Odoiys/ctf GitHub Wiki

这道题是看着wp做的,越做到后面,越感觉遇到的新题型越多,之前有几道看着wp都做不出来,看来要补一补理论知识了。

这道题是靠着wp用ida pro动态调试做出来的,对ida的使用会增加一些知识。

我把文件放在ida里,发现没有main函数,也找不到能突破的地方,连类似密码的踪迹都找不到。

但是如果把它放到gdb和objdump里就可以找到,真的是一脸懵逼,看了wp有大佬说,可能是用什么欺骗的方法来使ida无法反汇编出来原函数。

找到了一堆数字集结的地方,感觉有可能是main函数,先用d把字节都拆开,再用c来修复汇编内容,虽然没办法反汇编成伪代码,但是也可以读,这个真的需要一行一行读了。

当读到strlen时,应该要清楚这里可能要判断输入字符串的长度了,看到10h,说明要输入十六个字符,先输入十六个,边调试边看汇编,找问题,这里有个很有意思的地方,我这里的每个函数跳转的最后都会有一个+1和+2什么的,这导致我在看的时候完全思路乱掉了,其实可以直接忽略掉的,不用管,直接跳转到本来的函数上,然后看到一些数字,直接用r来转换即可出答案。