二进制安全学习笔记
序言
这份笔记是笔者在学习二进制安全相关知识中的一些记录,用作整理思路、记录想法。笔者所学浅薄、精力有限,在整理笔记的过程中难免存在一些错误或是不完整的部分,正在逐步修正和补充。如果存在疏漏、错误,欢迎各位读者以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
Contribution
如果有任何的问题、意见或者建议欢迎以Issue或PR的形式提出,不胜感激。
感谢所有的贡献者。
License
项目以CC0 1.0许可证发布,可以点击这里浏览全文。
注
该笔记仅供学习和交流使用,请读者遵守《中华人民共和国网络安全法》,勿对非授权目标进行测试。