DllBase := GetModuleHandle('MSVCRT.DLL') 是这样获取DLL基址吗?
本帖最后由 delphi_zw 于 2013-7-24 14:46 编辑PidHandle:=OpenProcess(PROCESS_ALL_ACCESS,False,PidId);
DllBase:=GetModuleHandle('MSVCRT.DLL') 是这样获取DLL基址吗?
C++ 代码是这样的
DWORD base = (DWORD)GetModuleHandle("MSVCRT.DLL")// get the RendDX9 you need this for the base address
那么用DELPHI这样写应该是没错,不知道为什么不错,前面我已经将dllbase定义为DWORD类型了,
另外,我前有一段是打开别的进程的,然后执行这些代码,我的目的就是要取某个进程中加载的这个DLL基址
对的吧{:5_103:} 但只能获取到本程序进程内已加载的模块(exe或dll)句柄 comeheres 发表于 2013-7-24 10:19 static/image/common/back.gif
但只能获取到本程序进程内已加载的模块(exe或dll)句柄
你是说获取的不是基址,是句柄?那我要获取别的进程,加载的DLL基址 代码怎么写呢 本帖最后由 comeheres 于 2013-7-24 17:33 编辑
delphi_zw 发表于 2013-7-24 14:47 static/image/common/back.gif
你是说获取的不是基址,是句柄?那我要获取别的进程,加载的DLL基址 代码怎么写呢你贴的代码,应该先注入,再获取基址吧
代码:
PidHandle:=OpenProcess(PROCESS_ALL_ACCESS,False,PidId);
DLLbase:= GetModuleHandle('MSVCRT.DLL');
gamebase := DLLbase+Offset;
ShowMessage (IntToStr(gamebase));
closehandle(PidHandle);
在WINXP上可以正确获取到这个DLL+偏移的基址,在WIN8不知道为什么不行。。。。还望大师指点,谢谢!
页:
[1]