writeup_guessNum_pwn
writeup_guessNum_pwn
咱就是说,还得会c语言我是没想到的,枯了
先check一下:
好家伙,一片绿,哈人,没法覆盖返回地址了。
先扔ida:
循环产生随机数,然后猜数字,v7似乎可以做一个溢出
然后就需要一点点c语言知识,在上面的区域中,seed变量的值是可以覆盖的,而seed是什么呢?
在使用rand()函数时,首先需要使用srand设定一个seed,只有随机生成了seed每一次rand()顺序生成的数列才是不同的,若seed相同时,生成的随机数列也是相同的。
我不信,小试一下:
我信了。。。
按照逆向的思路,我们可以看看随机的seed是如何生成的,进入sub_BB0函数:
果然不是逆向,是在本地文件中读取的,那没事了。
所以只要覆盖seed,并且用seed在本地生成随机数,然后再传过去就可以了,创作一个脚本:
顺便学一下python中调用c语言。
cyberpeace{5df2a9bab4fa085d9359d4c9722f857c}
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.