GetModuleInformation

代码跳动 2008-09-04 03:41:42
procedure xxx;
var
hLib: THandle;
tInf: TModuleInfo;
s:string;
begin
hLib:= LoadLibrary('xxx.dll');
if hLib <> 0 then
begin
GetModuleInformation(GetCurrentProcess, hLib, @tInf, SizeOf(tInf));
s :=Format('%d', [DWORD(tInf.lpBaseOfDll)]);
end;

===================
如上代码, 是取得游戏里加载的xxx.dll基址. 用线程dll hook 游戏是可以直接用的.

但我想用一个独立的程序去读这个游戏dll的基址. 怎么实现呢. (是不是GetCurrentProcess 用什么替换?)
...全文
652 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
代码跳动 2008-09-05
  • 打赏
  • 举报
回复
查找窗口打开进程得到drProcessHandle 句柄也不对
etomahawk 2008-09-04
  • 打赏
  • 举报
回复
GetCurrentProcess返回当前进程句柄。
代码跳动 2008-09-04
  • 打赏
  • 举报
回复
procedure yzzd_dkjc ;
begin
GetWindowThreadProcessId(FindWindow('类名','窗口标题'), @drProcessID);
drProcessHandle := OpenProcess(PROCESS_VM_READ or PROCESS_VM_WRITE or PROCESS_VM_OPERATION, true, drProcessID);
end;

================

drProcessHandle 做为句柄 不对. 听说 GetCurrentProcess 是个什么伪句柄....
fangsp 2008-09-04
  • 打赏
  • 举报
回复
CreateToolhelp32Snapshot
Process32First
Process32Next
枚举到你要得到信息的进程.
然后OpenProcess 打开进程.其中返回值填入到GetModuleInformation第一个参数.
fangsp 2008-09-04
  • 打赏
  • 举报
回复
帮楼主顶一下
gyk120 2008-09-04
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 akirya 的回复:]
CreateToolhelp32Snapshot
Process32First
Process32Next
枚举到你要得到信息的进程.
然后OpenProcess 打开进程.其中返回值填入到GetModuleInformation第一个参数.
[/Quote]
  • 打赏
  • 举报
回复
CreateToolhelp32Snapshot
Process32First
Process32Next
枚举到你要得到信息的进程.
然后OpenProcess 打开进程.其中返回值填入到GetModuleInformation第一个参数.

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧