0x00本文视频:
如果文字过于枯燥可观看在线视频:https://edu.51cto.com/sd/16514
0x01基础知识:
在c语言中printf的使用方法为printf(format,<参量表>),printf是c语言中少见的可变参数的库函数,printf在调用前无法知道传入的参数到底有多少个(在32位汇编中参数都是压入栈中,也就是说printf不知到有多少个参数入栈了),例如printf("My name is %s,%s"),这里format指定了要传递2个参数,但我们并没有传,这时候printf就会去栈中高地址四字节数据来填充%s,也就是:format+4,format+8的值进行填充。
下面举个例子: