RegisterShellHookWindow使用
来源:互联网 发布:战国之王刷金软件 编辑:程序博客网 时间:2024/04/30 18:56
今晚因为某种用途用到RegisterShellHookWindow ,使用还是比较简单的,功能也不错,详细看下MSDN。把代码贴出来
HWND Hwnd = GetSafeHwnd();
msgShellHook = RegisterWindowMessage("SHELLHOOK");
RegisterShellHookWindow( Hwnd );
lpPrevWndProc = SetWindowLong( Hwnd , GWL_WNDPROC, (LONG)WindowProcxx );
/////////////////////////////////////////////////////////////////////////////////
LRESULT CALLBACK WindowProcxx(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
)
{
CHAR szProcessPath[_MAX_PATH] = { 0 };
DWORD dwPid = 0;
#define HSHELL_APPCOMMAND 12
if( uMsg == msgShellHook)
{
switch( wParam )
{
case HSHELL_WINDOWCREATED:
{
GetWindowThreadProcessId( (HWND)lParam ,&dwPid);
if( dwPid != GetCurrentProcessId())
{
GetProcessName( dwPid , szProcessPath, _MAX_PATH );
MessageBoxA(NULL,"窗口创建", szProcessPath, MB_OK);
}
}
break;
case HSHELL_APPCOMMAND:
{
MessageBoxA(NULL,"xx窗口创建", szProcessPath, MB_OK);
}
case HSHELL_REDRAW: //比如TAB也却换
{
MessageBoxA(NULL,"窗口HSHELL_REDRAW", szProcessPath, MB_OK);
}
break;
default:
break;
}
}
return CallWindowProc((WNDPROC)lpPrevWndProc, hwnd, uMsg, wParam, lParam);
}
后注:
RegisterShellHookWindow
就是 NtUserCallHwnd 传入 72号。 这个数其实是个索引。用于索引_apfnSimpleCall
而 _apfnSimpleCall 是一个保存着许多函数指针的一个数据结构。我们可以通过下列的函数来调用_apfnSimpleCall里面的函数。因为这些函数的参数比较少,没有参数,一个参数或者俩个参数,所以下面的函数名号理解。
NtUserCallHwndParam NtUserCallNoParam NtUserCallOneParam NtUserCallTwoParam等
每个接受的INDEX是有限制的。
一些安全软件可能会HOOK NtUserCallOneParam NtUserCallTwoParam之类的。具体看 _apfnSimpleCall里面的指针,看你对哪个感兴趣就HOOK哪个。
或者直接修改 _apfnSimpleCall 里面的指针来达到目的也可以。这样比较隐蔽。
嗯,就看这些,有时间再看下,复习去。
- RegisterShellHookWindow使用
- 使用
- 使用
- 使用
- 使用
- 使用
- 使用
- 使用++,--
- 使用$@ $!
- 使用
- SoftICE使用(指令使用)
- 使用GraphEdit使用
- 使用HtmlParser使用心得
- 时钟使用使用
- Ubuntu 使用Git 使用
- Ubuntu 使用Git 使用
- GUID使用的使用
- Git使用 tortoisegit使用
- Programing Group Up
- Android开发之ListView 适配器(Adapter)优化
- Android开发之ListView 适配器(Adapter)优化
- 各种字符串HASH函数
- python实现返回汉字首字母
- RegisterShellHookWindow使用
- delphi 调用dll中的资源的另类方法
- 写在《Windows CE大排档》上市之时
- Hibernate配置数据源,数据库连接池
- netbeans连接到sql server 2000数据库
- opencv的基本运用:打开,显示图像
- 关于SQL中RowNum分页
- 肥胖与五脏都有一定的关系
- 影响分布式系统性能的3个方面