0110、安全开发篇(二):C/C++ 进阶提升
返回:Ferry 学院安全开发总目录 · 网络安全学习主页
这一篇开始进入 C/C++ 进阶提升。相比第一篇的语法入门,这一篇更靠近安全开发真正需要反复复盘的部分:入口函数、调用堆栈、调用约定、指针高级用法、堆内存、文件读写和项目组织。
1、学习定位
第一篇解决的是“能写出 C 语言基础代码”,第二篇要解决的是“能理解程序怎么运行”。
这里的重点不是把语法再背一遍,而是把源码、汇编、栈、堆、指针、文件和项目流程串起来。后面做逆向、调试、内存分析和安全工具开发时,这一篇会经常回看。
2、章节目录
| 编号 | 章节 | 主要内容 | 笔记 |
|---|---|---|---|
| 0111 | 01 入口函数与参数传递 | main 参数、调用堆栈、IDA/DBG 回溯、函数声明、分文件、值传递、地址传递、寄存器与线程栈 | 0111 |
| 0112 | 02 调用栈与函数高级 | 汇编指令、函数调用堆栈、调用约定、堆栈平衡、宏函数、数组/结构体参数、可变参数、printf 原理、变量内存布局 | 0112 |
| 0113 | 03 内存管理与指针限定 | 内存属性探测、void 指针、堆区管理、内存回收、设置内存、const 指针组合、数组寻址、指针运算、多级指针 | 0113 |
| 0114 | 04 指针进阶、文件与项目实践 | 指针数组、数组指针、指针函数、函数指针、字符串函数重构、生命周期、静态变量、文件读写、编码处理、控制台项目 | 0114 |
3、整理原则
这一篇后续按“源码写法 → 调试观察 → 内存/汇编视角 → 安全边界”整理。每一部分都尽量保留可运行代码和复盘问题,方便之后复试、项目展示和网络安全方向学习。
4、复盘重点
| 方向 | 复盘重点 |
|---|---|
| 函数 | 参数从哪里来,返回到哪里去,调用前后栈发生什么变化 |
| 指针 | 指向哪里,是否有效,步长是多少,能否安全读写 |
| 内存 | 栈、堆、全局区、只读区、代码区分别保存什么 |
| 文件 | 文件指针、文本/二进制、读写位置、编码和边界处理 |
| 项目 | 需求拆分、模块划分、数据结构、流程控制和调试验证 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ruiqy~!






