首页
社区
课程
招聘
[求助]请问关于一个PE结构数据不同的问题
发表于: 2020-6-15 23:54 2709

[求助]请问关于一个PE结构数据不同的问题

2020-6-15 23:54
2709

我自己想写一个关于代码crc32校验的东西, 一个函数从内存读取已经加载到内存的程序的代码端进行校验,一个函数通过读取文件的方式定位到PE文件的代码段就行校验,但是我校验 user32.dll的时候发现一个问题, 文件定位到代码段开始位置是1024, 但是发现好像不是代码段开始的位置,和从加载到内存读取到的不一样,请问这个是什么导致的那? 
各位大神有没有知道为什么?真心请教,谢谢啦...

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (4)
雪    币: 3623
活跃值: (656)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
2
加载到内存会拉伸,那个代码段起始RVA对应文件中的1024
2020-6-16 11:24
0
雪    币: 282
活跃值: (31)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
mb_ldtiaylu 加载到内存会拉伸,那个代码段起始RVA对应文件中的1024

不是,可能我没有说清楚, 就是通过文件方式从1024位置开始获取的代码段和加载到内存中从0X401000处获取的代码段不一样,这个好像仅限于系统的DLL,我自己写的DLL就没有这个问题,我也不知道问题出在哪里......【0X401000只是我打个比方的内存地址,具体DLL加载的内存空间是通过计算的出来的】

最后于 2020-6-16 17:04 被smabl编辑 ,原因:
2020-6-16 16:54
0
雪    币: 238
活跃值: (1095)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
不要本来就说不清了还弄虚构的数据,你真要问,那就问真实的例子,这比较容易说清楚。
起码,你有个DLL出来,有个算法出来,就啥也清楚了,大家也不用干巴巴的去瞎猜到底有什么可能性,猜你有没有分清文件对齐和内存对齐,猜你的计算公式是不是有什么问题。
2020-6-17 07:50
0
雪    币: 3623
活跃值: (656)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
5

是因为重定位,你看看user32.dll重定位表第一个表的第一项就是rva为0x1000的地方

最后于 2020-6-18 10:04 被mb_ldtiaylu编辑 ,原因:
2020-6-17 13:22
0
游客
登录 | 注册 方可回帖
返回
//