这份笔记是笔者在学习二进制安全相关知识中的一些记录,用作整理思路、记录想法。笔者所学浅薄、精力有限,在整理笔记的过程中难免存在一些错误或是不完整的部分,正在逐步修正和补充。如果存在疏漏、错误,欢迎各位读者以Issue或者PR的方式批评指正,感激不尽。
在编写笔记的过程中参考、摘抄了很多资料,都在文末留下了相应的链接,十分感谢文章作者的分享。其中笔记的在线版本可以点击这里查看。
- 基础知识
- 计算机发展简史
 - 布尔代数
 - 大小端与数据表示
 
 - 计算机体系结构
- 计算机系统构成
 - CPU
 - BIOS
 - 内存
 - 硬盘
 - 总线
 - 设备
 - I/O
 - 内核
 
 - 嵌入式设备
- 固件解包
 - HAL
 - 硬件
 - 4G
 - BLE
 - 可信启动
 - 路由设备
 - Android
 - iOS
 - 安全性
 
 - 汇编基础
- 区别
 - x86
 - ARM
 - MIPS
 - PowerPC
 
 - 编译原理
- 基础知识
 - 词法分析
 - 语法分析
 - 语义分析
 - 中间代码生成
 - 代码优化
 - 代码生成
 - LLVM
 - JIT
 - 相关术语
 
 - 操作系统
- 概述
 - Boot
 - Linux
 - Mac OS
 - Windows
 - Android
 - iOS
 
 - 虚拟化
- 基础
 - 虚拟化技术
 - Virtio
 - VMWare
 - KVM
 - Xen
 - QEMU
 - Unicorn
 - Intel虚拟化技术
 - 其他
 
 - 逆向工程
- ELF
 - PE
 - DLL
 - Mach-O
 
 - 漏洞利用基础
- Shellcode
 - Stack
 - Heap
 
 - 栈相关漏洞
- 调用机制
 - ROP
 - 栈溢出
 
 - 堆相关漏洞
- Use After Free
 - Off By One
 - 堆溢出
 
 - 其他漏洞
- 格式化字符串
 - Type Confusion
 
 - 防御策略
- ASLR
 - Canary
 - CFI
 - NX
 - 沙箱机制
 - 安全编程
 
 - 工具与资源
- 工具列表
 - 书单
 - 文档资料
 - 逆向工具
 - 调试器
 - 编译工具
 - 系统工具
 
 - 其他
- 垃圾回收
 - 沙箱
 - 常见术语
 
 
git clone https://github.com/LyleMi/Learn-Binary-Hacking.git
cd Learn-Binary-Hacking
pip install sphinx sphinx-rtd-theme
make html如果有任何的问题、意见或者建议欢迎以Issue或PR的形式提出,不胜感激。
感谢所有的贡献者。
项目以CC0 1.0许可证发布,可以点击这里浏览全文。
该笔记仅供学习和交流使用,请读者遵守《中华人民共和国网络安全法》,勿对非授权目标进行测试。