软件漏洞分析技术(1)---一些基础知识
来源:互联网 发布:js设计模式是什么 编辑:程序博客网 时间:2024/05/20 00:39
一.pe文件格式:
.text :由编译器产生,存放着二进制的机器代码,也是我们反汇编和调试的对象
.data :初始化的数据块,如宏定义,全局变量,静态变量等
.idata :可执行文件所使用的动态链接库等外来函数与文件的信息
.rsrc :存放程序的资源,如图标,菜单等
二. 虚拟内存
内存管理器将虚拟内存和物理内存关联起来进行管理,虚拟内存为全地址空间,通过映射到物理内存实现。
三.pe文件与虚拟内存之间的映射
1.调试时需要的操作:
(1)静态反汇编工具看到的pe文件中某条指令的位置是相对于磁盘文件而言的,即所谓的文件偏移,我们可能还需要知道这条指令在内存中所处的位置,即虚拟内存地址(VA)。
(2)调试时看到的某条指令的地址是虚拟内存地址,我们也经常需要回到pe文件找到这条指令对应的机器码。
2.pe文件地址和虚拟内存的映射关系
(1)文件偏移地址:数据在pe文件中的地址叫文件偏移地址,个人认为叫做文件地址更加准确。这是文件在磁盘上存放时相对于文件开头的偏移。
(2)装载地址:pe装入内存时的基地址。默认情况下,exe文件在内存中的基地址是0x00400000,DLL文件是0x10000000。这些位置可以通过修改编译选项修改。
(3)虚拟内存地址:pe文件中的指令被装入内存后的地址。
(4)相对虚拟地址:相对虚拟地址是内存地址相对于映射基址的偏移量。
关系为:虚拟内存地址 = 装载地址 + 相对虚拟地址
3.pe中的存放
(1)pe文件中的数据按照磁盘数据标准存放,以0x200字节为基本单位进行组织。当一个数据节不足0x200时,不足的地方将被0x00填充;当一个数据节超过0x200时,下一个0x200块将分配给这个节使用。因此pe数据节的大小永远是0x200的整数倍。
(2)当代码装入内存后,将按照内存数据标准存放,并以0x1000字节为基本党委进行组织。类似的,不足将被补全,超出则分配下一个0x1000为其所用。因此内存中的节总是0x1000的整数倍。
关系为:文件偏移地址 = 虚拟内存地址 - 装载基址 - 节偏移 = 相对虚拟地址 - 节偏移
- 软件漏洞分析技术(1)---一些基础知识
- 软件漏洞分析技术
- 《ODAY安全:软件漏洞分析技术》学习心得
- 《0day:软件漏洞分析技术》读书笔记
- 0day安全:软件漏洞分析技术 学习分析记录
- 漏洞分析挖掘基础知识
- 《0day安全:软件漏洞分析技术第二版》
- 《0day安全:软件漏洞分析技术》的一点总结
- 软件漏洞分析入门
- 软件漏洞分析入门
- 0day安全:软件漏洞分析技术(第2版)
- 《ODAY安全:软件漏洞分析技术》学习心得-----shellcode的一点小小的思考
- 0day安全-软件漏洞分析技术(第一版)--6_4_heap_PEB 源码改造
- 《ODAY安全:软件漏洞分析技术》学习心得-----shellcode的一点小小的思考
- 书评第003篇:《0day安全:软件漏洞分析技术(第2版)》
- 0day安全软件漏洞分析技术读书笔记-windows2000的堆的工作方式(上)
- 0day安全软件漏洞分析技术读书笔记-windows2000的堆的工作方式(下)
- 《0day安全:软件漏洞分析技术》学习笔记-第五章堆溢出利用
- 无法对视图创建聚集索引
- proxool详细配置
- 最大流算法
- UBUNTU安装PHP
- multibin
- 软件漏洞分析技术(1)---一些基础知识
- C#强弱类型
- 提升代码权限
- DeveloperExpress 中时间控件TcxDateEdit星期显示错误的解决办法
- android 打开浏览器 以及其他一些网友总结的intent大全
- VC 判断CString字符串中各位是数字,大小写字母,符号,汉字
- 黑马程序员基础-----基础加强
- 自己整理的一些warning(编译器是mips-linux-gcc)(
- 删除select下option选项