addr$k%s
2019-11-08 本文已影响0人
anything都不会
程序是这样的:
![](https://img.haomeiwen.com/i16353307/cdcc98dcdade0f3a.png)
我们gdb,在0x080484EA处下断,即第一次调用printf后。
![](https://img.haomeiwen.com/i16353307/c6a6a4ac62db9b5d.png)
如图
![](https://img.haomeiwen.com/i16353307/7f893e70acc464ea.png)
运行,输入%08x.%08x.%08x
![](https://img.haomeiwen.com/i16353307/109555b4b73a7100.png)
注意此时代码和堆栈情况,
![](https://img.haomeiwen.com/i16353307/147ca85014218614.png)
继续
![](https://img.haomeiwen.com/i16353307/a8d78de2060a0e3a.png)
继续
![](https://img.haomeiwen.com/i16353307/b3d5095a796f808c.png)
好,接下来认真看了。
![](https://img.haomeiwen.com/i16353307/8fadc2090b44eb06.png)
执行push eax后,会发现堆栈图成了下图这样:
![](https://img.haomeiwen.com/i16353307/4dadfdc711bfcc9a.png)
会发现,格式化字符串,和格式化字符串相对的第一个参数是一样的,神奇吧。
程序是这样的:
我们gdb,在0x080484EA处下断,即第一次调用printf后。
如图
运行,输入%08x.%08x.%08x
注意此时代码和堆栈情况,
继续
继续
好,接下来认真看了。
执行push eax后,会发现堆栈图成了下图这样:
会发现,格式化字符串,和格式化字符串相对的第一个参数是一样的,神奇吧。