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

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

难以理解,有谁知道吗?
...全文
56 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复
没人关心?

15,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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