
关键的问题是你是需要DLL在目标进程中的基址,而且你自己的写的程序并没有加载那个DLL,所以你总是得到0,所以你需要把自己的程序注入到进程中,才能得到你所要的DLL在目标进程中的基地址。
DLL注入比较常用的方法是利用OpenProcess得到目标进程的句柄,然后利用CreateRemoteThread调用LoadLibrary函数,加载你自己的DLL,在这个DLL的DLLMain里面遍历所有的DLL找到你想要的。这个程序在网上很多,你自己Google就可以找得到了。
用这个 给你发个源码~
版本 2
子程序 GetModule, 整数型, , 返回指定进程中指定模块的模块地址
参数 ProcessID, 整数型
参数 模块名称, 文本型
局部变量 hObject, 整数型
局部变量 ModuleEntry32, 模块地址_
局部变量 Module, 模块地址_
' 清除数组 (Module)
hObject = API_CreateToolhelp32Snapshot (8, ProcessID) ' 若id为0表示当前进程
ModuleEntry32结构大小 = 1024
如果真 (寻找第一个32位模块_ (hObject, ModuleEntry32))
循环判断首 ()
如果真 (到小写 (到文本 (ModuleEntry32模块名称)) = 到小写 (模块名称))
API_CloseHandle (hObject)
返回 (ModuleEntry32模块句柄)
如果真结束
循环判断尾 (寻找下一个32位模块_ (hObject, ModuleEntry32))
如果真结束
API_CloseHandle (hObject)
' 调试输出 (Module)
返回 (0)
你粘贴之后直接调用“GetModule”就可以取得了
打开dnf并不需要使用辅助软件,只需要启动根目录下start文件夹吓得dnfchinaexe即可,一般就不会出现楼主所出现“打开进程失败”的这类问题的。如果不能启动,建议你重新安装客户端即可,很有可能缺失什么文件导致的。
以上就是关于如果获取其它进程的DLL内存地址全部的内容,包括:如果获取其它进程的DLL内存地址、易语言 求取进程模块地址的方法.、求dnf开挂打开进程失败无法自动获取基址 大神求解等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)