windows sdk 学习笔记(6)

1. Windows 应用程序的运行模式是基于消息驱动的,任何线程只要注册了窗口类都会有一个消息队列用来接受用户的输入消息和系统消息,为了获取特定的线程接受或发送的消息,就需要使用钩子。

2. 钩子就是windows消息处理中的一个监视点,它是一个处理消息的程序段,通过调用相关的API函数,把它挂入系统,关于消息我们需要知道以下几点:

  1.hook是用来截获系统中的消息流的。

  2. 消息被截获后,用来处理消息的子程序叫做钩子函数。

  3. 系统中同一时间可能有多个进程安装了钩子,多个钩子函数在一起组成钩子链。

      4. 钩子加重了系统的负担,尽量少安装,早移除。

3.在调用SetWindowsHookEx函数时,如果dwThreadId = 0,或者指定一个由其他进程创建的线程id.lpfn参数指定的子函数必须位于一个dll中,这种被称为远程钩子。

 

4. MEMORY_BASIC_INFORMATION 结构,他包含了一个进程的虚拟地址空间中的某个页面区间的信息。

 

5. 函数VirutalQuery, 返回调用进程的虚拟地址空间的某个页面区间的信息,为了返回非调用进程的对应信息使用ex版本。

 

6. 共享数据段中的数据在所有进程中共享一块内在,如果在a进程设置了它中的数据,其他进程中相应的数据会随之发生改变。

 

7. 通过使用#pragma data_seg()命令,可以添加额外数据段,放在共享数据段中的数据必须被初始化,否则会被安排到默认数据段,指定将不会起作用。同时需要在定义dll的.def中添加相应的指定。 如下:

 

   #pragma data_seg( “YCIShared” )

  HWND g_hWndCaller = NULL;

  HOOk g_hHook = NULL;

  #pragma data_seg()

 

  // .def

  ...

  SECTIONS

        YCIShared Read Write Shared

转载于:https://www.cnblogs.com/lewgun/archive/2010/04/12/1710583.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值