本文目录一览:
- 1、钩子问题.
- 2、黑客3号钓鲫鱼好用吗?
- 3、黑客与逆向工程师的python编程之道 怎么样
- 4、怎样设置win7的本地安全策略来防止黑客攻击
- 5、安装消息钩子是什么意思
- 6、什么是钩子程序?c/c++如何实现?
钩子问题.
以前做过编程,但现在都忘个差不多了,给你查了一点,看能不能有帮助
HOOK编程与消息处理一2009-06-14 16:02阅读本文需要一定的C++基础和windows编程基础,另外对动态链接库原理和机制也要有一定了解。我尽量讲解得简单明了一些。
因为考试系统项目中要对系统中的键盘消息进行处理,而WEB页面中对系统热键、功能键不能进行有效处理,如(ALT+F4 ALT+TABLE等等),因此需要编写一个WIN32下的客户端程序,内嵌一个WebBrownser实现页面显示(或用CHtmlView对象实现,其实道理都是一样的),这样我可以在客户端程序框架中对键盘消息进行处理。
本文介绍的内容主要是利用动态链接库安装全局进程钩子,实现应用程序的主导控制,因此本文的范畴还是在COM相关领域中。#此前在首页部分显示#
关于Hook编程,以前我总是认为很神秘,因为黑客技术中经常用到HOOK,比如最常见的盗取密码。下面我们来一窥门径。
首先我们来简单了解一下窗口句柄和WINDOWS消息处理机制;
窗口是Windows应用程序中一个非常重要的元素,一个Windows应用程序至少要有一个窗口,称为主窗口。窗口是屏幕上的一块矩形区域,是Windows应用程序与用户进行交互的接口。在windows应用程序中,窗口是通过窗口句柄(HWND)来标识的。我们要对某个窗口进行操作,首先要得到这个窗口的句柄。句柄(HANDLE)是Windows程序中一个重要的概念,使用很频繁。在windows程序中有各种各样的资源(窗口、图标、光标等),系统在创那家这些资源时会为它们分配内存,并返回标识这些资源的标识号,即句柄(图标句柄HICON、光标句柄HCURSOR、画刷句柄HBRUSH)。
Windows程序设计是一种完全不同于DOS方式的程序设计方法。它是一种事件驱动方式的程序设计模式,主要是基于消息的。例如当用户在窗口中画图的时候,按下鼠标左键,操作系统会感知这一事件,并将这一事件包装成一个消息,投递到应用程序消息队列中,然后应用程序通过调用GetMessage函数从消息队列中取出消息,然后调用DispatchMessage函数将这条消息调度给操作系统,操作系统会调用在设计窗口类时指定的应用程序窗口过程(WindowProc)对这一消息进行处理。
在实际应用中,可能要对某个特殊消息进行屏蔽,如在我的考试项目中要对键盘消息进行屏蔽,而鼠标消息不与处理。我们可以给我们的程序安装一个HOOK过程(钩子过程)来实现这一功能。在程序中,我们可以过SetWindowsHookEx函数来安装一个钩子过程。该函数声明如下:
HHOOK SetWindowsHookEx(
int idHook, // type of hook to install
HOOKPROC lpfn, // address of hook procedure
HINSTANCE hMod, // handle to application instance
DWORD dwThreadId // identity of thread to install hook for
);
SetWindowsHookEx函数的作用是安装一个应用程序定义的钩子过程,并将其放到钩子链中。应用程序可以安装多个钩子过程,对我们感兴趣的多个消息进行检查。这样多个钩子过程就形成了钩子链,最后安装的钩子过程总是排在该链的前面。如果调用成功,SetWindowsHookEx函数返回值就是所安装的钩子过程的句柄,否则返回NULL。
各参数的含义各位读者可以看下MSDN,MSDN中的英文也是很好读懂的,各位不要害怕。
第一个参数idHook MSDN中给出的含义是Specifies the type of hook procedure to be installed. 中文意思就是指定将要安装的钩子过程的类型。在我的项目中因为要处理键盘消息,因此本文中我会将其设为WH_KEYBOARD。如果要处理鼠标消息可将其设为WH_MOUSE。
第二个参数lpfn 指向相应钩子过程。如果参数dwThreadId 为0,或者指定了一个其他进程创那家的线程的标识符,那么参数lpfn 必须指向一个位于某动态接库中的钩子过程。否则,参数lpfn 可以指向当前进程相关代码中定义的一个钩子过程。
第三个参数hMod 指定lpfn 指向的钩子过程所在DLL的句柄。如果参数dwThreadId 指定的线程由当前进程创建,并且相应的钩子过程定义于当前进程相关的代码中,那么必须将此参数设为NULL。
第四个参数dwThreadId 指定也钩子过程相关的线程标识。如果其值为0,那么安装的钩子过程将与桌面上运行的所有线程都相关。
关于进程内的钩子比较简单,大家参看MSDN中的MouseProc、CallNextHookEx以及上面的SetWindowsHookEx等函数的说明就可以实现。在这里我们要写一个应用全局钩子的应用程序,主要是我想在程序运行时对桌面运行的所有进程的键盘消息都进行屏蔽。好,我们现在建一个空的DLL工程名为HookTest,再建一个C++源文件HookTest.cpp,在源文件中写一个函数SetHook用以安装钩子过程,再写一个函数UnHook用以卸载钩子过程。代码如下:
LRESULT CALLBACK KeyboardProc(
int code, // hook code
WPARAM wParam, // virtual-key code
LPARAM lParam // keystroke-message information)
{
if(VK_F2==wParam)
{
SendMessage(hWnd,WM_CLOSE,0,0);
UnhookWindowsHookEx(hKeyboardHook);
}
return 1;
}
void SetHook(HWND hwnd)
{
hWnd=hwnd;
hKeyboardHook=SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,GetModuleHandle("Hook"),0);
}
void UnHook()
{
if(hKeyboardHook)
{
SendMessage(hWnd,WM_CLOSE,0,0);
UnhookWindowsHookEx(hKeyboardHook);
}
}
黑客3号钓鲫鱼好用吗?
看鲫鱼大小决定使用什么钩子。大多数的竞技钓者使用的是“袖钩”和“伊豆”;此类钩子的特点如下:袖钩:钩条超细、钩柄长、钩门窄、钩尖直、重量轻,具备灵敏度高、刺鱼快的特点,是钓小鲫鱼的首选。一般选用0-2号即可。伊豆:钩门窄、钩尖外撇、钩柄长、钩条细,适合钓中小型鲫鱼等。选用号数一般在2-5号。我个人用丸士的3-5号,钓鲫鱼也不错,你也可以去看看。具体哪个品牌适合就不好评价了,建议你去淘宝上看看,找大一点的供应商购买,另外,进口鱼钩大多数质量都是不错的,例如伽马,土肥富和欧娜等,但是价格较高。
黑客与逆向工程师的python编程之道 怎么样
Python是一款非常流行的脚本编程语言。特别是在黑客圈子里,你不会Python就几乎无法与国外的那些大牛们沟通。这一点我在2008年的XCon,以及2009年的idefense高级逆向工程师培训中感触颇深。前一次是因为我落伍,几乎还不怎么会Python,而后一次……记得当时我、海平和Michael Ligh(他最近出版的Malware Analyst's Cookbook and DVD: Tools and Techniques for Fighting Malicious Code)一书在Amazon上得了7颗五星!)讨论一些恶意软件分析技术时经常会用到Python,从Immunity Debugger的PyCommand、IDA的IDAPython到纯用Python编写的Volatility工具(这是一款内存分析工具,用于发现rootkit之类的恶意软件)。Python几乎无处不在!我也尝试过对Volatility进行了一些改进,在电子工业出版社举办的“在线安全”Open Party上海站活动中,我以《利用内存分析的方法快速分析恶意软件》为题进行了演讲。
遗憾的是,之前市面上还没有一本关于如何利用黑客工具中提供的Python(由于必须使用许多黑客工具中提供的库函数,所以这时你更像在用一种Python的方言编程)的书籍。故而,在进行相关编程时,我们总是要穿行于各种文档、资料之中,个中甘苦只自知。
本书的出版满足了这方面的需求,它会是我手头常备的一本书,啊不!是两本,一本备用,另一本因为经常翻看用不了多久就肯定会破烂不堪。
说到这本书的好处也许还不仅于此,它不仅是一本Python黑客编程方面的极佳参考书,同时也是一本软件调试和漏洞发掘方面很好的入门教材。这本书的作者从调试器的底层工作原理讲起,一路带你领略了Python在调试器、钩子、代码注入、fuzzing、反汇编器和模拟器中的应用,涵盖了软件调试和漏洞发掘中的各个方面,使你在循序渐进中了解这一研究领域目前最新研究成果的大略。
本书译者的翻译也很到位。不客气地说,不少好书是被糟糕的翻译耽误掉的。比如我在读大学时的一本中文版的参考书,我看了三遍没明白是怎么回事,后来想起老师推荐时用的是英文版,于是试着去图书馆借了本英文版,结果看一遍就明白了。不过这本书显然不属于此例。译者丁赟卿本来就是从事这一领域研究的,对原文意思的理解非常到位,中文用词也十分贴切。特别是这本书的英文版中原本是存在一些错误的(包括一些代码),译者在中文版中竟然已经一一予以纠正了,从这一点上也可以看出译者在翻译过程中的认真细致。
我已经啰啰嗦嗦地讲了不少了,你还在等什么?还不快去账台付钱?
怎样设置win7的本地安全策略来防止黑客攻击
1、点击“开始”,在搜索框中输入“本地安全策略”,点击“本地安全策略”,就可以打开了。如图1所示
2、打开“本地安全策略”界面,点击“本地策略”——“安全选项”,找到“网络访问:可远程访问的注册表路径”和“网络访问:可远程访问的注册表路径和子路径”这两个选项。如图2所示
3、双击打开“网络访问:可远程访问的注册表路径”,删除“注册表路径”,点击“确定”。如图3所示
4、双击打开“网络访问:可远程访问的注册表路径和子路径”,删除“注册表路径”,点击“确定”。如图4所示
安装消息钩子是什么意思
安装一个钩子函数,用于在消息发送到目标窗口过程前将其截取。 该类型可以是一个系统级别的钩子或者线程级别的钩子。也就是通过安装“消息钩子”,可以窃取网络游戏玩家的账号密码,发送到黑客指定的远程服务器或邮箱,导致用户无法正常运行游戏
什么是钩子程序?c/c++如何实现?
钩子程序解释截获键盘和鼠标事件的程序。比如你要输入qq密码的时候,钩子程序就会记录你按键盘的哪个键,鼠标按了哪个键。。。然后,就获得了你的密码