基础知识
bug & exploit
什么是bug?
程序错误,是程序设计中的术语,是指在软件运行中因为程序本身有错误而造成的功能不正常、死机、数据丢失、非正常中断等现象。
什么是漏洞?
漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。
漏洞和bug的区别:
漏洞专指安全方面的问题,Bug则不限于安全方面。漏洞通常不影响程序正常功能,但是 bug 会影响程序正常功能。
漏洞的挖掘,分析和利用
“灰”盒测试— fuzz :Fuzzing技术总结(Brief Surveys on Fuzz Testing)
通过 poc 代码重现漏洞发现的场景,同时使调试器观察漏洞的细节,或者利用工具找到漏洞出发点
漏洞公布
两个机构
CVE 和 CERT
二进制文件概述
PE 文件格式
*.exe *.dll
典型 PE 文件中包含的节如下:
.text 编译器产生,存放二进制机器代码,反汇编和调试的对象
.data 初始化的数据块,如宏定义、全局变量、静态变量等。
.idata exe 文件使用的动态链接库等外来function and file information.
.rsrc 存放程序资源
还可能出现的