吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 512|回复: 2
收起左侧

[已解决] 如何准确读取PE文件入口点的首个字节?

[复制链接]
董督秀 发表于 2024-10-4 00:11
200吾爱币
如图,以ExeInfoPE为例,它读取到OllyDbg.EXE的入口点的数位字节:

2024-10-04_000813.jpg

例如OD入口点的首个字节为0xEB (图中圈红的部分)

我尝试获取入口点rva: OptionalHeader.AddressOfEntryPoint 之后,读取首个字节,但是结果总不对。

如何实现这个效果?要求支持32位和64位PE文件。有源码示例吗?

最佳答案

查看完整内容

磁盘状态的文件和内存状态的文件定位是不一样的,AddressOfEntryPoint 定义的是内存态的偏移,你直接读取文件的话应该取的是文件偏移,即 AddressOfEntryPoint 对应的节表的文件偏移。 以 OD 为例,AddressOfEntryPoint 的内存偏移为 0x1000,对应的节为 .text, .text的内存偏移为 0x1000(对应 AddressOfEntryPoint),文件偏移为 0x600,读取磁盘文件的偏移 0x600 就能取到首字节 0xEB。 代码可参照滴水的节表相关 ...

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

lies2014 发表于 2024-10-4 00:11
本帖最后由 lies2014 于 2024-10-4 02:47 编辑

磁盘状态的文件和内存状态的文件定位是不一样的,AddressOfEntryPoint 定义的是内存态的偏移,你直接读取文件的话应该取的是文件偏移,即 AddressOfEntryPoint 对应的节表的文件偏移。
以 OD 为例,AddressOfEntryPoint 的内存偏移为 0x1000,对应的节为 .text, .text的内存偏移为 0x1000(对应 AddressOfEntryPoint),文件偏移为 0x600,读取磁盘文件的偏移 0x600 就能取到首字节 0xEB。

2024-10-04_024625.jpg

2024-10-04_024408.jpg

代码可参照滴水的节表相关部分:
https://blog.csdn.net/Edimade/article/details/130299882

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
你好,再见 + 1 + 1 用心讨论,共获提升!

查看全部评分

 楼主| 董督秀 发表于 2024-10-4 09:13
lies2014 发表于 2024-10-4 00:11
磁盘状态的文件和内存状态的文件定位是不一样的,AddressOfEntryPoint 定义的是内存态的偏移,你直接读取文 ...

解决了,读文件偏移,而不是内存偏移。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-14 15:45

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表