【0day安全-软件漏洞分析技术】笔记
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),分别存放不同资源。
.text
:代码区 由编译器产生,存放二进制机器代码(反汇编和调试对象)
.data
数据区:初始化数据块,如宏定义、全局变量、静态变量
.idata
使用的动态链接库等外来函数与文件信息
.rsrc
存放程序的资源,如图标、菜单等
还有.reloc
/.edata
/.tls
/ .rdata
等
C++的编译指示可以自定义节名
如果可执行文件进行了加壳处理,PE的节信息就会变得奇怪。
1.2.2 虚拟内存
Windows的内存分为:物理内存(核心态ring0)和虚拟内存(用户态ring3)
内存管理器分配进程一块“虚拟地址”,进程使用内存时,将虚拟地址映射物理内存地址。
1.2.3 PE文件和虚拟内存之间的映射
调试漏洞时,经常需要两种操作
- 静态反汇编工具看到PE文件中指令的位置(文件偏移),要知道其在内存中所处的位置(虚拟内存地址VA)。
- 调试时看到某条指令的地址是虚拟内存地址,要回到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 必备工具
- ollydbg:反汇编分析,16进制编辑,动态调试,GUI界面。动态分析
- softICE:工作在ring0级,可调试驱动等内核对象
- windbg:内核安全和调试
- IDA PRO:静态反汇编
- 二进制编辑器 ultraedit
crack例子爆破分析(跳过密码验证)
- if判断决定程序是否跳出循环(正确跳出,错误循环请求密码)
- 找到if对应二进制代码,修改
- 用IDA解析exe文件,自动识别出main函数
- ollydbg动态调试,修改内存中机器指令,
- ultraedit修改文件中指令
【0day安全-软件漏洞分析技术】笔记相关推荐
- 0day安全:软件漏洞分析技术——系统内核漏洞
本文是阅读<0day安全:软件漏洞分析技术>后的笔记. 内核漏洞主要的作用包括:远程任意代码执行,本地权限提升,远程拒绝服务攻击,本地拒绝服务攻击.从漏洞的利用来看,远程拒绝服务 ...
- 0day安全:软件漏洞分析技术(第2版)
0day安全:软件漏洞分析技术(第2版) 基本信息 作者:王清 张东辉 周浩 王继刚 赵双 丛书名:安全技术大系 出版社:电子工业出版社 ISBN:9787121133961 上架时间 ...
- 《0day安全-软件漏洞分析技术》实验笔记2
实验 3.4 通用shellcode 工具 Windows XP SP3 Visual C++ 6.0 OD IDA 源代码 见随书代码,参考:https://github.com/jas502n/0 ...
- 【逆向】《0day安全-软件漏洞分析技术》实验笔记2
实验 3.4 通用shellcode 工具 Windows XP SP3 Visual C++ 6.0 OD IDA 源代码 见随书代码,参考:https://github.com/jas502n/0 ...
- 书评第003篇:《0day安全:软件漏洞分析技术(第2版)》
本书基本信息 丛书名:安全技术大系 作者:王清(主编),张东辉.周浩.王继刚.赵双(编著) 出版社:电子工业出版社 出版时间:2011-6-1 ISBN:9787121133961 版次:1 页数:7 ...
- 《0day安全:软件漏洞分析技术第二版》
简单说来,这次再版的原因有二: 首先,国人深知与时俱进的道理,技术上面更是如此.随着windows平台保护技术的不断改进,win7的广泛使用,第一版中所述的很多方法已有较大局 限.为此我们逐一搜集了近 ...
- 0day安全:软件漏洞分析技术(第2版)pdf
下载地址:网盘下载 内容简介 · · · · · · 本书分为4篇17章,系统全面地介绍了Windows平台缓冲区溢出漏洞的分析.检测与防护.第一篇为常用工具和基础知识的介绍:第二篇从攻击者的视角出 ...
- 《0day安全:软件漏洞分析技术》学习笔记·1(需要补充节部分)
文章目录 基础知识 漏洞概述 漏洞挖掘 漏洞分析 漏洞利用 漏洞在安全中的应用 二进制文件概述 PE文件格式 虚拟内存 PE文件与虚拟内存之间的映射 基础知识 漏洞概述 通常把这类能够引起软件做一 ...
- 软件漏洞分析技术(一)
目录 1.1 关于漏洞 1.1.1 bug与漏洞 1.1.2 几个经典的安全问题 1.1.3 漏洞挖掘.分析及利用 1.1.4 漏洞的公布与0 day响应 1.2 二进制文件概述 1.2.1 PE文件 ...
- 《0day安全:软件漏洞分析技术》的一点总结
评价 首先评价一下这本书吧:(先抑后扬吧) 有些漏洞是win2000的,实在是太老了,难以进行实践,但是介绍一下也是很好的,但是不能实践理解得不深刻.[第一版是08年出版的,第二版是2011年,我手 ...
最新文章
- 三年程序员之后的思考
- php剪切文件,C/C++文件剪切复制删除
- kafka入门之broker--日志存储设计
- 小白也能看懂——使用dev-c++建立工程(多个文件一同编译连接)并运行
- 小程序外接web-view坑------alert显示域名
- 数据的gzip压缩解压缩_使用GZIP和压缩数据
- Linux基础之命令练习Day2-useradd(mod,del),groupadd(mod,del),chmod,chown,
- 什么是机器学习?有哪些分类?到底有什么用?终于有人讲明白了
- 2016年4月20日作业
- nginx能不能获取到vue项目#后面的内容
- Airflow 中文文档:保护连接
- Python datetime time
- 第218天:Angular---模块和控制器
- jupyter修改默认目录
- python查看类的属性和方法_python—类的属性和方法总结
- datatable的数据进行组内排序_Spark实现分组Top-k排序的四种方案(scala语言)
- 不同品牌机中的“Fn”按钮功能定位汇总
- 没数据也能玩转BERT!无监督语义匹配实战
- 办公软件在多屏宽屏上的应用设想
- LSI阵列卡在线扩容