

项目说明
Binary Abyss / 二进制深渊

摘要
这是一个二进制安全系列课程。以
CTF(Capture The Flag) 为导向,预计将会包括
Basic(基础知识)、
Pwn(二进制漏洞利用) 与
Reverse(逆向工程) 三部分主要内容以及
Other(其他内容)。

> 备注:本项目的课程会按照前后铺垫的顺序陆续发布,对于刚入门的同学,建议按照课程更新顺序查看。
一般来说,本系列课程的内容偏向于理论层面的通识课程,而非直接通过实战来短期快速提升能力。
我们希望本系列课程能够帮助您在学习过程中弥补那些由于过于晦涩又或是难以接触而导致缺失的内容,我认为,它们很重要,但是在我过去的学习中,却理解的太晚了。因此将这些偏僻的内容制作为课程,希望能够在您的学习过程中帮到您。
目录
前言
项目介绍:二进制安全系列课程第0节/前言前置技能 - C 语言
基础知识
装载与虚拟内存 / 从 C 语言到二进制 - 什么是内存、什么是地址
- 什么是虚拟地址
- 什么是装载动态库
汇编基础 / 从 C 语言到汇编 - 什么是寄存器
- 处理器与内存如何进行交互
Pwn 介绍 / 目标与手段 - 一道常规 Pwn 题该有的信息
- 如何与题目进行交互 / pwntools
从做题到出题 / Pwn 容器搭建与部署暂未施工,等待贡献Pwn
Pwn 环境配置 - checksec
- pwndbg
- one_gadget
- ROPgadget
- IDA
- pwntools
- pwn入门之环境搭建 - Haruki
- M1/M2 Pwn环境配置 - patrik
- 这部分内容不做单独讲解,这里引用了两份博客,不完善部分可以自行搜索
劫持栈: 栈劫持与冥思 - ret2text
- ret2shellcode
- ret2libc
- 栈迁移 / Stack Pi
程序保护机制介绍与绕过: 如何设计应用层保护机制: - 金丝雀保护 / Canary Protection
- PIE / 地址无关代码
- RELRO / 重定向
- NX / 内存权限限制
劫持堆: 如何设计一个简单的堆管理器 - ptmalloc2 堆管理机制
- 堆溢出 / Heap O
- UAF 攻击 / Double Free 攻击
- Tcache Bin Attack
- Fast Bin Attack
沙箱概念: 什么是沙箱,局域网也是沙箱? - 沙箱的概念 - 到底什么算沙箱
- 有哪些类型的安全机制能够被视为沙箱
- 沙箱逃逸干些啥,目标是什么,能逃吗?
格式化字符串漏洞利用 - 栈上的格式化字符串
- 堆上的格式化字符串
整数溢出漏洞利用暂未施工,等待贡献逆向工程
程序逆向分析调试技术 - 静态分析
- 动态调试与相关技巧
常见程序保护策略 - 自修改代码 SMC
- 反调试 / 反编译
模拟执行 - angr 模拟执行原理与实践
代码插桩与程序跟踪 - 白盒代码插桩
- OLLVM 混淆原理
- 花指令插桩原理
- OLLVM 混淆策略定制
- 二进制插桩
- 插桩原理
- 代码插桩跟踪与拦截
异构程序分析 - 跨语言程序分析
- Python / Golang / Rust / ......
- 跨架构程序分析
- Arm / Mips / RISCV / ......
其他内容
单字节爆破条件与策略面经杂谈:CTF 与实战到底有什么区别杂谈:我们对 Pwn 都有哪些误解行业前景与职业发展杂谈 / 未来我们能做什么?暂未施工,等待贡献交流群
QQ:
769251521 赞助
暂未施工QWQ项目信息
开发语言:未知
Star 数:128
技术要点
该项目属于CTF思路方向的开源资源,代码结构清晰,适合安全研究人员学习参考。项目围绕二进制安全系列课程。以 CTF(Capture The Flag) 为导向,预计将会包括 Basic(基础知识)、 Pwn(二进制漏洞利用) 与 Reverse(逆向工程) 三部分主要内容以及 Other(其他内容)。展开,提供了可运行的实现,对理解相关安全机制、工具原理与攻防技术具有较高的研究价值。
从技术实现角度看,此类项目的核心在于对底层原理的深入理解与工程化落地。开发者在研究过程中可以结合官方文档与社区讨论,梳理项目的初始化流程、核心模块职责与数据流转,逐步掌握其中的技术细节与设计思路。
使用与学习建议
1. 下载源码压缩包,解压到本地环境。
2. 根据项目类型准备对应的运行环境与依赖。
3. 按照 README 中的步骤完成配置与部署。
4. 在隔离的测试环境中运行验证,避免影响生产系统。
免责声明
本资源来源于开源社区,仅供安全研究、技术学习与合法授权范围内的攻防演练使用,请勿用于任何非法或侵害他人权益的用途。使用本项目产生的一切后果由使用者自行承担。