Hook
zhou191954
这个作者很懒,什么都没留下…
展开
-
Hook :学习笔记
一、基本概念: 钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。 钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,转载 2012-10-08 23:10:24 · 444 阅读 · 0 评论 -
Hook : KeUserModeCallback用法详解
ring0调用ring3早已不是什么新鲜事,除了APC,我们知道还有KeUserModeCallback.其原型如下:代码:NTSTATUSKeUserModeCallback ( IN ULONG ApiNumber, IN PVOID InputBuffer, IN ULONG InputLength, OUT PVOID *OutputBuf转载 2013-09-30 01:04:22 · 2601 阅读 · 0 评论 -
Hook : N种内核注入DLL的思路及实现
内核注入,技术古老但很实用。现在部分RK趋向无进程,玩的是SYS+DLL,有的无文件,全部存在于内存中。可能有部分人会说:“都进内核了.什么不能干?”。是啊,要是内核中可以做包括R3上所有能做的事,软件开发商们也没必要做应用程序了。有时,我们确实需要R3程序去干驱动做起来很困难或者没必要驱动中去做的事,进程 / DLL是不错的选择,但进程目标太大,所以更多的同学趋向于注DLL。转载 2014-01-10 18:18:03 · 2196 阅读 · 0 评论 -
Hook :Inline Hook学习资料以及总结问题
1、简介 INLINE HOOK原理: Inline Hook通过硬编码的方式向内核API的内存空间(通常是开始的一段字节,且一般在第一个call之前,这么做是为了防止堆栈混乱)写入跳转语句,这样,该API只要被调用,程序就会跳转到我们的函数中来,我们在自己写的函数里需要完成3个任务: 1)重新调整当前堆栈。程序流程在刚刚跳转的时候转载 2013-04-03 06:36:54 · 1014 阅读 · 0 评论 -
Hook :HOOK API 原理深入剖析3 - Inline(监视任意函数)
前面已经写过两次inline hook的博文了,第一篇为:《C/C++ HOOK API(原理深入剖析之-LoadLibraryA)》,这篇博文的方法是通过修改任意函数的前面N个字节,实现跳转并进入到我们自定义的hook函数里,执行完毕我们的hook函数之后,再直接调用被hook的函数。第一篇的方法没有考虑多线程的情况,所以在多线程环境下会有问题。第二篇为:《 Inline HOOK API转载 2013-04-03 06:45:27 · 1283 阅读 · 0 评论 -
Hook :HOOK API 原理深入剖析2 - Inline(hot-patching)
记得在之前写过一篇hook api的文章(C/C++ HOOK API(原理深入剖析之-LoadLibraryA)),那篇文章主要原理是构造一块代码字节,将LoadLibraryA函数的前面16个字节给修改,然后跳转到自定义的函数中。要调用正常的函数时,又将其unHook,这样一来再一次调用中,有一次unhook和一次hook,操作显得过于频繁。而且hook与unhook当时设计成了thiscal转载 2013-04-03 06:44:26 · 896 阅读 · 0 评论 -
Hook :挂钩 NtResumeThread 实现全局Hook
挂钩一直是Hack 编程中永恒的主题,基本高级的Rootkit 程序多多少少都会使用Hook 技术。似乎Hook 都被讲烂了,不论是Ring3 的还是Ring0 的网上都有例子。Ring0 的毋庸置疑当然是全局的了,这里说说ring3 的全局hook。Ring 3 有Ring 3 的优势,稳定是压倒一切的,因此Mcafee 和其他一些商业的安全软件都还是使用了Ring3 的Hook 技转载 2013-08-21 22:58:46 · 3478 阅读 · 0 评论 -
Hook : SSDT Hook学习资料以及总结问题
SSDT hook 的一点 疑问->获取服务地址用一句话就搞定 了,还用写个函数用内联汇编?KeServiceDescriptorTable.ServiceTableBase[122] http://www.mengwuji.net/forum.php?mod=viewthread&tid=655Using SSDT HOOK To Hide Processes http://www.2转载 2014-07-23 14:15:54 · 944 阅读 · 0 评论 -
Hook : 使用PostThreadMessage在Win32线程间传递消息
PostThreadMessage的原型是这样的BOOL PostThreadMessage( DWORD idThread, UINT Msg, WPARAM wParam, LPARAM lParam);PostThreadMessage可以用于线程之间的异步通讯,因为它不用等待调用者返回,这也许是线程通讯中最简单的一种方法了。但是转载 2014-08-01 13:41:37 · 1183 阅读 · 0 评论 -
Hook : APC注入技术
/* 一: 异步过程调用: 每个线程都有自己的APC队列,往线程APC队列加入APC,在线程 下一次被调用的时候就会执行APC函数 二:注意: 1.APC被添加后,线程不会立即执行APC,只有当线程处于"可变等待状态"时,才会调用 2.以下五个函数能够使线程进入可变等待状态: SleepEx WaitForSi转载 2014-07-21 21:56:52 · 1494 阅读 · 0 评论 -
Hook :实例剖析
一、APIHOOK之dll部分 //////////////////////////////// APIHook_Dll.cpp ////////////////////////////////////////// ///////////////////////////转载 2012-10-08 23:11:25 · 566 阅读 · 0 评论 -
Hook :VC++消息钩子编程
一、消息钩子的概念1、基本概念 Windows应用程序是基于消息驱动的,任何线程只要注册窗口类都会有一个消息队列用于接收用户输入的消息和系统消息。为了拦截消息,Windows提出了钩子的概念。钩子(Hook)是Windows消息处理机制中的一个监视点,钩子提供一个回调函数。当在某个程序中安装钩子后,它将监视该程序的消息,在指定消息还没到达窗口之前钩子程序先捕获这个消息。这样就有机会对此转载 2013-05-11 22:02:30 · 1027 阅读 · 0 评论 -
Hook :突破Windows NT内核进程监视设置限制
监视进程创建和销毁,最常用的手段就是用 PsSetCreateProcessNotifyRoutine() 设置一个CALLBACK函数来完成。该函数的原形如下: VOID (*PCREATE_PROCESS_NOTIFY_ROUTINE) ( IN HANDLE ParentId, IN HANDLE Proce转载 2013-08-21 23:05:26 · 778 阅读 · 0 评论 -
Hook :Microsoft Detours 2.1简介
一、简介《Windows高级调试》第一章中提到了一个基于Microsoft Detours库的内存泄露检查工具LeakDiag。本文对这个库进行一些介绍。一句话来说,Detours是一个用来在二进制级别上对程序中的函数(Function)或者过程(Procedure)进行修改的工具库。一般我们将这种技术称为"Hook"。Detours的实现原理是将目标函数的前几个字节改为jmp指令转载 2013-08-28 23:19:41 · 1068 阅读 · 0 评论 -
Hook :HOOK API 原理深入剖析1 - LoadLibraryA
钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先转载 2013-04-03 06:39:58 · 1194 阅读 · 0 评论 -
Hook :挂钩Windows API
=====[ 1. 内容 ]=============================================1. 内容2. 介绍3. 挂钩方法 3.1 运行前挂钩 3.2 运行时挂钩 3.2.1 使用IAT挂钩本进程 3.2.2 改写入口点挂钩本进程 3.2.3 保存原始函数 3.2.4 挂钩其它进程 3转载 2013-08-21 22:59:43 · 1111 阅读 · 1 评论 -
Hook : SetThreadContext
目前windows下注入dll的技术大体上就是两种1:钩子 SetWindowsHook2:创建远程线程 CreateRemoteThread尽管都能实现远程注入dll,但都难逃杀毒软件的法眼,特别是 CreateRemoteThread一般都被杀毒软件监控的很牢,这里提供一个巧妙的方法能够利用目标进程(确切地说是线程)自己主动调用LoadLibrary装载dll.我们转载 2014-12-02 10:26:58 · 1550 阅读 · 0 评论