鱼C论坛

 找回密码
 立即注册
查看: 4421|回复: 5

DllBase := GetModuleHandle('MSVCRT.DLL') 是这样获取DLL基址吗?

[复制链接]
发表于 2013-7-24 09:46:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 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基址



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-7-24 10:16:31 | 显示全部楼层
对的吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-7-24 10:19:02 | 显示全部楼层
但只能获取到本程序进程内已加载的模块(exe或dll)句柄
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-24 14:47:53 | 显示全部楼层

你是说获取的不是基址,是句柄?那我要获取别的进程,加载的DLL基址 代码怎么写呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-7-24 17:06:23 | 显示全部楼层
本帖最后由 comeheres 于 2013-7-24 17:33 编辑
delphi_zw 发表于 2013-7-24 14:47
你是说获取的不是基址,是句柄?那我要获取别的进程,加载的DLL基址 代码怎么写呢
你贴的代码,应该先注入,再获取基址吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-25 08:54:23 | 显示全部楼层
代码:

   PidHandle  :=  OpenProcess(PROCESS_ALL_ACCESS,False,PidId);
   DLLbase  :=   GetModuleHandle('MSVCRT.DLL');
   gamebase := DLLbase+Offset;
   ShowMessage (IntToStr(gamebase));
closehandle(PidHandle);


在WINXP上可以正确获取到这个DLL+偏移的基址,在WIN8不知道为什么不行。。。。还望大师指点,谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 08:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表