今天看啥  ›  专栏  ›  看雪学苑

PWN入门:误入格式化字符串漏洞

看雪学苑  · 公众号  · 互联网安全  · 2025-01-18 17:59
    

文章预览

一 格式化字符串介绍 可变 参数 在常规情况下,C语言中函数接收的形参数量都是固定的,但事实上,C语言中函数接受形参的数量并不是必须固定的,也支持动态变化的形参数量。 函数间传递可变参数时,基本的要求是函数至少指定一个参数。 C语言中可变形参的定义方式如下所示,除了首个参数指定类型和变量名外,后续的参数都通过 ... 省略号代替。 ( type arg1, ...) 除了 ... 省略号代表动态变化的参数外,C语言还允许宏内通过 __VA_ARGS__ 代替 ... 。 __VA_ARGS__ 示例: #define test (...) orig (__VA_ARGS__) 可变参数的处理 首先先来看一下可变参数是如何传递的。下方给出了函数原型和函数调用。 void test (int num, ...) test ( 10 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ); 从反汇编上看,调用者保存寄存器处理了前6个参数,栈空间处理了后5个参数。此时可以知道,可 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览