[HGAME 2022 week1]test your gdb
发现是64位文件并且开了canary
查看发现这个函数中V2进行了加密,且在memcmp中进行了buf和V2的对比
我们进入gdb在read(0,buf,0x10ull)处的地址下断点
找到call memcmp 找到与memcmp中对应的s2
用x/8xg 找到密码
得到密码
这题是有后门的
先将两个密码对比定义 然后因为溢出时0x10 所以我们0x20-0x8也就是canary绰绰有余 不能溢出canary p64(0)是ROP链的返回地址 随便填什么
注意:这里不能使用sendline因为会添加换行符 因为read只接受16位 而V2已经16位
我们用send就行或者sendafter一起连着打印字符发送