常用基本的格式化字符串参数介绍
常用基本的格式化字符串参数介绍: %c:输出字符,配上%n可用于向指定地址写数据。 %d:输出十进制整数,配上%n可用于向指定地址写数据。 %x:输出16进制数据,如%i x 表 示 要 泄 漏 偏 移 i 处 4 字 节 长 的 16 进 制 数 据 , x表示要泄漏偏移i处4字节长的16进制数据,%i x 表 示 要 泄 漏 偏 移 i 处 4 字 节 长 的 1 6 进 制 数 据 , lx表示要泄漏偏移i处8字节长的16进制数据,32bit和64bit环境下一样。 %p:输出16进制数据,与%x基本一样,只是附加了前缀0x,在32bit下输出4字节,在64bit下输出8字节,可通过输出字节的长度来判断目标环境是32bit还是64bit。 %s:输出的内容是字符串,即将偏移处指针指向的字符串输出,如%i$s表示输出偏移i处地址所指向的字符串,在32bit和64bit环境下一样,可用于读取GOT表等信息。 %n:将%n之前printf已经打印的字符个数赋值给偏移处指针所指向的地址位置,如%100×10 n 表 示 将 0 x 64 写 入 偏 移 10 处 保 存 的 指 针 所 指 向 的 地 址 ( 4 字 节 ) , 而 n表示将0x64写入偏移10处保存的指针所指向的地址(4字节),而% n 表 示 将 0 x 6 4 写 入 偏 移 1 0 处 保 存 的 指 针 所