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),分别存放不同资源。
.text :代码区 由编译器产生,存放二进制机器代码(反汇编和调试对象)
.data 数据区:初始化数据块,如宏定义、全局变量、静态变量
.idata 使用的动态链接库等外来函数与文件信息
.rsrc存放程序的资源,如图标、菜单等
还有.reloc /.edata /.tls/ .rdata
C++的编译指示可以自定义节名
如果可执行文件进行了加壳处理,PE的节信息就会变得奇怪。

1.2.2 虚拟内存

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

内存管理器分配进程一块“虚拟地址”,进程使用内存时,将虚拟地址映射物理内存地址。

1.2.3 PE文件和虚拟内存之间的映射

调试漏洞时,经常需要两种操作

  1. 静态反汇编工具看到PE文件中指令的位置(文件偏移),要知道其在内存中所处的位置(虚拟内存地址VA)。
  2. 调试时看到某条指令的地址是虚拟内存地址,要回到PE文件中找到指令对应的机器码。

所以需要弄清PE文件地址和虚拟内存地址之间的映射关系。
1)文件偏移地址(file offset):数据在PE文件中的地址,相对于文件开头的偏移。按照磁盘数据标准,以0×200字节为基本单位,不足被0×00填充;一个数据节超过0×200时,分配下一个0×200块。PE数据节大小永远是0×200的整数倍。
2)装载基址(image base):PE装入内存中的基地址。默认exe在内存中的基地址是0×00400000,DLL是0×10000000,这些位置可通过编译选项更改。按照内存数据标准,大小永远是0×1000字节的整数倍。
3)虚拟内存地址(virtual address,VA):PE文件中的指令被装入内存后的地址
4)相对虚拟地址(relative virtual address,RVA):内存地址相对于映射基址的偏移量
后三者关系

VA = image base + RVA


这种由存储单位差异引起的节基址差称为节偏移(转换的地址位于第几个节内),上例中

文件偏移地址 = 虚拟内存地址 - 装载基址 - 节偏移
= RVA - 节偏移
可用 lordPE 工具查看节信息

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修改文件中指令

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

  1. 0day安全:软件漏洞分析技术——系统内核漏洞

    本文是阅读<0day安全:软件漏洞分析技术>后的笔记.      内核漏洞主要的作用包括:远程任意代码执行,本地权限提升,远程拒绝服务攻击,本地拒绝服务攻击.从漏洞的利用来看,远程拒绝服务 ...

  2. 0day安全:软件漏洞分析技术(第2版)

    0day安全:软件漏洞分析技术(第2版) 基本信息 作者:王清   张东辉   周浩   王继刚   赵双 丛书名:安全技术大系 出版社:电子工业出版社 ISBN:9787121133961 上架时间 ...

  3. 《0day安全-软件漏洞分析技术》实验笔记2

    实验 3.4 通用shellcode 工具 Windows XP SP3 Visual C++ 6.0 OD IDA 源代码 见随书代码,参考:https://github.com/jas502n/0 ...

  4. 【逆向】《0day安全-软件漏洞分析技术》实验笔记2

    实验 3.4 通用shellcode 工具 Windows XP SP3 Visual C++ 6.0 OD IDA 源代码 见随书代码,参考:https://github.com/jas502n/0 ...

  5. 书评第003篇:《0day安全:软件漏洞分析技术(第2版)》

    本书基本信息 丛书名:安全技术大系 作者:王清(主编),张东辉.周浩.王继刚.赵双(编著) 出版社:电子工业出版社 出版时间:2011-6-1 ISBN:9787121133961 版次:1 页数:7 ...

  6. 《0day安全:软件漏洞分析技术第二版》

    简单说来,这次再版的原因有二: 首先,国人深知与时俱进的道理,技术上面更是如此.随着windows平台保护技术的不断改进,win7的广泛使用,第一版中所述的很多方法已有较大局 限.为此我们逐一搜集了近 ...

  7. 0day安全:软件漏洞分析技术(第2版)pdf

    下载地址:网盘下载 内容简介  · · · · · · 本书分为4篇17章,系统全面地介绍了Windows平台缓冲区溢出漏洞的分析.检测与防护.第一篇为常用工具和基础知识的介绍:第二篇从攻击者的视角出 ...

  8. 《0day安全:软件漏洞分析技术》学习笔记·1(需要补充节部分)

    文章目录 基础知识 漏洞概述 漏洞挖掘 漏洞分析 漏洞利用 漏洞在安全中的应用 二进制文件概述 PE文件格式 虚拟内存 PE文件与虚拟内存之间的映射 基础知识 漏洞概述   通常把这类能够引起软件做一 ...

  9. 软件漏洞分析技术(一)

    目录 1.1 关于漏洞 1.1.1 bug与漏洞 1.1.2 几个经典的安全问题 1.1.3 漏洞挖掘.分析及利用 1.1.4 漏洞的公布与0 day响应 1.2 二进制文件概述 1.2.1 PE文件 ...

  10. 《0day安全:软件漏洞分析技术》的一点总结

    评价 首先评价一下这本书吧:(先抑后扬吧)  有些漏洞是win2000的,实在是太老了,难以进行实践,但是介绍一下也是很好的,但是不能实践理解得不深刻.[第一版是08年出版的,第二版是2011年,我手 ...

最新文章

  1. 三年程序员之后的思考
  2. php剪切文件,C/C++文件剪切复制删除
  3. kafka入门之broker--日志存储设计
  4. 小白也能看懂——使用dev-c++建立工程(多个文件一同编译连接)并运行
  5. 小程序外接web-view坑------alert显示域名
  6. 数据的gzip压缩解压缩_使用GZIP和压缩数据
  7. Linux基础之命令练习Day2-useradd(mod,del),groupadd(mod,del),chmod,chown,
  8. 什么是机器学习?有哪些分类?到底有什么用?终于有人讲明白了
  9. 2016年4月20日作业
  10. nginx能不能获取到vue项目#后面的内容
  11. Airflow 中文文档:保护连接
  12. Python datetime time
  13. 第218天:Angular---模块和控制器
  14. jupyter修改默认目录
  15. python查看类的属性和方法_python—类的属性和方法总结
  16. datatable的数据进行组内排序_Spark实现分组Top-k排序的四种方案(scala语言)
  17. 不同品牌机中的“Fn”按钮功能定位汇总
  18. 没数据也能玩转BERT!无监督语义匹配实战
  19. 办公软件在多屏宽屏上的应用设想
  20. LSI阵列卡在线扩容

热门文章

  1. SystemGenerator:数字信号处理之开发准备、流程预演
  2. 10、共射放大电路的设计
  3. jeecgSpringboot的前端Vue项目出现npm 配置错误相关问题
  4. 【非功能性测试】软件测试之非功能性测试有哪些?
  5. 阿里粗排模型-cold
  6. 2023年最新微信记账小程序源码+简约大气
  7. 轻量级录屏软件 Captura 使用 ffmpeg 调用 NVDIA nvenc 录制小体积网课视频
  8. box-sizing失效情况
  9. oracle同义词表不存在,Oracle同义词的使用
  10. 二元函数偏导数的几何意义