用C ++获取VSXu艺术家的VU

时间:2015-05-16 21:56:28

标签: c++ memory-management dll base-address cheat-engine

到目前为止,这是我的代码:

ReadProcessMemory(hProc, (LPVOID)addr, &val, (DWORD)sizeof(val), NULL);

我想用C ++并在Cheat Engine的帮助下阅读VSXu Artiste声音可视化程序的VU(声卡音量)值。它与HMODULE hModule = GetModuleHandle(TEXT("sound.rtaudio.dll")); 完全正常,直到您重新打开VSXu。这很明显,因为Cheat Engine中我的值的地址是“sound.rtaudio.dll + 19098”,并且DLL加载到“随机”地址。 在Cheat Engine中,您只需在内存查看器中按Ctrl + G,然后键入DLL的名称即可找到其基址。我已经在C ++中尝试了GetModuleHandle方法但没有成功:

main

有谁知道如何使用C ++获取dll的基地址?

Cheat Engine截图:http://oi57.tinypic.com/331k7sw.jpg

亲切的问候,

罗伯特

1 个答案:

答案 0 :(得分:0)

我想问题是因为你在自己的进程中调用了GetModuleHandle。您可以尝试使用的解决方案:

GetModuleInformation,它将在MODULEINFO中返回基址:

  

lpBaseOfDll

     

模块的加载地址。

要获取流程和模块句柄,您可以使用此处的示例代码:Enumerating All Modules For a Process