首页
社区
课程
招聘
[求助]dll注入后退出程序就崩溃
发表于: 2014-4-10 13:37 10496

[求助]dll注入后退出程序就崩溃

2014-4-10 13:37
10496
一个DLL程序,一个调用DLL的程序,注入后运行正常,可是一关闭调用DLL的程序,被注入的程序也会跟着关闭。

下面是DLL代码,调用DLL的程序就一句代码SetHook();

//回调函数
LRESULT CALLBACK KeyboardProc(int nCode,WPARAM wParam,LPARAM lParam)  
{  
	AFX_MANAGE_STATE(AfxGetStaticModuleState()); 
	int i;
	_asm
	{
		mov eax,0x0018FE54
		mov eax,[eax+60h]
	}
	return CallNextHookEx(0,nCode,wParam,lParam); 
}  

void SetHook()
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState());

	HWND hwnd=::FindWindow(NULL,"adm");
	if(!hwnd)
	{
		MessageBox(0,"程序未运行",0,0);
		return;
	}
	DWORD Tid,Pid;
	Tid=GetWindowThreadProcessId(hwnd,&Pid);
	SetWindowsHookEx(WH_DEBUG,KeyboardProc,GetModuleHandle("SS.DLL",Tid));

}

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 211
活跃值: (118)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
不要用WH_DEBUG钩子。

你用IDE工具debug程序时,你关了IDE,被调试程序也会被关闭,除非你提前deattach。可以用消息钩子
2014-4-14 16:07
0
雪    币: 24
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
可是用CE和OD附加就不会这样
2014-4-18 20:12
0
雪    币: 211
活跃值: (118)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
你怎么知道CE和OD在关闭时,不会先deattach 进程。
2014-4-25 12:27
0
雪    币: 24
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
deattach是什么意思????
2014-4-25 12:40
0
雪    币: 211
活跃值: (118)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
detach  上面的拼写错误,attach 是附加进程,detach就是从附加进程中下来退出来,对应到你用的钩子上,就是说需要调用 UnhookWindowsHookEx  来摘除钩子
2014-5-5 11:20
0
游客
登录 | 注册 方可回帖
返回
//