C1 基础知识
1.1.3 漏洞分析和利用
漏洞挖掘:实际上是高级测试QA。工程界常用fuzz;学术界用静态分析。
漏洞分析:找到POC(proof of concept)代码,无法获得POC时,利用厂商提供的漏洞描述,使用补丁比较器,比较patch前后的修改,再利用反汇编工具进行逆向分析。
漏洞利用:缓冲区溢出;内存漏洞(堆栈溢出),web漏洞(脚本注入)
1.1.4 漏洞公布
- CVE:cve.mitre.org
- cert:cert.org
- 微软安全中心 每月 第二周 的 周二发布补丁
1.2 二进制文件
1.2.1 PE文件格式
PE(portable executable)是win32可执行文件的数据格式。如exe,dll。
PE把可执行文件分成多个数据节(section),分别存放不同资源。
:代码区 由编译器产生,存放二进制机器代码(反汇编和调试对象)
数据区:初始化数据块,如宏定义、全局变量、静态变量
使用的动态链接库等外来函数与文件信息
存放程序的资源,如图标、菜单等
还有 / // 等
C++的编译指示可以自定义节名
如果可执行文件进行了加壳处理,PE的节信息就会变得奇怪。
1.2.2 虚拟内存
Windows的内存分为:物理内存(核心态ring0)和虚拟内存(用户态ring3)
1.3 必备工具
- softICE:工作在ring0级,可调试驱动等内核对象
- windbg:内核安全和调试
- IDA PRO:静态反汇编
crack例子爆破分析(跳过密码验证)
- if判断决定程序是否跳出循环(正确跳出,错误循环请求密码)
- 找到if对应二进制代码,修改
- 用IDA解析exe文件,自动识别出main函数
- ollydbg动态调试,修改内存中机器指令,
- ultraedit修改文件中指令
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!