摘要: 转:http://blog.csdn.net/sanshao27/article/details/18883151. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标 LVS_LIST: 显示一列带有小图标的item LVS_REPORT: 显示item详细资料 直观的理解:windows资源管理器,“查看”标签下的“大图标,小图标,列表,详细资料”2. 设置listctrl 风格及扩展风格 LONG lStyle; lStyle = GetWindowLong(m_list.m_hWnd, GWL_STYLE);/ 阅读全文
posted @ 2014-01-28 14:31 himessage 阅读(633) 评论(0) 推荐(0) 编辑
摘要: http://hi.baidu.com/zapline/item/512059e3bd963ea9ce2d4f36kd> dg @fs P Si Gr Pr LoSel Base Limit Type l ze an es ng Flags---- -------- -------- ---------- - -- -- -- -- --------0030 ffdff000 00001fff Data RW 0 Bg Pg P Nl 00000c92kd> dt ffdff000 _kpcrn... 阅读全文
posted @ 2013-01-25 16:55 himessage 阅读(463) 评论(0) 推荐(0) 编辑
摘要: http://www.cnblogs.com/Tbit/archive/2010/09/16/1828442.html关于进程的枚举,以及查看进程信息,和查杀进程...等等..都是很古老的东西了,但是基础是改变不了的.首先看看关于进程的枚举吧,当前ark的驱动枚举进程,离不开V大的这个思路表(如下):killvxk的驱动查进程:1.native api获得进程表a2.通过activelist获得进程表b3.通过pspCidTable获得进程表c4.通过handletablelisthead获得进程表d5.通过csrss的handletable用2种方法枚举获得进程表e和f6.通过扫描当前进程的 阅读全文
posted @ 2013-01-25 13:13 himessage 阅读(721) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/yeook/article/details/6705225基于pspCidTable的进程检测技术文章作者:gz1x信息来源:邪恶八进制信息安全团队(www.eviloctal.com)一. pspCidTable概念及内核调试二. 获取pspCidTable的方法三. 几种进程检测方法的对比四. anti-pspCidTable技术及其他一. pspCidTable概念及内核调试-----------------------------------------------------pspCidTable是内核未导出的HANDLE_TALB... 阅读全文
posted @ 2013-01-25 13:13 himessage 阅读(2240) 评论(0) 推荐(0) 编辑
摘要: http://hi.baidu.com/hanjdud8606/item/7a970408a95acc843d42e27fNTSTATUS NTAPI ZwQuerySystemInformation( ULONG SystemInformationClass, PVOID SystemInformation, ULONG SystemInformationLength, PULONG ReturnLength); 第一个参数是一个枚举类型,传入的是你需要查询的信息的类型,如果你要查询进程的相关信息,则你需要传入SystemProcessesA... 阅读全文
posted @ 2013-01-25 10:50 himessage 阅读(2648) 评论(0) 推荐(1) 编辑
摘要: 标 题:【原创】内核态进程管理器Intercessor和实现细节作 者:greatcsk时 间:2007-09-05,20:20链 接:http://bbs.pediy.com/showthread.php?t=51157BLOG原文:http://www.csksoft.net/blog/post/Intercessor_taskmgr.html相关文件:已经修改下载地址下载地址:http://www.csksoft.net/Intercessor_report_src_bin.rar由于文件太大,无法作为附件提供,抱歉原理和核心驱动代码下载:ftp://FTP_Visitor:visito 阅读全文
posted @ 2013-01-25 10:24 himessage 阅读(1353) 评论(0) 推荐(0) 编辑
摘要: http://hi.baidu.com/escortmnm/item/c4e82fe219bb95a9cf2d4fd9在有网络的情况下用在线的MSDN帮助手册确实很方便,但是没有网络就没办法了,于是决定下载一个单机版的MSDN,找了一通发现了一个,于是下载,也顺利安装。但是在打开的时候遇到了一个很麻烦的事:导航已取消-“已取消到该网页的导航”,症状如下图所示:将这个地址复制到IE浏览器的地址栏打开要么就是无反应要么就是跟这个页面一样的提示“已取消到该网页的导航”。但是在MSDN文档浏览器的地址栏输入一个百度的地址却能打开:在网上搜索了很长时间,没有找到一个合适的答案。有说dll文件没有注册成功 阅读全文
posted @ 2013-01-23 15:37 himessage 阅读(541) 评论(0) 推荐(0) 编辑
摘要: http://hi.baidu.com/_achillis/item/8b33ead8ccac28ea3cc2cb17简单说,即调用第11号功能,枚举一下内核中已加载的模块。部分代码如下://功能号为11,先获取所需的缓冲区大小ZwQuerySystemInformation(SystemModuleInformation,NULL,0,&needlen);//申请内存ZwAllocateVirtualMemory(NtCurrentProcess(),(PVOID*)&pBuf,0,&needlen,MEM_COMMIT,PAGE_READWRITE);//再次调用Z 阅读全文
posted @ 2013-01-22 20:36 himessage 阅读(4276) 评论(0) 推荐(0) 编辑
摘要: http://welfear.blogspot.com/2009/02/tdi.html目录0 介绍0.1 TDI驱动作用0.2 Windows NT网络总体结构1. 过滤设备1.1 绑定目标1.2 分发函数1.3 过滤地址1.4 过滤内容1.4.1 过滤HTTP1.4.2 过滤DNS2. VISTA网络结构3. 驱动代码分析3.1 主要数据结构分析3.2 主要算法分析4. 附属内容4.1 HTTP协议GET请求数据4.2 HTTP协议POST请求数据0. 介绍0.1 TDI驱动作用TDI协议驱动主要应用于版本号在nt4至nt5之间的操作系统,本文档对TDI驱动的分析主要参考nt4所提供的TD 阅读全文
posted @ 2013-01-15 13:31 himessage 阅读(3275) 评论(0) 推荐(0) 编辑
摘要: http://blog.sina.com.cn/s/blog_539dee350100nekw.html TDI驱动在内核模式下工作,本来想写一个TDI的过滤驱动,主要过滤TDI_SEND和TDI_RECEIVE包,TDI_SEND部分很容易写,通过双机调试,很快就找到了数据位置,不过这一点并不是那么显而易见,我在网上找过的资料就没有一处说明了数据的具体位置,不知道那些人怎么想的,而微软的ddk资料上对irp是不完全文档说明,省略了很多关键部位的说明。TDI_RECEIVE颇费手脚,我在TDI_RECEIVE处下断,一直都等不到返回的数据,折腾了两天,查了很多资料,后来才恍然大悟,我下断的地. 阅读全文
posted @ 2013-01-15 13:17 himessage 阅读(883) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/charlesprince/article/details/5924376 TDI FILTER 过滤驱动的功能一般用来进行整个系统中的所有网络流量的分析,记录和管理,可以实现非常强大的管理功能,这里就将讨论它的设计架构,和具体实现的方法。 进行系统级网络数据包的过滤,很明显,第一步需要在系统内核中截取到网络数据包,那么在WINDOWS平台下,应该如何实现这样的功能? 在WINDOWS内核中,数据的通信载体是IRP包,如果希望截取到IRP数据包,当然必须生成核模块以驱动的方式加载至内核之中。如果只是需要用来进行IRP数据包的截取,进而进行... 阅读全文
posted @ 2013-01-15 11:18 himessage 阅读(5509) 评论(1) 推荐(1) 编辑
摘要: http://hi.baidu.com/combojiang/item/fe7ee5147f64a621f6625c0e步骤8:关闭句柄这个函数被两个句柄调用,传输句柄和上下文句柄。NTSTATUS TdiFuncs_CloseTdiOpenHandle(HANDLE hTdiHandle, PFILE_OBJECT pfoTdiFileObject){ NTSTATUS NtStatus = STATUS_SUCCESS; /* * De-Reference the FILE_OBJECT and Close The Handle */ ObDereferenceObject(pfoTdiF 阅读全文
posted @ 2013-01-15 11:10 himessage 阅读(713) 评论(0) 推荐(0) 编辑
摘要: http://hi.baidu.com/combojiang/item/d0287ca509180ddf5bf19132同样的使用TDI_RECEIVE来完成数据接收。然而我们却没有用它来实现。实际上,如果你注意到,你可以创建回调来通知你数据或者其他事件什么时候到达。这就是我们所做的。我实现了一个API包装函数来创建任意的事件句柄。如下:NTSTATUS TdiFuncs_SetEventHandler(PFILE_OBJECT pfoTdiFileObject, LONG InEventType, PVOID InEventHandler, PVOID InEventContext){ NT 阅读全文
posted @ 2013-01-15 11:09 himessage 阅读(670) 评论(0) 推荐(0) 编辑
摘要: http://hi.baidu.com/combojiang/item/edb1fb995490c48d5814610e步骤6:断开连接这里没有特别的,就是实现TDI_DISCONNECT IOCTL来断开连接。NTSTATUS TdiFuncs_Disconnect(PFILE_OBJECT pfoConnection){ NTSTATUS NtStatus = STATUS_INSUFFICIENT_RESOURCES; PIRP pIrp; IO_STATUS_BLOCK IoStatusBlock = {0}; PDEVICE_OBJECT pTdiDevice; TDI_CONNEC 阅读全文
posted @ 2013-01-15 11:09 himessage 阅读(362) 评论(0) 推荐(0) 编辑
摘要: http://hi.baidu.com/combojiang/item/07a100ef4662a0225a2d640e步骤5:发送和接收数据为了发送数据,你只需创建一个TDI_SEND IOCTL,然后把它传送给传输设备。下面的代码实现了数据发送。NTSTATUS TdiFuncs_Send(PFILE_OBJECT pfoConnection, PVOID pData, UINT uiSendLength, UINT *pDataSent){ NTSTATUS NtStatus = STATUS_INSUFFICIENT_RESOURCES; PIRP pIrp; IO_STATUS_BL 阅读全文
posted @ 2013-01-15 11:08 himessage 阅读(537) 评论(0) 推荐(0) 编辑
摘要: http://hi.baidu.com/combojiang/item/623461f6f690a6b031c19932接上步骤4:连接创建一个TCP连接的客户端,我们需要连接。NTSTATUS TdiFuncs_Connect(PFILE_OBJECT pfoConnection, UINT uiAddress, USHORT uiPort){ NTSTATUS NtStatus = STATUS_INSUFFICIENT_RESOURCES; PIRP pIrp; IO_STATUS_BLOCK IoStatusBlock = {0}; PDEVICE_OBJECT pTdiDevice; 阅读全文
posted @ 2013-01-15 11:08 himessage 阅读(350) 评论(0) 推荐(0) 编辑
摘要: http://hi.baidu.com/combojiang/item/778f34ad3c88e9ac29ce9d32接上步骤2:打开连接上下文第二步是打开连接上下文。在你建立的连接中,执行后续的操作会用到这个句柄。这也是由ZwCreateFile完成,也是在相同的设备"\Device\Tcp"上执行。实际上这个设备允许你打开三个不同的句柄。这三个句柄是传输句柄,连接上下文句柄和控制句柄。需要注意一个常犯的错误的是,一个句柄打开成功,但实际上确是一个错误打开的句柄。这是由于他们是由"Extended Attributes"来决定打开哪个句柄的。显然,如 阅读全文
posted @ 2013-01-15 11:08 himessage 阅读(877) 评论(0) 推荐(0) 编辑
摘要: http://hi.baidu.com/combojiang/item/e0e610dcfce00413e0f46f0e接上:传输设备接口 前面socket知识的了解是为了让你对TDI API做好准备。传输设备接口是一组用于驱动中, 与传输协议驱动通讯的API. 就像TCP。传输驱动实现了这组API,所以你的驱动能够与它通讯。 这比socket的使用多少有些复杂。MSDN上的文档资料会让你更加迷惑,而不是有帮助。所以我们将一步一步地建立一个客户端连接。一旦你理解了这个,你就能够使用这些API来执行其他的操作,例如创建一个服务端等等。体系结构 下图描述了TDI/NDIS的关系。通常,TDI... 阅读全文
posted @ 2013-01-15 11:01 himessage 阅读(1363) 评论(0) 推荐(0) 编辑
摘要: http://hi.baidu.com/combojiang/item/635f7c0d3b3c2b14addc700e理论: 本篇的题目有点容易让人误解。出于演示目的,我们写一个TDI客户端,但这并不是我们本篇的目的所在。本篇意在进一步探究怎样处理irp和怎样与之交互。本篇将会介绍怎样排队和处理要取消的IRP. 本篇真正的题目应该是“IRP处理介绍“,然而它不是一个非常引人注意的名字。并且我们的这个题目并不完全是一个谎言,因为我们会把TDI客户端驱动作为一个演示实现。所以我们不得不介绍一下这部分的实现。这个例子是一个非常简单的客户端/服务器通讯的程序,我们将通过它来揭示IRP的处理。套接字. 阅读全文
posted @ 2013-01-15 10:49 himessage 阅读(844) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/whf727/article/details/2592267 随手写点自己碰到的问题。在写内核模式的驱动程序时,经常需要做的就是驱动程序和应用程序之间的通信。如应层程序和驱动程序之间共享事件来完成同步,事件可以有应用程序来创建然后将其句柄下发到驱动程序中,驱动程序进行引用等操作,就可以实现共享事件了。这里就不说这个了,主要说说驱动和应用程序之间的共享。 共享的方式有很多,我们在应用层编程时,也经常需要进程之间共享内存。可以用过SendMessage,文件映射等。也可以用dll来进行共享。用dll进行共享,大家应该知道#pragma data()这... 阅读全文
posted @ 2013-01-08 16:15 himessage 阅读(609) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/yiyefangzhou24/article/details/6242459 从所周知,在Windows NT/2000系统的API黑洞之一便是NTDLL.DLL,此DLL包含了许多未公开的API函数。本文将列举一、二,并以如何获取任何指定进程的父进程ID为例作为示范。 NTDLL.DLL中有一个函数叫NtQueryInformationProcess,用它可以将指定类型的进程信息拷贝到某个缓冲。其原型如下:NTSYSAPI NTSTATUS NTAPI NtQueryInformationProcess ( IN HANDLE ... 阅读全文
posted @ 2013-01-08 10:33 himessage 阅读(7217) 评论(0) 推荐(0) 编辑
摘要: http://nokyo.blogbus.com/logs/37850401.html第三部分:从进程句柄获取信息 在第二部分我们使用了一个前提:可以通过进程句柄得到PID等信息。 事实上这是可行的,这一部分我们就进行介绍。我这里使用的是炉子大虾的《API HOOK实现ring3的进程保护》一文中提到的方法。 炉子那篇文章里讲的很详细,这里只说下如何从进程句柄中获取信息吧,在NTDLL中有个函数可以帮助我们:Zw(Nt)QueryInformationProcess,下面是我在《The Undocumented Functions——Microsoft Windows NT/2000》一书中. 阅读全文
posted @ 2013-01-08 09:51 himessage 阅读(859) 评论(0) 推荐(0) 编辑
摘要: http://nokyo.blogbus.com/logs/37787913.html 在ring3的API HOOK中,怎样迫使目标进程调用我们的傀儡DLL是我们非常重视的一个问题。在多数情况下,我们都喜欢使用CreateRemoteThread在目标进程中创建一个远程线程来迫使它加载我们的DLL。因为CreateRemoteThread的使用方法并不复杂,而且与其他方式相比,它可以称得上是一种相当“优雅”的做法。各种因素的汇集就导致了这种方法的泛滥,致使很多具备主动防御或行为监控的安全软件都加强了对这个函数的照顾。 最近在自己的毕业设计中也要用到这个功能,阻止一些简单地调用CreateR. 阅读全文
posted @ 2013-01-08 09:50 himessage 阅读(1051) 评论(0) 推荐(0) 编辑
摘要: http://www.skyfishes.com/vc/ntcreateuserprocess/ 最近有个程序需要修改子进程的父进程来达到隐藏自身的效果,本来Hook NtCreateProcessEx简单搞定,结果发现Win7下断不下来 果断谷歌,发现Vista之后CreateProcess不再经过NtCreateProcessEx,而是调用NtCreateUserProcess进入内核,进行文件的映射等操作 赶紧来记下NtCreateUserProcess参数,好不容易才找到的typedef struct _NT_PROC_THREAD_ATTRIBUTE_ENTRY { UL... 阅读全文
posted @ 2013-01-07 10:45 himessage 阅读(6485) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/rubyzhudragon/article/details/4342734 要先使用函数CreateFileMapping来创建一个想共享的文件数据句柄,然后使用MapViewOfFile来获取共享的内存地址,然后使用OpenFileMapping函数在另一个进程里打开共享文件的名称,这样就可以实现不同的进程共享数据void FileMapping(void){ //打开共享的文件对象。 m_hMapFile = OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE,_T("TestF... 阅读全文
posted @ 2013-01-07 09:43 himessage 阅读(14939) 评论(0) 推荐(1) 编辑
摘要: http://hi.baidu.com/charme000/item/23945ecdb49926d2964452a1原型:NTSTATUS ZwCreateSection( OUT PHANDLE SectionHandle, IN ACCESS_MASK DesiredAccess, IN POBJECT_ATTRIBUTES ObjectAttributes OPTIONAL, IN PLARGE_INTEGER MaximumSize OPTIONAL, IN ULONG SectionPageProtectio... 阅读全文
posted @ 2013-01-06 11:32 himessage 阅读(9141) 评论(0) 推荐(1) 编辑
摘要: http://blog.csdn.net/wowbell/article/details/6250766zwcreatection创建一个section_object,section_object代表一块能够共享的内存对象。一个进程能够用section_object 来与其他进程共享它的内存空间。section_object 提供进程映射文件到其内存空间的机制。共享内存区是可以用于进程间通信的。但是,离开进程间同步机制,它的效率就不会高,所以共享内存区单独使用并不是一种有效的进程间通信机制。使用的方法是:先以双方约定的名字创建一个Section对象,各自加以打开,再各自将其映射到自己的用户空间 阅读全文
posted @ 2013-01-06 11:28 himessage 阅读(893) 评论(0) 推荐(0) 编辑
摘要: http://hongbin7698.blog.163.com/blog/static/595915952010112192949482/刚刚解决了EPROCESS、ETHREAD的硬编码查询问题,又遭遇了系统服务号的硬编码。刚找到方法如下。===环境:win7+windbg+livekd===0: kd> u ZwCreateProcessExnt!ZwCreateProcessEx:8427eff4 b850000000 mov eax,50h <---------注意啦,这个就是系统服务号的硬编码。8427eff9 8d542404 lea edx,[esp+4]8427ef 阅读全文
posted @ 2013-01-04 14:26 himessage 阅读(375) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/wuna66320/article/details/1926336VOID KeInitializeEvent(IN PRKEVENT Event, IN EVENT_TYPE Type, IN BOOLEAN State); Type : 事件类型,可以是 NotificationEvent 和 而SynchronizationEvent. NotificationEvent 等待一个IO操作完成.当一个NotificationEvent事件用KeSetEvent设置成信号状态时, 所有等待在... 阅读全文
posted @ 2012-12-28 11:25 himessage 阅读(869) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/namelcx/article/details/6834656http://www.cnblogs.com/guanlaiy/archive/2012/09/06/2673375.html一. MDL是什么 在MSDN中有这样的定义 内存描述符列表 (MDL) 是一个系统定义的结构,通过一系列物理地址描述缓冲区。执行直接 I/O 的驱动程序从 I/O 管理器接收一个 MDL 的指针,并通过 MDL 读写数据。一些驱动程序在执行直接 I/O 来满足设备 I/O 控制请求时也使用 MDL。 http://msdn.microsoft.com/zh-c... 阅读全文
posted @ 2012-12-28 11:08 himessage 阅读(1482) 评论(0) 推荐(0) 编辑
摘要: http://blog.sina.com.cn/s/blog_62a630640100gost.htmlNTSTATUS ObReferenceObjectByHandle( IN HANDLE Handle, IN ACCESS_MASK DesiredAccess, IN POBJECT_TYPE ObjectType, IN KPROCESSOR_MODE AccessMode, OUT PVOID *Object, OUT POBJECT_HANDLE_INFORMATION HandleInformation); 这个函数的目的是:根据提供的 H... 阅读全文
posted @ 2012-12-28 10:52 himessage 阅读(7829) 评论(0) 推荐(0) 编辑
摘要: http://blog.csdn.net/gis_wudi/article/details/6639739 DeviceIoControl这个api我们用的不多,但是很重要,有时会帮助我们实现一些特别的需求, 如获取硬件设备信息、与硬件设备通信(读写数据)等,对照msdn,下面我们详细解释一下这个api的用法(有什么错误再所难免,各位不吝指教啊)。 DeviceIoControl是用来控制我们指定设备的输入输出操作,使设备按照我们发的指令去工作。 DeviceIoControl是kernel32中的函数,需要包含的头文件是winbase.h,先看函数原型BOOL DeviceIoCont... 阅读全文
posted @ 2012-12-28 10:33 himessage 阅读(6199) 评论(0) 推荐(0) 编辑
摘要: http://bbs.pediy.com/showthread.php?t=150284这几天想了解下神秘的进程csrss,在学习和了解的过程中就写下了自己对csrss进程的理解。 Csrss(客户端/服务器运行时子系统)是Win32子系统的用户模式部分,在桌面管理、终端登录、控制台管理、错误报告报告和DOS虚拟机等方面起着重要作用,另外还监控着系统内所有Win32子系统进程和线程的运行,进程的创建与退出,都需要通知Csrss。图1是用内核工具xuetr观察Csrss进程加载的模块。(以下的分析环境为xpsp232位)图1 由图1中我们可以知道Csrss进程除了加载诸如Kernel32,n.. 阅读全文
posted @ 2012-12-27 10:46 himessage 阅读(1518) 评论(0) 推荐(0) 编辑
摘要: http://hi.baidu.com/_achillis/item/98003737be6760f2a9842817 今天写程序,用ZwQuerySystemInformation枚举系统中的文件句柄时出了问题,死活一个都找不到,可是这明显不可能啊?于是用Process Explorer随便找了个文件句柄对象,然后看了它的OBJECT_TYPE,才发现文件句柄的类型索引应为28,而我用的是炉子给的那个SYSTEM_HANDLE_TYPE表,里面给的值却是26!怪不得一个也找不到呢。于是,就花了点时间把这个类型索引给修正了一下,并且把几个UNKNOW的给补充了出来,以后用起来就方便了嘛~所谓. 阅读全文
posted @ 2012-12-27 10:06 himessage 阅读(1747) 评论(0) 推荐(0) 编辑
摘要: typedef struct _SYSTEM_HANDLE_INFORMATION{ ULONG ProcessId; UCHAR ObjectTypeNumber; UCHAR Flags; USHORT Handle; PVOID Object; ACCESS_MASK GrantedAccess;} SYSTEM_HANDLE_INFORMATION>请问ObjectTypeNumber这个值的定义,如0x1c代表什么,0x05又代表什么? 打开的对象的类型,0x05是偏移5 #define OB_TYPE_INDEX_TYPE 1 // [ObjT]... 阅读全文
posted @ 2012-12-27 10:00 himessage 阅读(1885) 评论(0) 推荐(0) 编辑
摘要: http://zhan.renren.com/aczordia?gid=3602888498030659745&checked=true该函数存在于NTDLL.DLL动态链接库中。NTDLL.DLL负责ring3与ring0之间的通信。当使用子系统方式进行系统调用的时候,ntdll.dll和SSDT会配合使用。关于SSDT技术以后会讲解到。关于ZwQuerySystemInformation这个函数可以用来查询进程信息、内核信息、硬件信息(例如CPU数目)、句柄信息、时间信息等54个系统信息。该函数的原型是NTSTATUS WINAPI ZwQuerySystemInformation 阅读全文
posted @ 2012-12-26 17:34 himessage 阅读(606) 评论(0) 推荐(0) 编辑
摘要: http://bbs.pediy.com/showthread.php?t=138747&highlight=inline+hookView Code 1 #include <ntddk.h> 2 //辛苦了几周的成果 3 4 5 typedef struct ServiceDescriptorEntry { 6 PVOID *ServiceTableBase; 7 ULONG *ServiceCounterTableBase; //Used only in checked build 8 ULONG NumberOfService; //... 阅读全文
posted @ 2012-12-21 17:19 himessage 阅读(858) 评论(0) 推荐(0) 编辑
摘要: http://www.cnblogs.com/gaozili/archive/2011/11/02/2233450.htmlkd> dd nt!KeServiceDescriptorTableShadow L88055a6c0 804e36a8 00000000 0000011c 80513eb88055a6d0 bf997600 00000000 0000029b bf998310 bf997600为KeServiceDescriptorTableShadow函数表起始地址。kd> dds bf997600 L0000029bbf997600 bf934ffe win32k!Nt 阅读全文
posted @ 2012-12-21 15:02 himessage 阅读(413) 评论(0) 推荐(0) 编辑
摘要: http://bbs.pediy.com/showthread.php?t=145687作 者: liukeblue通过挂钩KeUserModeCallback这个未公开的函数可以实现对Ke_LoadLibrary、WH_KEYBOARD_LL等进行拦截,这个函数也可以用来在Ring0下调用Ring3代码,如果需要更进一步了解,可以去黑月教主的百度blog上去看看。下面我们来实现拦截dll注入的功能,解决两个问题:一、 如何挂钩KeUserModeCallback函数,有两种方式IAT HOOK(QQ电脑管家)、inline HOOK(360保险箱)。二、 如何拦截DLL注入,这个功能在KeU 阅读全文
posted @ 2012-12-20 14:45 himessage 阅读(1849) 评论(0) 推荐(0) 编辑
摘要: http://www.cppblog.com/gezidan/archive/2011/08/08/152757.html// IATHook.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "IATHook.h"#include <windows.h> #include <imagehlp.h>#pragma comment(lib, "imagehlp.lib") #ifdef _ 阅读全文
posted @ 2012-12-20 11:18 himessage 阅读(529) 评论(0) 推荐(0) 编辑