BSD ROOTKIT 设计--内核黑客指引书(第3章)

2009-05-13 11:54:38来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

3直接
[url=javascript:;]内核[/url]
对象操作
3.1 内核队列数据结构
    3.1.1 宏 LIST_HEAD
    3.1.2 宏 LIST_HEAD_INITIALIZER
    3.1.3 宏 LIST_ENTRY
    3.1.4 宏 LIST_FOREACH
    3.1.5 宏 LIST_REMOVE
3.2 同步问题
    3.2.1 函数 mtx_lock
    3.2.2 函数 mtx_unlock
    3.2.3 函数 sx_slock 和 sx_xlock
    3.2.4 函数 sx_sunlock 和 sx_xunlock
3.3 隐藏运行进程
    3.3.1 proc
[url=javascript:;]结构体[/url]
    3.3.2 allproc 链表
    3.3.3 示例
3.4 Hiding a Running Process Redux
    3.4.1 hashinit 函数
    3.4.2 pidhashtbl
    3.4.3 pfind 函数
    3.4.4 示例
3.5 DKOM 隐藏法
3.6 隐藏基于TCP的开放端口
    3.6.1 inpcb 结构
    3.6.2 tcbinfo.listhead 链表
    3.6.3 示例
3.7 内核数据的破坏
3.8 小结
3
DIRECT
[url=javascript:;]KERNEL[/url]
OBJECT MANIPULATION
直接内核对象操作
All
operating systems store internal recordkeeping data within main memory,
usually as objects—that is, structures, queues, and the like. Whenever
you ask the kernel for a list of running processes, open
[url=javascript:;]ports[/url]
,
and so on, this data is parsed and returned. Because this data is
stored in main memory, it can be manipulated directly; there is no need
to install a call hook to redirect control flow. This technique is
commonly referred to as Direct Kernel Object Manipulation (DKOM)
(Hoglund and Butler, 2005).
所有的操作系统都把内部的记录数据通常作为对象--也就是结构体,队列等,保存在
[url=javascript:;]内存[/url]
中。每当你向内核查询运行进程的列表,开放的端口等时,这些数据就被解析并返回。因为这些数据是保存在内存中的,所以可以直接去操作它们;没必要
[url=javascript:;]安装[/url]
一个调用挂钩来改变控制流。这个技术通常叫做直接内核对象操作(DKOM) (Hoglund and Butler, 2005)。
Before I get into this topic, however, let’s look at how kernel data is stored in a
[url=javascript:;]FreeBSD[/url]
system.
但是,在进入这个主题前,我们看看FreeBSD系统是如何存储内核数据的。
3.1 Kernel Queue Data Structures
3.1 内核队列数据结构
In
general, a lot of interesting information is stored as a queue data
structure (also known as a list) inside the kernel. One example is the
list of loaded linker files; another is the list of loaded kernel
[url=javascript:;]modules[/url]
.
The header file  defines four different types of
queue data structures: singly-linked lists, singly-linked tail queues,
doubly-linked lists, and doubly-linked tail queues. This file also
contains 61 macros for declaring and operating on these structures.

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:BSD ROOTKIT 设计--内核黑客指引书(第2章)

下一篇:BSD ROOTKIT 设计--内核黑客指引书(第4章)