第四章 技巧篇 4.1 Linux 内核调试 4.2 Linux 命令行技巧 4.3 GCC 编译参数解析 4.4 GCC 堆栈保护技术 4.5 ROP 防御技术 4.6 one-gadget RCE 4.7 通用 gadget 4.8 使用 DynELF 泄露函数地址 4.9 shellcode 开发 4.10 跳转导向编程(JOP) 4.11 利用 mprotect 修改栈权限 4.12 利用 __stack_chk_fail 4.13 利用 _IO_FILE 结构 4.14 glibc tcache 机制 4.15 利用 vsyscall 和 vDSO