- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
一旦加载到内存中,我正在尝试获取我的进程的图像库。据我了解,您可以调用 GetModuleHandle 来获取图像库。我的问题是,返回的句柄是否基本上指向 IMAGE_DOS_HEADER 结构,以便您可以执行以下操作:
PIMAGE_DOS_HEADER DosHeader;
DosHeader = (PIMAGE_DOS_HEADER)GetModuleHandle(NULL);
最佳答案
这是正确的,但如果你想要一个 dll 的模块句柄,你需要指定它的路径。否则,您将获得进程 exe 的句柄。您还应该检查返回的 HMODULE
首先看到它的有效性。
如何获取模块的虚拟大小的示例:
std::size_t GetModuleSize(const char* szModule)
{
HMODULE hModule = GetModuleHandle(szModule);
if(hModule == NULL) return 0;
IMAGE_DOS_HEADER* pDOSHeader = (IMAGE_DOS_HEADER*)hModule;
IMAGE_NT_HEADERS* pNTHeaders =(IMAGE_NT_HEADERS*)((BYTE*)pDOSHeader + pDOSHeader->e_lfanew);
return pNTHeaders->OptionalHeader.SizeOfImage;
}
IMAGE_DOS_HEADER*
而不是
PIMAGE_DOS_HEADER
因为我发现它更具可读性和清晰性。
关于c++ - 使用 GetModuleHandle 获取指向 IMAGE_DOS_HEADER 的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61593712/
我正在阅读 ,它描述了 GetModuleHandle() API 如下: 当您调用此函数时,您会传递一个以零结尾的字符串,该字符串指定加载到调用进程地址空间中的可执行文件或 DLL 文件的名称。 如
DWORD baseAddress = (DWORD) GetModuleHandle(NULL); 如果我将该代码放入 DLL 并将其注入(inject)到进程中,那么它似乎等于注入(inject)
标题真的解释了这一切,我有一个进程进入另一个进程。我需要能够在这个程序上为某个不是 Windows 标准的 DLL 获取模块句柄,而且我没有主程序的源代码。 我需要使用它来调用带有 GetProcAd
我在研究 ZeuS 恶意软件时遇到了 source code : HMODULE _getKernel32Handle(void) { #if defined _WIN64 return NULL
有没有办法在 Linux 上通过 GetModuleHandle(NULL) 将该句柄传递给 dlsym 3 最佳答案 documentation对于 dlopen(3) 状态: The functi
在使用 Windows API 进行编程时,我总是将 WinMain 中的 HINSTANCE 立即设为全局变量。如果我想做一个 OK 按钮,我会这样做(给定全局 HINSTANCE g_hInsta
一旦加载到内存中,我正在尝试获取我的进程的图像库。据我了解,您可以调用 GetModuleHandle 来获取图像库。我的问题是,返回的句柄是否基本上指向 IMAGE_DOS_HEADER 结构,以便
我只是想根据一个很可能类似于“somefile.exe”的字符串来获取模块信息。 MODULEINFO GetModuleInfo(char *szModule) { MODULEINFO m
一旦我的进程加载到内存中,我就试图获取它的图像库。据我了解,您可以调用 GetModuleHandle 来获取图像库。我的问题是,返回的句柄是否实质上指向 IMAGE_DOS_HEADER 结构,以便
我是 C++ 的新手,即使我知道文件存在,这段代码总是返回 NULL: HMODULE hModule = GetModuleHandle(TEXT("C:\\Users\\Steve\\Deskto
我在我的函数中使用了 GetModuleHandle。每次我执行操作时都会调用该函数。我想知道该函数是否被一次又一次地调用,GetModuleHandle 是否会导致任何句柄泄漏(堆栈溢出或内存泄漏或
我正在开发一个与 native DLL 交互的 Web 服务,我使用 LoadLibrary/GetModuleHandle/FreeLIbrary 和 GetProcAddress 来动态加载/卸载
我正在尝试在 Windows Phone 8.0 native C++ 库上加载 winsock dll。 HMODULE ws2mod = GetModuleHandle("ws2_32.dll"
我正在尝试使用 Python 的 C 类型来调用 kernel32 库上的 GetModuleHandleA。我想获得该库的句柄,以便我可以使用它来调用 LoadLibraryA 的 GetProcA
这是我的代码: function GetProcedureAddress(var P: FARPROC; const ModuleName, ProcName: AnsiString): Boolea
这个问题在这里已经有了答案: GetModuleHandle(), for a DLL in another process (1 个回答) 关闭 4 年前。 我正在尝试获取由 notepad.ex
当使用下面的代码时,似乎即使我将 TheFST.dll 链接到调试信息 (/DEBUG),我也无法在断点处停止函数 setSecurityRetriever。 调用 GetModuleHandle 时
我使用的是 Windows 7 Professional x64。 我需要 Hook DefWindowProcW 过程。但是当我尝试通过 GetProcAddress() 获取它的地址时,它返回位于
在许多情况下加载一些较新的 API 会使用这样的构造: (FARPROC&)pfnZwQueryVirtualMemory = ::GetProcAddress(::GetModuleHandle(L
我是一名优秀的程序员,十分优秀!