接触了不少 Web 安全圈的人,很多这类朋友想搞二进制,整天说二进制很难。作为接
触二进制安全 10 多年的老菜狗,说实话并没有感觉二进制有多难,只是知识相对于 web 安
全比较多罢了。web 安全需要 2 个月就可以入门,可能二进制需要 1 年吧。
1 二进制漏洞研究的发展方向
大致总结下,大概有 5 个发展方向吧。分别如下:
大哥:理论研究派
主要任务为攻关业内技术难点,需要较强的理论知识和数学思维功底。
成果一般以论文,工具的形式。
二哥:漏洞挖掘实战派
和大哥相比,老二更注重特定的某种漏洞,他们主要工作应该是研究某协议,文件格式的细
节,或者是去逆向某软件代码的实现方式,以及协议规范。
对各种 fuzz 工具,审计工具熟能生巧。甚至拥有在开源 Fuzz 工具上做优化的能力。
该职位主要是漏洞挖掘。
三哥:漏洞分析派
比起大哥二哥,三弟并不对漏洞进行挖掘,而是针对已经出现的漏洞信息,或者 POC 样本
进行深入分析,研究漏洞的形成机理等。应急处理等职位往往对此技能要求较高。
四哥:漏洞利用派
该派别深入了解系统的各种安全防御的突破与利用技巧,然后利用三哥研究出的漏洞信息,
来写出漏洞的可利用程序。该职位也不少啊。比如红队蓝队就应该是这种吧。五哥:漏洞识别检测派
五哥主要根据已经出现的漏洞信息对漏洞进行检测。该职位主要工作是安全产品漏洞库的研
发工作。做漏洞检测特征的研发。可以理解为漏洞检测工具研发的核心人才。
五项技能就像一个五维向量,往往为组合形式存在。较多组合方式。职位不分贵贱,你属于
哪派?
2 二进制漏洞研究的快速入门
1 基础知识
目前大部分二进制安全还是基于 windows 平台的。用户量大,资料多,软件多,入门选手
必备。
C 语言程序设计
Windows 程序设计
汇编语言程序设计
2 技巧知识
基础知识有了,就可以学一些技巧了。如:
软件调试技巧
如 OllyDBG,WinDbg,熟练他们使用,了解调试器的基本原理。如果精力够,强烈建议看一
下调试器的源码。
另外多多学习调试技巧,这个是需要日积月累的 ,不能急,一开始自然很慢,慢慢就好了。
其实动态调试器都懂了,那么静态反汇编工具,基本也就 OK 了。
WINDOWS PE 结构
PE 还是很重要的,尤其是再研究一些加壳脱壳,恶意样本分析的时候,必不可少。
常用工具
常用工具的了解和使用。比如 wireshark,Winhex,VMWARE,PEID 等等。
3 选择方向
个人感觉,到这里你算入门二进制了,该选择方向了。
如果是分析利用,那么就多看看网上的那些分析文章,漏洞利用技巧,各种保护的突破技巧
等等。其实没多难,很繁琐,花时间基本都可以做好。
如果是漏洞挖掘,那就熟悉下目前最流行的漏洞挖掘工具AFL和PeachFuzzer. 上手做就行了。如何选择一个靠谱的目标,这就看经验了,
总结了以下仅供参考:http://www.asm64.com/file.html
最后附一篇二进制漏洞挖掘指南,欢迎参考
https://mp.weixin.qq.com/s/LGfmDvEdYEZL-x-ciFrlNg