格式化字符串攻击,%_$d 和 %d 的区别
Format string attack, difference between %_$d and %d
我目前正在研究二进制开发,到目前为止还不错。
我唯一不明白的是 %4$d 和 %4d 之间的区别,例如。我在看这个指南:
http://www.kroosec.com/2012/12/protostar-format2.html
并且,在最后一行,使用 %60d 时提到了“最小字段宽度”。这与我的问题有关吗?什么时候应该使用 %$d,什么时候使用 %d?
格式字符串中的美元符号表示 printf 中使用的变量的位置。这样,例如,您可能只有 1 个函数参数,但在格式字符串中使用它 10 次,或者以不同的顺序使用更多参数。根据编程语言的不同,您可能会也可能不会使用混合 $ 格式。
我目前正在研究二进制开发,到目前为止还不错。
我唯一不明白的是 %4$d 和 %4d 之间的区别,例如。我在看这个指南:
http://www.kroosec.com/2012/12/protostar-format2.html
并且,在最后一行,使用 %60d 时提到了“最小字段宽度”。这与我的问题有关吗?什么时候应该使用 %$d,什么时候使用 %d?
格式字符串中的美元符号表示 printf 中使用的变量的位置。这样,例如,您可能只有 1 个函数参数,但在格式字符串中使用它 10 次,或者以不同的顺序使用更多参数。根据编程语言的不同,您可能会也可能不会使用混合 $ 格式。