将调试线程插入服务进程的问题。

LJN 2002-04-02 04:52:25
我想给一个服务进程创建一个线程,但在OpenProcess时被提示没有权限,
于是我更改本程序的权限为Debug,再一次尝试,这次成功的创建了线程,
还得到了线程据柄。可是并没有看到dll被加载的迹象。

难以理解,有谁知道吗?
...全文
13 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
LJN 2002-04-03

我刚在Codeguru得到了回答。

原因是用了相对路径,Service Process找不到DLL文件。
真是奇怪,除Service以外的应用程序都可以用相对路径的。
  • 打赏
  • 举报
回复
han012 2002-04-02
The most likely reason is that the debug thread returned FALSE, and no DLL is loaded.

The function WriteProcessMemory() must be called to insert the string included FILEPATH of the DLL to be loaded into the virtual space of target process, such as

// Copy the DLL's pathname to the remote process's address space
if (!WriteProcessMemory(hProcess, "d:\\test\\mydll.dll",
(PVOID) pszLibFile, cb, NULL)) __leave;

About how to create remote thread, please refer to the excellent book "Advanced Windows" by Jeffrey Richter
  • 打赏
  • 举报
回复
LJN 2002-04-02
如果《WINDOWS核心编程》里有,我还问什么?
  • 打赏
  • 举报
回复
snsins 2002-04-02
看《WINDOWS核心编程》里的“挂接和插入DLL”这一章
  • 打赏
  • 举报
回复
LJN 2002-04-02
没人关心?
  • 打赏
  • 举报
回复
发帖
进程/线程/DLL
加入

1.5w+

社区成员

VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
申请成为版主
帖子事件
创建了帖子
2002-04-02 04:52
社区公告
暂无公告