首页 > 编程知识 正文

matlab输出格式控制,格式化字符串漏洞利用

时间:2023-05-06 17:37:59 阅读:174982 作者:2063

% E5 % BD % 93 % E6 % 88 % 91 % E5 % BC % 80 % E5 % a7 % 8b % E5 % ad % a6 % E4 % B9 % A0 % 20 UNIX % 20 % E6 % B6 % ef % 25 % 5 % 20 % E5 % 8f % 8a % E5 % 88b0% E4 % ba % 86 % 20 print % 20 % E5 % 87 % BD % E6 % 95 % B0 % E3 % 80 % 82 % E5 % 86 % 86d % % E4 % B9 %8E6 % aae % 20 % AE % a3 % E7 % a7 % B0 % E6 % 8b % a5 % E6 % 9c % 89 % E4 % b8 % 80 % E7 % a8d % E6 % 96 % B9 % E6 % e9 % E6 1 % E8 % BF % 87 % E6 % 96 % 25 % 206 % 98 % af % E5 % BD % 93 % E6 % 88 % 91 % E7 % BF % bb % E5 % BC % 80 % E4 % b8 % ad % ed % ad % E8 % ad % ed % ad % ed a % E6 % 99 % a6 % E6 % B6 % a9 % e9 % 9a % 2084 % ef % BC % 8c % E5 % 87 % ba % 88 % E5 % 87 % a5 % 87 % E7 % 81 % b5 % % BF % 99 % E4 % b8 % aa % E4 % bb % a4 % E4 % ba % bb4 % ba % 20 % E4 % bb % 8b % E7 % bb % 8d % E8 % BF % 99 % E4 % b8 % aa E6 % 89 % E6 % 9c % E8 % af % ad % E8 % A8 % E4 % b8 % aa8 % 25 % 202 % 0a % 20 % E6 % 9c % af % E8 % af % ad % 20 printf % 20 80 % E6 % 97 % a9 % E5 % 87 % ba % E7 % 8e % B0 % 20 ALGOL % 2068 % E7 % BC % 25 % 2083 % E8 % a2 % ab % E7 % ba % B3 % E5 % 85 b8 % ad % E4 % b8 % 80 % E6 % AC % a1 % E6 % a1 % e9 % 87 % 8d % E6 % B0 % E5 % AE % 208 % E4 % BD % A0 % E6 % 9c % 80 % E5 % % 84 % B6 % ef % BC % 8c % E5 % AE % 83 % E5 % be8 % E5 % 8f % 97 % E6 % AC % a2 % E8 % 20 % 83 % E7 % 9a % 84 % E8 % af % ad % ad % E4 % bb % a3 % E7 % 9a % 84 % E5 % 87 % BD % E6 % B0 % E7 % b8 % E6 % af % 94 % E5 % 25 % 2099 % E6 % 98 % af % E5 % 9c % A8 99 % E6 % 98 % af % E5 % 9c % A8 % 20 bash % 20 % E4 % b8 % ad % E4 % BD % BF % E7 % A8 % 20 % 200 a % 20 % 24 printf % 27 % 25s BD % A0 % E6 % 8b % a5 % E6 % 9c % E5 % be5 % a4 % E5 % 8a % 9f % E8 % 83 % BD % ef % BC % 8c % 20 % E5 % ad % a6 % E4 % B9 % % ba % E6 % 9c % AC % E6 % 80 % 9d % E6 % 83 % B3 % E6 % 98 % af % ef % BC % 9a % E5 % ae8 % 83 % E8 % 25 % 20b % E7 % 9a % 84 c % E6 % 98 % af % 20 printf % 20 % E8 % ae4 % E5 % 8f % af % E7 % 9a % E8 % a7 % 86 % E4 % BD % 9c % E7 % 89 % B9 % 20e9% 9b 7 % 9a % 84 % E5 % ba % 8f % E5 % 88 % 97 % ef % BC % 8c % E4 % BD % 86 % E6 % 98 % af % e9 % 80 % E5 % E5 % 20 % 20 % E5 ab % E4 % b8 % 80 % E4 % b8 % aa % E5 % 88 % B0 % E4 % b8 % b8 % aa % E6 % B0 % E5 % ad % ef % BC % 20 % E7 % 9a % 89 % b8 % aa

printf 打印多少位小数。这是一个简单的用 Bash 写的简练示例:

$ printf "%.2fn" 3.141519

3.14

$

类似的语法也适用于其它的语言。这里是一个 C 语言的示例:

#include 

#include 

int main() {

fprintf(stdout, "%.2fn", 4 * atan(1.0));

return 0;

}

对于三位小数,使用 .3f ,依次类推。

使用 printf 来在数字上添加逗号

因为位数大的数字很难解读,所以通常使用一个逗号来断开大的数字。你可以在百分号和 d 之间放置一个撇号('),让 printf 根据需要添加逗号:

$ printf "%'dn" 1024

1,024

$ printf "%'dn" 1024601

1,024,601

$

使用 printf 来添加前缀零

printf 的另一个常用的用法是对文件名称中的数字强制实行一种特定的格式。例如,如果你在一台计算机上有 10 个按顺序排列的文件,计算机可能会把 10.jpg 排在 1.jpg 之前,这可能不是你的本意。过时的蜜蜂以编程的方式写一个到文件时,你可以使用 printf 来用前缀为 0 的字符形成文件名称。这是一个简单的用 Bash 写的简练示例:

$ printf "%03d.jpgn" {1..10}

001.jpg

002.jpg

[...]

010.jpg

注意:每个数字最多使用 3 位数字。

使用 printf

正如这些 printf 示例所显示,包括控制字符,尤其是 n ,可能会冗长,并且语法相对复杂。这就是为什么开发像 echo 和 cout 之类的快捷方式的原因。不过,如果你时不时地使用 printf ,你就会习惯于这种语法,并且它也会变成你的习惯。我不认为 printf 有任何理由成为你在日常活动中打印时的首选,但是它是一个很好的工具,过时的蜜蜂需要它时,它不会拖累你。

花一些时间学习你所选择语言中的 printf,并且过时的蜜蜂需要时就使用它。它是一个强有力的工具,你不会后悔随时可用的工具。

【责任编辑:fkdym TEL:(010)68476606】

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。