这是一个二进制安全系列课程。以 CTF(Capture The Flag) 为导向,预计将会包括 Basic(基础知识)、 Pwn(二进制漏洞利用) 与 Reverse(逆向工程) 三部分主要内容以及 Other(其他内容)。
备注:本项目的课程会按照前后铺垫的顺序陆续发布,对于刚入门的同学,建议按照课程更新顺序查看。
一般来说,本系列课程的内容偏向于理论层面的通识课程,而非直接通过实战来短期快速提升能力。 我们希望本系列课程能够帮助您在学习过程中弥补那些由于过于晦涩又或是难以接触而导致缺失的内容,我认为,它们很重要,但是在我过去的学习中,却理解的太晚了。因此将这些偏僻的内容制作为课程,希望能够在您的学习过程中帮到您。
- 项目介绍:二进制安全系列课程第0节/前言
- 前置技能
- C 语言
- 装载与虚拟内存 / 从 C 语言到二进制
- 什么是内存、什么是地址
- 什么是虚拟地址
- 什么是装载动态库
- 汇编基础 / 从 C 语言到汇编
- 什么是寄存器
- 处理器与内存如何进行交互
- Pwn 介绍 / 目标与手段
- 一道常规 Pwn 题该有的信息
- 如何与题目进行交互 / pwntools
- 从做题到出题 / Pwn 容器搭建与部署
- 暂未施工,等待贡献
- Pwn 环境配置
- checksec
- pwndbg
- one_gadget
- ROPgadget
- IDA
- pwntools
- pwn入门之环境搭建 - Haruki
- M1/M2 Pwn环境配置 - patrik
- 这部分内容不做单独讲解,这里引用了两份博客,不完善部分可以自行搜索
- 劫持栈: 栈劫持与冥思
- ret2text
- ret2shellcode
- ret2libc
- 栈迁移 / Stack Pivoting
- 程序保护机制介绍与绕过: 如何设计应用层保护机制:
- 金丝雀保护 / Canary Protection
- PIE / 地址无关代码
- RELRO / 重定向
- NX / 内存权限限制
- 劫持堆: 如何设计一个简单的堆管理器
- ptmalloc2 堆管理机制
- 堆溢出 / Heap Overflow
- UAF 攻击 / Double Free 攻击
- Tcache Bin Attack
- Fast Bin Attack
- 沙箱概念: 什么是沙箱,局域网也是沙箱?
- 沙箱的概念 - 到底什么算沙箱
- 有哪些类型的安全机制能够被视为沙箱
- 沙箱逃逸干些啥,目标是什么,能逃吗?
- 格式化字符串漏洞利用
- 栈上的格式化字符串
- 堆上的格式化字符串
- 整数溢出漏洞利用
- 暂未施工,等待贡献
- 程序逆向分析调试技术
- 静态分析
- 动态调试与相关技巧
- 常见程序保护策略
- 自修改代码 SMC
- 反调试 / 反编译
- 模拟执行
- angr 模拟执行原理与实践
- 代码插桩与程序跟踪
- 白盒代码插桩
- OLLVM 混淆原理
- 花指令插桩原理
- OLLVM 混淆策略定制
- 二进制插桩
- 插桩原理
- 代码插桩跟踪与拦截
- 白盒代码插桩
- 异构程序分析
- 跨语言程序分析
- Python / Golang / Rust / ......
- 跨架构程序分析
- Arm / Mips / RISCV / ......
- 跨语言程序分析
- 单字节爆破条件与策略
- 面经
- 杂谈:CTF 与实战到底有什么区别
- 杂谈:我们对 Pwn 都有哪些误解
- 行业前景与职业发展杂谈 / 未来我们能做什么?
- 暂未施工,等待贡献
QQ:769251521
- 暂未施工QWQ