FileBuffer转ImageBuffer【滴水逆向三期43笔记】

简介: FileBuffer转ImageBuffer【滴水逆向三期43笔记】

一.FileBufffer与ImageBuffer的区别

我们知道从文件直接读取数据是将文件在硬盘中直接复制过来,计算机是不能直接执行的,如果要让程序执行,必须要有一个“拉伸”的过程,也就是课程中所说的ImageBuffer,但是ImageBuffer是不能直接执行的,但是它已经具备了执行的条件,再执行之前,要将ImageBuffer放入到程序独立的4GB运行空间中,这里给出FileBuffer与ImageBuffer的图:

二.SizeOfRawData一定大于Misc.VirtualSize吗?

我们知道在区块中,VirtualSize存储的是节没有对齐前的实际大小。SizeOfRawData是该节在磁盘文件中对齐后的大小,但是SizeOfRawData一定大于VirtualSize吗?答案是否定的,我们在反汇编中不难发现:在声明了变量后,如果没有进行初始化,那么在内存中是不会有任何操作的,只是告诉了编译器这个变量,那我们不妨设想一下:如果在该节中有许多未初始化的变量,计算机会分配内存吗?当让不会,如果某一个节中存在已经被定义过但还未初始化的数据,那么文件在硬盘上不会显式的留出空间SizeOfRawData中不会算上未初始化数据的空间;但是此节的Misc.VirtualSize为加载到内存中时节的未对齐的大小,那么这个值就需要算上给未初始化留出来空间后的整个节的大小,故在内存中的节本身的总大小可能会大于硬盘中的此节文件对齐后的大小。

三.RVA转FOA

在ImageBuffer中我们已知了一个数据的地址,成为RVA那么我们如何在ImageBuffer中找到该数据的地址(FOA)呢?

这里给出简要思路:

1.计算该数据对ImageBase的偏移大小

2.计算该数据在第几个节(通过循环节表的PointToRaw和SizeOfRawData)

3.计算该数据相对该节的PointToRawData偏移量

4.通过第三步计算出来的偏移量在磁盘文件中找到该数据。

这一节课程没有很多的知识点,但是很重要,主要体现在课后作业中:

1.写一个程序,实现从FileBuffer到ImageBuffer再从ImageBuffer到FileBuffer

2.写一个程序,实现从RVA转化为FOA

在本专栏中下一章我会将写出的程序源码分享给大家

文章中可能有许多不准确或者是我理解不到位的地方,非常希望大家指出,我会虚心学习,希望我们共同进步!

相关文章
|
1月前
|
存储 算法 安全
2024重生之回溯数据结构与算法系列学习之串(12)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丟脸好嘛?】
数据结构与算法系列学习之串的定义和基本操作、串的储存结构、基本操作的实现、朴素模式匹配算法、KMP算法等代码举例及图解说明;【含常见的报错问题及其对应的解决方法】你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
2024重生之回溯数据结构与算法系列学习之串(12)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丟脸好嘛?】
|
1月前
|
算法 安全 搜索推荐
2024重生之回溯数据结构与算法系列学习(8)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第2.3章之IKUN和I原达人之数据结构与算法系列学习x单双链表精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
1月前
|
存储 算法 安全
2024重生之回溯数据结构与算法系列学习之顺序表【无论是王道考研人还真爱粉都能包会的;不然别给我家鸽鸽丢脸好嘛?】
顺序表的定义和基本操作之插入;删除;按值查找;按位查找等具体详解步骤以及举例说明
|
1月前
|
存储 算法 安全
2024重生之回溯数据结构与算法系列学习【无论是王道考研人还真爱粉都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构的基本概念;算法的基本概念、特性以及时间复杂度、空间复杂度等举例说明;【含常见的报错问题及其对应的解决方法】
|
1月前
|
存储 人工智能 算法
2024重生之回溯数据结构与算法系列学习(7)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
IKU达人数据结构与算法系列学习之队列的基本概念、如何判断队列已满/已空、队列的链式存储结构[头的出入队]、双端队列、中缀、后缀、前缀表达式、特殊矩阵和一二维数组的压缩储存等具体操作详解步骤;举例说明、注意点及常见报错问题所对应的解决方法 你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
1月前
|
存储 算法 安全
2024重生之回溯数据结构与算法系列学习(11)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丟脸好嘛?】
数据结构王道第3章之IKUN和I原达人之数据结构与算法系列学习栈与队列精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊-除了会黑我家鸽鸽还会干嘛?!!!
|
1月前
|
算法 安全 NoSQL
2024重生之回溯数据结构与算法系列学习之顺序表习题精讲【无论是王道考研人还真爱粉都能包会的;不然别给我家鸽鸽丢脸好嘛?】
顺序表的定义和基本操作之插入;删除;按值查找;按位查找习题精讲等具体详解步骤以及举例说明
|
1月前
|
算法 安全 NoSQL
2024重生之回溯数据结构与算法系列学习之栈和队列精题汇总(10)【无论是王道考研人还是IKUN都能包会的;不然别给我家鸽鸽丢脸好嘛?】
数据结构王道第3章之IKUN和I原达人之数据结构与算法系列学习栈与队列精题详解、数据结构、C++、排序算法、java、动态规划你个小黑子;这都学不会;能不能不要给我家鸽鸽丢脸啊~除了会黑我家鸽鸽还会干嘛?!!!
|
存储 编译器
IAT表入门简析【滴水逆向三期52笔记】
IAT表入门简析【滴水逆向三期52笔记】
FileBfufer转ImageBuffer【滴水逆向三期43作业源码】
FileBfufer转ImageBuffer【滴水逆向三期43作业源码】