本文将引领读者打造一个初级的内核级Rootkit,然后为其引入两种简单的隐形技术:进程隐形技术和文件隐形技术。同时,为了让读者获得rootkit编程的相关经验,我们顺便介绍了rootkit的装载、卸载 *** ,以及必不可少的测试技术。
本文介绍的Rootkit的主要构件是一个设备驱动程序,所以我们首先了解一下我们的之一个rootkit。
二、rootkit主体
本节引入一个简单的rootkit实例,它实际上只给出了rootkit的主体框架,换句话说,就是一个设备驱动程序。那么为什么要用设备驱动程序作为主体呢?很明显,因为在系统中,设备驱动程序和操作系统一样,都是程序中的特权阶级——它们运行于Ring0,有权访问系统中的所有代码和数据。还有一点需要说明的是,因为本例主要目的在于介绍rootkit是如何隐形的,所以并没有实现后门之类的具体功能,。
我们将以源代码的形式说明rootkit,对着重介绍一些重要的数据结构和函数。下面,先给出我们用到的之一个文件,它是一个头文件,名为Invisible.h,具体如下所示:
//Invisible.h:我们rootkit的头文件
#ifndef _INVISIBLE_H_
#define _INVISIBLE_H_
typedef BOOLEAN BOOL;
typedef unsigned long DWORD;
typedef DWORD* PDWORD;
typedef unsigned long ULONG;
typedef unsigned short WORD;
typedef unsigned char BYTE;
typedef struct _DRIVER_DATA
{
LIST_ENTRY listEntry;
DWORD unknown1;
DWORD unknown2;
DWORD unknown3;
DWORD unknown4;
DWORD unknown5;
DWORD unknown6;
DWORD unknown7;
UNICODE_STRING path;
UNICODE_STRING name;
} DRIVER_DATA;
#endif
我们知道,应用软件只要简单引用几个文件如stdio.h和windows.h,就能囊括大量的定义。但这种做法到了驱动程序这里就行不通了,原因大致有二条,一是驱动程序体积一般较为紧凑,二是驱动程序用途较为专一,用到的数据类型较少。因此,我们这里给出了一个头文件Invisible.h,其中定义了一些供我们的rootkit之用的数据类型。
这里定义的类型中,有一个数据类型要提一下:双字类型,它实际上是一个无符号长整型。此外,DRIVER_DATA是Windows 操作系统未公开的一个数据结构,其中含有分别指向设备驱动程序目录中上一个和下一个设备驱动程序的指针。而我们这里开发的rootkit恰好就是作为设备驱动程序来实现,所以,只要从设备驱动程序目录中将我们的rootkit(即驱动程序)所对应的目录项去掉,系统管理程序就看不到它了,从而实现了隐形。
3月11日信息,新浪微博认证新浪科技自由撰稿人@丁大大少爷曝料称:我国挪动企业的TD-SCDMA早已逐渐退网,并装有TDS停业整顿计划方案图一张。我就和大伙儿看一下是什么原因!从图上大家可以见到,如今...
本文导读目录: 1、这是什么动画 2、金球奖(美国年度电影和电视奖项)的历届获得者都有谁? 3、奥斯卡历届最佳影片是?? 4、圣安东尼奥的老流氓们,究竟偷偷干了哪些见不得人的 5、求9...
}考虑到相关信息的敏感性和特殊性,本陈述中和受害者相关的名字、邮箱、相片、文档等个人信息咱们将做含糊处理;涉及到的详细的方位,咱们将做扩大含糊处理;一起为防备进犯者使用揭露信息进行反情报,本陈述涉及到...
一、漏洞思路怎么找黑客 1、需网赌黑客这些人通常被称为白帽黑客或匿名客人Sneaker或红客。漏洞思路传奇辅助互联网上似乎有一个化妆网页,它将记录化妆师在各个地方的联系信息。需网赌黑客谁知道哪里有大多...
一、网上改绩点被抓怎么找黑客 1、接单黑客他们可以使用在线监视来突破同一网络中的其他主机,也可以通过IP欺骗和大型机信任来攻击其他主机。网上改绩点被抓内涵段子事实上,没有所谓的负担得起的贸易公司,只要...
从房似锦卖房的方式和过程来看,如果将她放在互联网公司里,她肯定是一名厉害的产品经理。为什么这么说,因为她身上具备了产品经理的典型特质。而这些特质,恰恰是我们做好产品所不可缺少的。 最近大火的《安家》...