关于罗云彬老师《windows32位汇编程序设计》一书中内存地址与磁盘文件地址转换的疑问??
时间:2010-11-20
来源:互联网
在《windows32位汇编程序设计》一书中的第17章的634有这么一段话:
1、循环扫描节表并得到每个节在内存中的起始RVA(根据VirtualAddress字段),并根据节的大小(SizeOfRawData字段)算出节的结束RVA,最后比较判断目标RVA是否落在某个节之内
在这里节的结束RVA怎么是用“VirtualAddress字段与SizeOfRawData字段”来得来呢?
SizeOfRawData是节在磁盘中的大小是根据VirtualSize字段的值按照FileAlignment的值对齐后的大小。
节的结束RVA应是VirtualAddress字段值加上VirtualSize字段的值按照sectionAlignment字段的值对齐后的大小啊??
我开始以为是书印错了,但一看后面的实例也是这样,不知这到底是什么原因?请高手帮帮忙。。
1、循环扫描节表并得到每个节在内存中的起始RVA(根据VirtualAddress字段),并根据节的大小(SizeOfRawData字段)算出节的结束RVA,最后比较判断目标RVA是否落在某个节之内
在这里节的结束RVA怎么是用“VirtualAddress字段与SizeOfRawData字段”来得来呢?
SizeOfRawData是节在磁盘中的大小是根据VirtualSize字段的值按照FileAlignment的值对齐后的大小。
节的结束RVA应是VirtualAddress字段值加上VirtualSize字段的值按照sectionAlignment字段的值对齐后的大小啊??
我开始以为是书印错了,但一看后面的实例也是这样,不知这到底是什么原因?请高手帮帮忙。。
作者: wudehui952855320 发布时间: 2010-11-20
也许可以这样想,如果都是对齐的数据,就求必要一定用FileAlignment值了吧。
作者: asmlearn 发布时间: 2010-11-21
你现在读取的是磁盘的文件,所以对齐采用的是FileAlignment。如果采用了sectionAlignment,那么可能会把下一个节的内容也给包含进去了。
~~
对齐会使得节与节之间存在空隙,在节的尾部存在有一些空间没用上,对齐值越大空隙越多。
~~
对齐会使得节与节之间存在空隙,在节的尾部存在有一些空间没用上,对齐值越大空隙越多。
作者: wuxupeng999 发布时间: 2010-11-21
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28