x64和x86在格式化字符串传参上稍有不同,原因在于x64会把printf函数中的参数先传到6个寄存器中。下面以一道例题说明。
链接:https://pan.baidu.com/s/1fgg6HRr__08fW1P0HgmaKA
提取码:1111
二进制文件拖入IDA并F5
代码吧啦吧啦一大堆,实际上就是让你猜一个flag和真正的flag比对,比对正确会给你flag。= =我要是都知道flag还要你的flag干嘛?!
gdb调试
断点断在_isoc99_scanf处,输入AAAA。调试到printf时,查看栈的情况:
显然,flag在栈上。
那