use*_*611 1 assembly portable-executable
我正在处理一个 ASM 项目,我想知道原始内存中可移植可执行程序的入口点。我所说的原始内存是指静态内存,就像我用十六进制编辑器编辑原始 .exe 文件一样。从程序的 PE 表中,我可以查找名为“EntryPoint:”的条目,但该条目一旦加载到内存中就包含程序的入口点!我需要找到程序将在磁盘中的原始内存中查找第一条指令的位置。有些程序从 .text 部分的第一个地址开始执行,这很常见但并不总是发生,这就是为什么我想知道入口点。
为了解决这个问题,我使用了 Windows API 中的 MapViewOfFile 函数并在内存中加载了一个 example.exe 程序,然后查找其原始内容。
我目前正在使用 Radasm 与 MASM 合作
谢谢 !
入口点由AddressOfEntryPointPE 标头中的 给出,它为您提供入口点的虚拟地址。如果你想搞清楚这里说的文件中,你需要经过的部分表,并找出哪些部分包含的虚拟地址-这是一个部分VirtualAddress,并VirtualSize使得AddressOfEntryPoint为> =VirtualAddress和偏移量AddressOfEntryPoint - VirtualAddress为< VirtualSize。
找到后,只需计算PointerToRawData+ offset 即可找出它在文件中的位置。
| 归档时间: |
|
| 查看次数: |
2713 次 |
| 最近记录: |