文章目录
前言
本文转自IT鹅的二进制安全学习路线
书籍很多,但是建议涉及之后再看,不然分心。
一、路线
在成为以下职业之前建议有c++工程师的资质:
- 掌握c/c++, python, 汇编
- 熟悉IDA,OllyDbg,CheatEngine
- 熟悉Windows/Linux系统API以及系统底层原理
以下职业也可作转职:
逆向工程师
逆向工程师
: 大部分的逆向工程师都是在进行竞品分析,所谓的竞品分析就是分析同行的软件,看看有什么东西是比自己好的,加到自己的产品中。还有一部分逆向工程师是配合研发工程师进行项目攻关,解决疑难问题的。
恶意代码分析工程师
恶意代码分析工程师
: 恶意代码分析工程师也可以成为病毒分析师,主要服务于乙方安全公司、各大监管单位以及政府部门。负责对病毒进行快速分析或详细分析。目的主要是发报告为单位获取知名度或者为自家单位的恶意代码引擎提供规则。近年来有一种新的概念叫APT,是类似于特工情报组织所研发出针对指定敏感行业,例如能源化工,亦或者政府机关的攻击载体。特点是长期潜伏,密集踩点。对目标系统内部极为了解,有针对性的窃取情报。有部分恶意代码分析工程师就是负责追踪此类组织的攻击轨迹,分析同源性等相关工作
漏洞分析工程师
漏洞分析工程师
: 漏洞分析工程师主要负责针对已有漏洞进行分析,并且产出报告或者规则。职业权能与恶意代码分析工程师类似,但是更专注于漏洞类型的样本分析。不过近年来恶意代码也多带有漏洞传播。例如大名鼎鼎的永恒之蓝漏洞,就催生出了一大批勒索软件。所以如今的漏洞分析工程师,也多兼任恶意代码分析工程师的职能。
漏洞挖掘工程师
漏洞挖掘工程师
: 漏洞挖掘工程师与漏洞分析工程师的不同之处在于漏洞挖掘工程师的主要工作内容为通过模糊测试等手段对软件、驱动或操作系统进行未知的漏洞发掘工作。此类工程师有可能是对自家产品进行检测,负责的是模拟攻击者对产品的安全性进行检测。也有可能是对第三方厂商进行漏洞挖掘,并且将漏洞提交给厂商或SRC等平台。目的可能是提升企业知名度也可能是满足监管单位对其的要求。
游戏安全工程师
游戏安全工程师
: 游戏安全工程师也称为反外挂工程师,顾名思义就是与游戏外挂做对抗的专业人士。目前大部分的反外挂手段都集中在R0层,也就是使用驱动作为对抗手段。因为R3层的反调试手段已经很难阻止越来越猖獗的外挂作者了。并且现如今的外挂作者也由最初的业余玩家变成了如今的专业人士。导致外挂与反外挂的对抗手段越来越趋近底层,据我所知目前外挂作者中的顶级高手已经在VT层进行反反外挂工作了。利用虚拟化手段重建调试体系。所以游戏安全工程师的任务依然很艰巨。
安全研发工程师
安全研发工程师
: 安全研发工程师主要集中在各大乙方单位,例如负责杀软、恶意代码检测引擎、沙箱、蜜罐、扫描器、调试器等安全工具或安全产品的开发工作的研发人员。都是安全研发工程师。此类工程师一般多为具有安全背景的研发者,区别于普通研发者的地方在于他们更加了解安全,可以实现一切特殊的功能以满足安全产品的需要。
二、网站
三、学习资料
【汇编语言】小甲鱼零基础汇编真正全集1-17章-哔哩哔哩】
【CTF Linux pwn快速入门-哔哩哔哩】
【XMCVE 2020 CTF Pwn入门课程-哔哩哔哩】
(“这是PKU北大的某位学长录制的CTF培训视频,当年我是学这个视频看到门槛的”)
Advanced进阶:
r00tkl-玉涵二进制安全
【二进制安全系列教程-哔哩哔哩】 https://b23.tv/k8B1HlP
(这是哈工大的某位学长录制的视频,看的人很少,估计是被降维打击回炉重造了,个人非常推荐。优点:可以快速上手实战,注意事项:每个视频多刷几遍,漏洞多调试几遍。缺点:因为我太菜了,最开始学的时候好多名词都不懂,起初囫囵吞枣地学,后面才发现是因为我知识量和代码能力没有达到,好多经典书籍都没有啃过,基础不牢,地动山摇,想一步登顶还是难,咱们得一步一步向上攀登。
–2023年04月06日)
CTF-wiki-PWN https://ctf-wiki.org/
About Heap overflow
【堆溢出1-哔哩哔哩】 https://b23.tv/vZzVdsM
giantbranch’Blog http://www.giantbranch.cn/
台湾科技大学
【NTUSTISC - CTF Pwn从入门到进阶-哔哩哔哩】
https://b23.tv/rOZspX2
《 漏洞战争》 腾讯 泉哥
林大夫 看雪ID riusksk
鼎力推荐两个老牌安全培训公司的课程:
- 科锐逆向系列课程(科锐打钱!)
- 看雪学院系列课程(看雪打钱!)
https://media.ccc.de/v/35c3-9657-from_zero_to_zero_day#t=174
四、书籍
基础必学书籍
-
LINUX设备驱动程序 33.9
-
深度探索C++对象模型 49.5
-
Effective C++改善程序与设计的55个具体做法 44.5
-
算法艺术与信息学竞赛 清华大学出版社 58.0
-
算法竞赛入门经典第二版本 入门+训练指导+算法实现+习题解答 243.9
-
C++ Primer Plus(第五版)中文版 人民邮电出版社 72.0
-
Linux程序设计 61.9
-
More Effective C++ 35个改善编程与设计的有效方法 22
-
以下3本总计:271.5
-
UNIX 网络编程 卷1:套接字联网 API
-
UNIX 网络编程 卷2:进程间通信
-
UNIX环境高级编程第3版
-
应用离散数学 人民邮电出版社 37.31
-
ACM-ICPC程序设计系列 组合数学及应用 11.2
算法导论 83.2
黑皮书系列
"个人认为"这几本够了:
-《计算机网络 自顶向下方法》 机械工业出版社 83
-《深入理解计算机系统》 机械工业出版社 69.5
-《汇编语言基于x86处理器》 64.35
Andriod安全
-
Java核心技术 卷1 开发基础 机械工业出版社 100.8
-
Android 移动安全攻防实战 47
-
Wireshark 数据包分析实战 54.4
-
Wireshark 网络分析从入门到实践 52.8
-
Android 软件安全与逆向分析 丰生强 人民邮电出版社
-
Android 软件安全权威指南 丰生强 电子工业出版社
-
安卓Frida逆向与抓包实战+安卓Frida逆向与协议分析
Windows安全
-
Rootkit和Bootkit 现代恶意软件逆向分析和下一代威胁 机械工业出版社 129
-
Windows黑客编程技术详解 76.6
-
汇编/C语言 基础教材 滴水逆向 编程达人 99
-
Windows编程调试技术内幕 人民邮电出版社 89.3
-
深入解析Windows操作系统 人民邮电出版社 90.77
-
Windows核心编程(第5版) Windows via C/C++ 78.3
-
Windows内核编程 谭文 电子工业出版社 108
-
寒江独钓 Windows 内核安全编程 91.0
-
Windows内核编程 机械工业出版社 62.5
-
Windows网络编程基础教程 清华大学出版社 47
二进制PWN(Advanced 进阶)
CTF竞赛权威指南 电子工业出版社 69.5
Linux平台
-
Linux二进制分析 人民邮电出版社
-
深入理解Linux内核架构 79.9
-
深入理解Linux内核 37
-
Linux内核设计与实现 机械工业出版社 44.8
-
Linux内核完全注释 53.72
-
奔跑吧Linux内核卷1 卷2 129.8
-
Linux防火墙 人民邮电出版社 55.3
-
边干边学—Linux内核指导 浙江大学出版社
计算机及系统原理
《编码:隐匿在计算机软硬件背后的语言》 【美】Charles Petzold
- 《深入理解计算机系统》【美】Randal E.Bryant
- 《深入理解Windows操作系统》【美】Russinovich,M.E.;Solomon,D.A.
- 《Linux内核设计与实现》【美】Robert Love
- 《深入理解Android内核设计思想》林学森
- 《Android系统源代码情景分析》罗升阳
- 《深入理解Mac OS X & iOS操作系统》【美】Jonathan Levin
- 《深入理解Linux内核》 【美】DanielP.Bovet
- 《代码揭秘:从C/C++的角度探秘计算机系统》左飞
- 《Android Dalvik虚拟机结构及机制剖析(第1、2卷)》吴艳霞;张国印
- 《Android Internals::Power User’s View》【美】Jonathan Levin,中译本《最强Android书:架构大剖析》
编程开发
Windows
- 《Windows程序设计》【美】Charles Petzold
- 《Windows核心编程》【美】Jeffrey Richter
- 《Windows环境下32位汇编语言程序设计》罗云彬
- 《Windows驱动开发技术详解》张帆
Linux/Unix - 《UNIX环境高级编程》【美】W.Richard Stevens;Stephen A.Rago
- 《Linux程序设计》【美】Neil Matthew;Richard Stones
- 《Linux设备驱动程序》【美】Jonathan Corbet;Alessandro Rubini;Gerg Kroah-Hartman
macOS/iOS - 《iOS编程》【美】Christian Keur;Aaron Hillegass
- 《OS X与iOS内核编程)【澳】Halvorsen,O.H.;Clarke,D
Android - 《第一行代码——Android》郭霖
- 《Android编程权威指南》【美】Brian Hardy;BillPhillips
编程语言
C
- 《C语言程序设计》【美】Brian W.Kernighan;Dennis M.Ritchie
- 《C Primer Plus》【美】Stephen Prata,入门书籍
- 《C和指针》【美】Kenneth A.Reek
- 《C陷阱与缺陷》【美】Andrew Koenig
- 《C专家编程》【美】Peter van der Linden
C++
- 《C++ Primer Plus》【美】Stephen Prata,入门书籍
- 《C++ Primer》【美】Stanley B.Lippman;Josée Lajoie;Barbara E.Moo,进阶书籍
ASM
- 《Intel汇编语言程序设计》【美】Kip Irvine
- 《Intel开发手册》
- 《汇编语言(第3版)》王爽
- 《x86汇编语言:从实模式到保护模式》李忠
Java
- 《Java核心技术》【美】Cay S.Horstmann;Gary Cornell,入门书籍
- 《Java 编程思想》【美】Bruce eckel,进阶书籍
JavaScript
- 《JavaScript DOM编程艺术》【美】Jeremy Keith;【加】Jeffrey Sambells
- 《JavaScript高级程序设计》【美】Zakas.Bicholas C.
- 《Vue.js项目开发实战》张帆
Python
- 《Python核心编程(第2版)》【美】Wesley J·Chun
Shell
- 《Linux Shell脚本攻略》【印】Sarath Lakshman
调试技术
- 《软件调试》张银奎
- 《Debug Hacks》【日】吉冈弘隆;大和一洋;大岩尚宏;安部东洋;吉田俊辅
- 《格蠹汇编:软件调试案例锦集》张银奎
数据结构与算法
- 《数据结构与算法分析——C语言描述》【美】Mark Allen Weiss
- 《算法导论》【美】Thomas H.Cormen;Chales E.Leiserson;Ronald l.Rivest
- 《我的第一本算法书》【日】宫崎修一;石田保辉,入门书籍,无代码进行图解
- 《算法图解:像小说一样有趣的算法入门书》【美】Aditya Bhargava
编译原理
- 《编译系统透视:图解编译原理》新设计团队,入门书籍
- 《编译原理》(龙书)【美】Alfered V.Aho;Monica S.Lam;Ravi Sehi;Jeffrey D.Ullmam
- 《编译与反编译技术实战》庞建民
其他
- 《编程高手箴言》梁肇新
- 《代码整洁之道》【美】Robert C.Martin
- 《代码大全》【美】Steve McConnell
- 《重构:改善既有代码的设计》【美】Martin Fowler
网络技术
- 《TCP/IP详解(卷1:协议)》【美】Kevin R.fall;W.Richard Stevens
- 《Wireshark数据包分析实战》【美】Chris Sanders
安全技术 安全开发
- 《天书夜读:从汇编语言到Windows内核编程》谭文;邵坚磊
- 《Rootkit:系统灰色地带的潜伏者》【美】Bill Blunden
- 《Rootkits——Windows内核的安全防护》【美】Gerg Hoglund;James Butler
- 《BSD ROOTKIT设计——内核黑客指引书》【美】Joseph Kong
- 《寒江独钓:Windows内核安全编程》谭文;杨潇;邵坚磊
逆向工程
《加密与解密》段钢
- 《恶意软件分析诀窍与工具箱——对抗“流氓”软件的技术与利器》【美】Michael Hale Ligh;Steven Adair
- 《C++反汇编与逆向分析技术揭秘》钱林松;赵海旭
- 《IDA权威指南》【美】Chris Eagle
- 《逆向工程权威指南》【乌克兰】Dennis Yurichev,多平台入门大全
- 《Android软件安全与逆向分析》丰生强
- 《macOS软件安全与逆向分析》丰生强
- 《iOS应用逆向工程(第2版)》沙梓社;吴航
Web安全
- 《黑客攻防技术宝典:Web实战篇》【美】Marcus Pinto,Dafydd Stuttard
- 《白帽子讲Web安全》吴翰清
- 《Web安全测试》【美】Paco Hope;Ben Waltber
- 《Web前端黑客技术揭秘》钟晨鸣;徐少培
- 《精通脚本黑客》曾云好
软件/系统安全
- 《0day安全:软件漏洞分析技术(第2版)》王清,入门书籍
- 《漏洞战争:软件漏洞分析精要》林桠泉,进阶书籍
- 《捉虫日记》【德】Tobias Klein,进阶书籍
- 《黑客防线2009缓冲区溢出攻击与防范专辑》
- 《内核漏洞的利用与防范》【美】Enrico Perla;Massimiliano Oldani
- 《Fuzzing for Software Security Testing and Quality Assurance(第2版)》【美】Charlie Miller,博文视点翻译中
- 《iOS Hackers’s Handbook》【美】Charlie Miller,不推荐中文版
- 《The Mac Hacker’s Handbook》【美】Charlie Miller
- 《Android安全攻防权威指南》【美】Joshua J.Drake;【西】Pau Oliva Fora;【美】Collin Mulliner
- 《The Art of Softwar Security Assessment:Identifying and Preventing Software Vulnerabilities》【美】Mark Dowd
- 《Android Security Cookbook》【美】Keith Makan; Scott Alexander-Bown,中译本《Android安全攻防实战》
- 《模糊测试-强制性安全漏洞挖掘》【美】Michael Mutton
- 《Exploit编写系列教程》【美】Corelan Team
- 《MacOS and iOS Internals,Volume Ⅲ: Security & Insecurity》【美】Jonathan Levin,博文视点翻译中
- 《灰帽黑客:正义黑客的道德规范、渗透测试、攻击方法和漏洞分析技术》【美】Allen Harper;Shon harris
- 《威胁建模:设计和交付更安全的软件》【美】Adam Shostack
无线电安全
- 《无线电安全攻防大揭秘》杨卿;黄琳
硬件安全
- 《硬件安全攻防大揭秘》简云定,杨卿
汽车安全
- 《智能汽车安全攻防大揭秘》李均;杨卿
- 《汽车黑客大曝光》【美】Craig Smith
产品
- 《人人都是产品经理》苏杰
运营
- 《运营之光2.0:我的互联网运营方法论与自白》黄有璨
设计
- 《写给大家看的设计书》【美】Robin Williams
- 《听故事,学PPT设计》杨雪
运维
- 《Docker技术入门与实战》杨保华;戴王剑;曹亚仑
- 《鸟哥的Linux私房菜》鸟哥
软技能
- 《软技能:代码之外的生存指南》【美】John Sonmez
- 《程序员健康指南》【美】JoeKutner
- 《影响力》【美】Robert B.Cialdini
- 《穷爸爸富爸爸》【美】Robert Toru Kiyosaki
- 《横向领导力》【美】Roger Fisher;Alan Sharpe
- 《职业情商》张新越
- 《程序员的成长课》安晓辉;周鹏
- 《高效演讲:斯坦福最受欢迎的沟通课》【美】Peter Meyers;Shann Nix
- 《程序员的英语》【韩】朴栽浒;李海永
- 《思考,快与慢》【美】丹尼尔·卡尼曼
- 《少有人走的路》【美】斯科特·派克
- 《异类:不一样的成功启示录》【加】 马尔科姆·格拉德威尔
- 《见识》吴军
- 《英语写作手册:风格的要素》【美】William Strunk
- 《非暴力沟通》【美】马歇尔·卢森堡
- 《风格感觉:21世纪写作指南》【美】史蒂芬·平克
- 《浪潮之巅》(上下册)吴军
- 《一本小小的蓝色逻辑书》【加】布兰登·罗伊尔
- 《精进:如何成为一个很厉害的人》采铜