【0day安全-软件漏洞分析技术】笔记

C1 基础知识

1.1.3 漏洞分析和利用

漏洞挖掘:实际上是高级测试QA。工程界常用fuzz;学术界用静态分析。
漏洞分析:找到POC(proof of concept)代码,无法获得POC时,利用厂商提供的漏洞描述,使用补丁比较器,比较patch前后的修改,再利用反汇编工具进行逆向分析。
漏洞利用:缓冲区溢出;内存漏洞(堆栈溢出),web漏洞(脚本注入)

1.1.4 漏洞公布

  1. CVE:cve.mitre.org
  2. cert:cert.org
  3. 微软安全中心 每月 第二周 的 周二发布补丁

1.2 二进制文件

1.2.1 PE文件格式

PE(portable executable)是win32可执行文件的数据格式。如exe,dll。
PE把可执行文件分成多个数据节(section),分别存放不同资源。
:代码区 由编译器产生,存放二进制机器代码(反汇编和调试对象)
数据区:初始化数据块,如宏定义、全局变量、静态变量
使用的动态链接库等外来函数与文件信息
存放程序的资源,如图标、菜单等
还有 / // 等
C++的编译指示可以自定义节名
如果可执行文件进行了加壳处理,PE的节信息就会变得奇怪。

1.2.2 虚拟内存

Windows的内存分为:物理内存(核心态ring0)和虚拟内存(用户态ring3)

【0day安全-软件漏洞分析技术】笔记

【0day安全-软件漏洞分析技术】笔记
文件偏移地址 = 虚拟内存地址 – 装载基址 – 节偏移
= RVA – 节偏移
可用 工具查看节信息

1.3 必备工具

  1. ollydbg:反汇编分析,16进制编辑,动态调试,GUI界面。动态分析
  2. softICE:工作在ring0级,可调试驱动等内核对象
  3. windbg:内核安全和调试
  4. IDA PRO:静态反汇编
  5. 二进制编辑器 ultraedit

crack例子爆破分析(跳过密码验证)

  1. if判断决定程序是否跳出循环(正确跳出,错误循环请求密码)
  2. 找到if对应二进制代码,修改
  3. 用IDA解析exe文件,自动识别出main函数
  4. ollydbg动态调试,修改内存中机器指令,
  5. ultraedit修改文件中指令

来源:岁月漫长_

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年2月23日
下一篇 2022年2月23日

相关推荐