basic

[TOC]

写入的字节数

但是写入4字节,也就是32位一般会太大不让写,所以一般都写入2字节

%n的理解

  • 要利用%k$n这个特性,%n的特性:不输出字符,但是把已经成功输出的字符个数写入对应的整型指针参数所指的变量
  • 在64位程序中,高2个字节一般都是0,printf函数遇到\x00结束,因此在64位程序中一般都是把overwrite地址放在后面,注意放在后面相对格式化字符串为第几个参数

一些正确的理解

调用printf函数也是在调用函数,注意函数调用是要用到栈的,因此一些数据会被写到栈上,通过printf函数泄露有用的数据

覆盖为小数字/大数字

wiki的文章