Hook注入DLL到进程的问题

nicolastee 2007-03-02 09:31:17
我按照网上的方法把一个DLL注入到一个进程里,以来截获Send,Recv等消息
比如A.exe是我的程序。主要用来把Hook.dll注入到另外的一个进程c.exe(这个程序不是做的),如果不关A.exe,那能截获到c.exe的这些消息,如果把A.exe关掉。就不能截获到了
请问是怎么回事呢?
我A.exe里的注入代码如下:
STARTUPINFO startup;
ZeroMemory( &startup, sizeof(startup) );
startup.dwFlags = STARTF_USESHOWWINDOW;
startup.wShowWindow = SW_SHOW;
startup.cb = sizeof(startup);
PROCESS_INFORMATION info;
if (CreateProcess("d:\\abc\\c.exe",NULL,NULL,NULL,TRUE,0,NULL,NULL,&startup,&info) == 0)
return FALSE;
Sleep(3000);

HINSTANCE hdll;
hdll = LoadLibrary("Hook.dll");
if(hdll == NULL)
MessageBox("LoadLibrary");

typedef BOOL (_stdcall *InstallHook)(DWORD dwThreadId);
InstallHook Set ;
Set = (InstallHook)GetProcAddress(hdll,"InstallHook");
if (!Set(info.dwThreadId))
{
MessageBox("InstallHook Error");
}
请问有什么问题吗?
...全文
548 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhyaaa123 2007-03-07
  • 打赏
  • 举报
回复
在你的HookProc里面做如下的操作就能解决你的问题:

LoadLibrary("Hook.dll"); //增加dll引用记数
UnhookWindowsHookEx(glhHook); //卸栽当前钩子
glhHook = SetWindowsHookEx(WH_GETMESSAGE, HookProc, AfxGetInstanceHandle(), dwThreadId); //重新挂接钩子

nicolastee 2007-03-06
  • 打赏
  • 举报
回复
就这么沉了啊?
lcp8474140 2007-03-05
  • 打赏
  • 举报
回复
等待回答,想知道原因
linuxpgy 2007-03-03
  • 打赏
  • 举报
回复
让c.exe执行这些注入代码不就可以了吗?自己注入自己,呵呵

详情请参考:http://pgy12345.googlepages.com/inject
nicolastee 2007-03-02
  • 打赏
  • 举报
回复
?能帮忙说详细点吗?
我很菜。具体应该怎么实现呢?
WingForce 2007-03-02
  • 打赏
  • 举报
回复
你关掉自己那个程序时候,你Load的dll当然会自动被free

要解决,要自己实现那个dll的功能
nicolastee 2007-03-02
  • 打赏
  • 举报
回复
我这里没有自己写Free呢。请问怎么解决呢?
WingForce 2007-03-02
  • 打赏
  • 举报
回复
可能你使用的那个dll“Hook.dll”被free时会自己卸载hook

15,471

社区成员

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

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