星巡研究院

渗透视角下的C语言

### 本册不教 C 语言 你可能翻开过 C 语言教材,第一章是 hello world,第二章是变量,一直学到数百页才碰到 socket。 本册不是这样。本册不教你写程序,教你看懂程序在干什么。 * 你在靶场里执行 `system("id")`,为什么能执行? * 你上传的程序,为什么能调用操作系统? * 你看到的反弹 shell,为什么能把标准输入输出交出去? * 你看到的 `disable_functions`,到底在禁什么? 这些问题的答案,全在 C 里面。但不是 C 的语法,是 C 的能力。 ### 什么叫 C 的 “能力” C 语言提供了一套能力,这套能力叫系统调用。创建进程(`fork`)、执行程序(`execve`)、网络通信(`socket`)、文件读写(`open/read/write`)、内存映射(`mmap`)、身份切换(`setuid`)。 PHP、Python、Java、Go、Node.js,所有这些语言底层都是调这套 C 能力。多数命令执行问题,终点都落到这一层。本册只讲能力在系统调用与内核层面的来路,不展开语言语法教学。 ###
这是进阶内容

升级理论包获取本册全部章节,从机器本质系统入门