格式化字符串攻击,%_ $ d和%d之间的区别

时间:2019-01-17 21:20:28

标签: c security printf format-string

到目前为止,我目前正在进行二进制利用。

例如,我唯一不了解的就是%4 $ d和%4d之间的区别。我在看这个指南:

http://www.kroosec.com/2012/12/protostar-format2.html

,最后一行提到了“ 最小字段宽度”,而使用了%60d。这和我的问题有关吗? 什么时候应该使用%$ d,什么时候应该使用%d?

预先感谢, 依斋。

1 个答案:

答案 0 :(得分:2)

格式字符串中的美元符号表示在printf中使用的变量的位置。这样,例如,您可能对该函数只有1个参数,但在格式字符串中使用10次,或者以不同的顺序将其与更多参数一起使用。根据编程语言的不同,您可能会或可能不会使用混合$格式。