我正在学习有关格式字符串的攻击,并且正在努力了解格式字符串之前的字符串如何覆盖地址的内容。
我正在阅读一篇很棒的文章:http://www.cis.syr.edu/~wedu/Teaching/cis643/LectureNotes_New/Format_String.pdf
我了解,如果用户可以控制要在printf中打印的变量,例如
printf(用户变量);
用户可以选择不使用格式字符串后的变量,而使用诸如
这样的字符串来更改地址的内容printf(“ \ x10 \ x01 \ x48 \ x08%x%x%x%x%s”);
但是,从下图中,当0x10014808应该位于下面显示的空白中时,它将被连接到一个地址中。
%x如何将所有数字加在一起以形成覆盖%s的地址?