Share my knowledge, feel my life. Eric Shan' Blog myBloggie 2.1.6 © 2005   
Mar 2025 April 2025 May 2025
S M T W T F S
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30    
Categories
About[5]
Blackberry[1]
dotNet and C Charp[1]
IPhone[10]
Life[4]
Unix&Linux[19]
WEB programming[16]
Windows API[5]
Windows Mobile[1]
Windows Multimedia[4]
Recent
CentOS mount CDrom and USB
CentOS GHOST(幽灵)漏洞修复方法
centos 改变语言并立即生效
centos vpn 接通后无法连接internet
让vlc播放中文字幕不出乱码
centos 取消屏保
php中ob_flush和flush的用法
CentOS检查,添加,删除自启动服务
CentOS中开机自动启动某个服务
Top命令中的翻页
Archives
February 2010[4]
September 2009[1]
August 2009[1]
January 2009[7]
October 2008[10]
June 2008[2]
December 2007[14]
November 2007[5]
May 2007[9]
April 2007[3]
March 2007[10]
User List
Eric Shan[66]
Search
Syndication
14 Sep 2009 07:50:01 am
Hook原来是这样工作的
先用自己的exe装载含有自己hook代码的dll(可以用loadlibrary,或者静态直接启动装入这个dll)再在自己的exe调用一个SetWindowsHookEx,SetWindowsHookEx可以设定为对所有的mouse hook,而proc参数就是上面dll中的proc.

这样SetWindowsHookEx会在系统所有用到mouse的新启动的进程里都会loadlibrary装入自己的hook dll。

在自己hook dll的Dllmain里可以判断目前的进程是哪个exe,或dll,如果发现是自己想要hook的那个进程.就可以进一步修改这个进程的内存,可以修改它的import table使其在调用系统api时先调用我们的。也可以检索它的内存,找到特定的内部函数,在调用这些函数前先调用我们自己的函数.

这里比较让人吃惊的是,实际上SetWindowsHookEx后,对每个进程实际上系统回自动loadlibrary你自己
的hook dll,导致你的Dllmain每次都会被调用.
Category : Windows API | Posted By : Eric Shan | Comments [0] | Trackbacks [0]
Trackbacks
The URI to TrackBack this entry is :
http://blog.tntsoft.com/trackback.php/46
Comments

Add Your Comment

Subject

Comments

Name

Email Address (Optional)

Home Page (Optional)

Security Code

Please enter the security code as displayed :



Template theme : aura
Powered by myBloggie Copyright © 2004 2006
-- myWebland --

Sponsed by TNTSoft Store