二进制安全知识储备
本文最后更新于45 天前,其中的信息可能已经过时,如有错误请发送邮件到1453323218@qq.com

基础:

  1. C++/Python编程
  2. 汇编语言
  3. CSAPP
  4. 操作系统(Windows内核原理与实现、Linux操作系统)
  5. 编译原理(待确认)

二进制安全又可以细分为逆向工程和漏洞挖掘与利用等方向。学习的目标是掌握各平台上静态反汇编(IDA、Radare2)和动态调试(GDB、x64dbg)工具,能够熟练阅读反汇编代码,理解x86、ARM和MIPS二进制程序’特别要注意程序的结构组成和编译运行的细节。此阶段,大量动手实践是达到熟练的必经之路。

  1. 程序员的自我修养:链接、装载与库
  2. 加密与解密
  3. Secure Coding in C and C++
  4. The Inter 64 and IA-32 Architectures Software Developer’s Manual
  5. ARM Cortex-A Series Programmer’s Guide
  6. See MIPS Run,2nd Edition
  7. Reverse Engineering for Beginners

接下来就可以进人软件漏洞的学习了,从CTF切入是—个很好的思路。跟随本书的脚步,可
以学习到常见漏洞(溢出、UAF、double-free等)的原理、Linux漏洞缓解机制(Stack canaries、NX、ASLR等)以及针对这些机制的漏洞利用方法(Stack Smashing、Shellcoding、ROP等),此阶段还可以通过读write-ups来学习。在掌握了这些基本知识之后,就可以尝试分析真实环境中的漏洞,或者分析一些恶意样本,推荐资料如下。

  1. RPI CSCI-4968 Modern Binary Exploitation
  2. Hacking:The Art of Exploitation,2nd Edition
  3. The Shellcoder’s Handbook,2nd Edition
  4. Practical Malware Analysis
  5. 漏洞战争:软件漏洞分析精要

有了实践的基础之后,可以学习一些程序分析理论,比如数据流分析(工具如Soot)、值集分析(BAP)、可满足性理论(Z3)、动态二进制插桩(DynamoRio、Pin)、符号执行(KLEE、angr)、模糊测试(Peach、AFL)等。这些技术对于将程序分析和漏洞挖掘自动化非常重要,是学术界和工业界都在研究的热点。感兴趣的还可以关注一下专注于自动化网络攻防的CGC竞赛°推荐资料如下。

  1. UT Dallas CS-6V81 System Secunty and Binary Code Analysis
  2. AU Static Program Analysis Lecture notes

安全资讯(FreeBuf、SecWiki、安全客)、漏洞披露(exploit-db、CVE)、技术论坛(看雪论坛、吾爱破解、先知社区)、大牛技术博客。 这些通过RSS Feed来完成

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇