摘要:
http://blog.csdn.net/whf727/article/details/2592267 随手写点自己碰到的问题。在写内核模式的驱动程序时,经常需要做的就是驱动程序和应用程序之间的通信。如应层程序和驱动程序之间共享事件来完成同步,事件可以有应用程序来创建然后将其句柄下发到驱动程序中,驱动程序进行引用等操作,就可以实现共享事件了。这里就不说这个了,主要说说驱动和应用程序之间的共享。 共享的方式有很多,我们在应用层编程时,也经常需要进程之间共享内存。可以用过SendMessage,文件映射等。也可以用dll来进行共享。用dll进行共享,大家应该知道#pragma data()这... 阅读全文
摘要:
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 ... 阅读全文
摘要:
http://nokyo.blogbus.com/logs/37850401.html第三部分:从进程句柄获取信息 在第二部分我们使用了一个前提:可以通过进程句柄得到PID等信息。 事实上这是可行的,这一部分我们就进行介绍。我这里使用的是炉子大虾的《API HOOK实现ring3的进程保护》一文中提到的方法。 炉子那篇文章里讲的很详细,这里只说下如何从进程句柄中获取信息吧,在NTDLL中有个函数可以帮助我们:Zw(Nt)QueryInformationProcess,下面是我在《The Undocumented Functions——Microsoft Windows NT/2000》一书中. 阅读全文
摘要:
http://nokyo.blogbus.com/logs/37787913.html 在ring3的API HOOK中,怎样迫使目标进程调用我们的傀儡DLL是我们非常重视的一个问题。在多数情况下,我们都喜欢使用CreateRemoteThread在目标进程中创建一个远程线程来迫使它加载我们的DLL。因为CreateRemoteThread的使用方法并不复杂,而且与其他方式相比,它可以称得上是一种相当“优雅”的做法。各种因素的汇集就导致了这种方法的泛滥,致使很多具备主动防御或行为监控的安全软件都加强了对这个函数的照顾。 最近在自己的毕业设计中也要用到这个功能,阻止一些简单地调用CreateR. 阅读全文