gpt4 book ai didi

c++ - 通过映射到的地址获取映射到内存中的文件名

转载 作者:太空宇宙 更新时间:2023-11-04 05:49:39 26 4
gpt4 key购买 nike

假设有以下代码-

HANDLE h = CreateFile(L"some_dll.dll", GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_DELETE,
NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
HANDLE map = CreateFileMapping(h, NULL, PAGE_READONLY | SEC_IMAGE, 0, 0, NULL);
LPVOID res = MapViewOfFileEx(map, 0, 0, 0, 0, 0);

是否可以使用 C++ 提取“some_dll”,给定它映射到的地址?

当尝试使用 windbg 调试这个可执行文件时,它似乎也没有很好地提取模块

enter image description here

最佳答案

是的,这正是GetMappedFileName用于:

Checks whether the specified address is within a memory-mapped file in the address space of the specified process. If so, the function returns the name of the memory-mapped file.

PS:windbg 没有理由显示不是已加载模块的内存映射文件的名称,即使该文件恰好是 DLL。

关于c++ - 通过映射到的地址获取映射到内存中的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46172131/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com