三、hook 钩子
参考 http://baike.baidu.com/view/626139.htm
(1)本质:一个处理消息的程序段。通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。
(2)消息触发:当与指定的Hook类型关联的消息发生时,系统就把这个消息传递到Hook子程。
每一个Hook(钩子)都有一个与之相关联的指针列表,称之为钩子链表,由系统来维护。这个列表的指针指向该钩子的各个处理子程。
(3)钩子机制:允许应用程序截获处理window消息或特定事件。
(4)钩子安装,入栈:最近安装的钩子放在链的开始, 而最早安装的钩子放在最后,也就是后加入的先获得控制权。
(5)Hook子程:可以只监视消息,或加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递,避免这些消息传递到下一个Hook子程或者目的窗口。
(6)依据使用范围,分为
线程钩子:监视指定线程的事件消息。
系统钩子:监视系统中的所有线程的事件消息。因为系统钩子会影响系统中所有的应用程序,所以钩子函数必须放在独立的动态链接库(DLL)
四、PE文件 、OCX
1.PE文件
(1)Portable Executable 一种二进制文件,可执行
(2)常见的PE文件:exe,dll,ocx,sys,com
(3)参考:对PE文件的详解,包括文件结构、如何存储
http://www.360doc.com/content/10/0114/13/59579_13522537.shtml
http://www.vckbase.com/index.php/wv/1057
2.OCX http://baike.baidu.com/view/393671.htm?func=retitle
(1)对象链接和嵌入用户控件 Object Linking and Embedding (OLE) Control eXtension
(2)ocx是ocx控件的扩展名
3.控件、组件、 插件的区别:http://blog.csdn.net/xiaomianao2010/article/details/5959004