c - 格式化字符串攻击,%_$d 和 %d 的区别
问题描述
我目前正在研究二进制开发,到目前为止一切都很好。
例如,我唯一不明白的是 %4$d 和 %4d 之间的区别。我在看这个指南:
http://www.kroosec.com/2012/12/protostar-format2.html
并且,在最后一行,在使用 %60d 时提到了“最小字段宽度”。这与我的问题有关吗?什么时候应该使用 %$d,什么时候应该使用 %d?
解决方案
格式字符串中的美元符号表示 printf 中使用的变量的位置。这样,例如,您可能只有一个函数参数,但在格式字符串中使用它 10 次,或者以不同的顺序使用更多参数。根据编程语言,您可能会或可能不会使用混合 $ 格式。
推荐阅读
- mainframe - PLI 中的 Oncode 9250
- windows - Windows Credential Provider - 有没有办法与 Windows Hello API 进行通信或干扰?
- api - 从 WSO2 Api Manager 检索用户访问令牌
- php - 如何从 Laravel 中的 Eloquent 或原始查询中检索数据?
- google-apps-script - 如何在没有 DriveApp 的情况下检查电子表格是否存在?
- sql-server - Visual Studio 中的多条件计数表达式
- sql - SQL 可选参数
- javascript - 无法使用 Laravel 在 Javascript FullCalendar 中获取事件
- microsoft-graph-api - 使用 Microsoft Graph API 获取设备列表
- python - 使用 setup.py 导入 python 包