08 2009 档案

摘要: 一个进程在其生命周期内可能会打开很多个内核对象,这些对象需要得到很好的管理才能保证效率。NT内核使用Table来保存这些打开对象,该Table的指针存放在EPROCESS->ObjectTable里。gussing.cnblogs.com当我们访问ObjectTable时,需要确定的有两个信息:Table地址和表的级数。Object Table并不总是一个巨大而平坦的线性列表,因为有时候内核...阅读全文
posted @ 2009-08-30 16:30 gussing 阅读(354) | 评论 (0) 编辑
摘要: 有那么一段时间,“对象”基本上是当时IT届最流行的词语,无论什么东西都要搭上“对象”的概念才够体面。NT核就诞生在那个年代,所以在其设计概念中有“内核对象”这么一个牛逼的物件。几乎所有的windows内核组件,包括进程,线程,文件,设备等都属于内核对象,它们有一组共有的数据以及几个函数指针以提供抽象的访问,基本上c语言要玩&l...阅读全文
posted @ 2009-08-22 19:53 gussing 阅读(363) | 评论 (0) 编辑
摘要: ntoskrnl.exe导出了很多内核例程供驱动开发人员方便的使用,它也隐藏了很多很强大的历程,防止驱动开发人员过于方便的用它们。比如PspExitThread,这个函数没什么特别的,但配合APC使用它就能杀死绝大多数的进程,包括一些杀毒软件在内。gussing.cnblogs.com 那么如何才能找到这些未导出的函数并使用它们呢?答案就是反汇编,借助强大的windbg,加上一点点汇编基础,操作系...阅读全文
posted @ 2009-08-18 14:35 gussing 阅读(625) | 评论 (1) 编辑
摘要: PsTerminateProcess函数用于结束一个进程,其声明如下 NTSTATUS NTAPI PsTerminateProcess(IN PEPROCESS Process, IN NTSTATUS ExitStatus) 其中第一个参数是PEPROCESS的指针,如果你只知道pid,可以通过PsLookupProcessByProcessId 获得,而第二个参数指定退出状态码。 Ps...阅读全文
posted @ 2009-08-11 17:44 gussing 阅读(421) | 评论 (0) 编辑