偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

利用Windows頁(yè)防護(hù)機(jī)制進(jìn)行函數(shù)掛鉤

系統(tǒng) Windows
在主函數(shù)內(nèi)部,聲明了一個(gè)變量old,但未被使用。 一個(gè)param變量被設(shè)置為5000,并調(diào)用AddVectoredExceptionHandler函數(shù)將處理程序函數(shù)注冊(cè)為異常處理程序。

摘要

Guard Pages是一種操作系統(tǒng)內(nèi)存保護(hù)機(jī)制,旨在檢測(cè)和防止對(duì)內(nèi)存的非法訪問(wèn)。在Windows操作系統(tǒng)中,Guard Pages通常被用作內(nèi)存頁(yè)的末尾,它們通常是未分配或不可訪問(wèn)的內(nèi)存頁(yè)。

當(dāng)程序試圖訪問(wèn)一個(gè)Guard Page時(shí),操作系統(tǒng)會(huì)檢測(cè)到這種訪問(wèn)并引發(fā)異常,通常是訪問(wèn)沖突異常(如訪問(wèn)違例異常)。這種異常的引發(fā)使得程序能夠及時(shí)檢測(cè)到內(nèi)存訪問(wèn)錯(cuò)誤,從而可以采取適當(dāng)?shù)拇胧?,例如終止程序或記錄錯(cuò)誤信息,以防止?jié)撛诘陌踩┒幢焕谩?/p>

在Windows Hooking中,利用Guard Pages可以用于檢測(cè)和攔截對(duì)特定內(nèi)存區(qū)域的訪問(wèn),從而實(shí)現(xiàn)對(duì)系統(tǒng)功能的修改或監(jiān)視。這種技術(shù)通常被用于軟件調(diào)試、安全研究和惡意軟件分析等領(lǐng)域。

實(shí)現(xiàn)過(guò)程

整體代碼如下:

#include <windows.h>
#include <stdio.h>

// Hook函數(shù)功能
HANDLE hook(LPSECURITY_ATTRIBUTES rcx, SIZE_T rdx, LPTHREAD_START_ROUTINE r8, LPVOID r9, DWORD stck1, LPDWORD stck2) {
    MessageBoxA(0, "CreateThread() was called!", "YAY!", 0);
    MessageBoxA(0, "Hooked CreateThread", "YAY!", 0);
    // 這里調(diào)用原始CreateThread函數(shù)
    //return CreateThread(rcx, rdx, r8, r9, stck1, stck2);
 return NULL;
}

LONG WINAPI handler(EXCEPTION_POINTERS * ExceptionInfo) {
 if (ExceptionInfo->ExceptionRecord->ExceptionCode == STATUS_GUARD_PAGE_VIOLATION) {
  if (ExceptionInfo->ContextRecord->Rip == (DWORD64) &CreateThread) {
   printf("[!] Exception (%#llx)!" , ExceptionInfo->ExceptionRecord->ExceptionAddress);
            printf("\nClick a key to continue...\n");
   getchar();
   ExceptionInfo->ContextRecord->Rip = (DWORD64) &hook;
            printf("Modified RIP Points to: %#llx\n", ExceptionInfo->ContextRecord->Rip);
            printf("Hook Function = %#llx\n", (DWORD64) &hook);
  }
  return EXCEPTION_CONTINUE_EXECUTION;
 }
 return EXCEPTION_CONTINUE_SEARCH;
}

int main() {
 DWORD old = 0;
    DWORD param = 5000;
 AddVectoredExceptionHandler(1, &handler);
 VirtualProtect(&CreateThread, 1, PAGE_EXECUTE_READ | PAGE_GUARD, &old);
 printf("CreateThread addr = %#p\n", &CreateThread);
 
 HANDLE hThread = CreateThread(0, 0, (LPTHREAD_START_ROUTINE) &Sleep, ?m, 0, 0);
 WaitForSingleObject(hThread, param);
 printf("YEP!\n");
    
 return 0;
}

頭文件部分:

代碼從包含必要的頭文件開始,包括 <windows.h> 和 <stdio.h>,它們分別提供了Windows API和標(biāo)準(zhǔn)I/O操作的函數(shù)和定義。

Hook函數(shù):

定義了鉤子函數(shù)hook。這個(gè)函數(shù)旨在充當(dāng)CreateThread API函數(shù)的鉤子,該函數(shù)負(fù)責(zé)在Windows應(yīng)用程序中創(chuàng)建線程。 在鉤子函數(shù)內(nèi)部,顯示了兩個(gè)消息框,指示CreateThread函數(shù)已被調(diào)用,并且它已經(jīng)被這段代碼“hook”了。在這段代碼中,原始的CreateThread函數(shù)沒(méi)有被調(diào)用。

異常處理

定義了一個(gè)處理函數(shù), 并使用AddVectoredExceptionHandler將其設(shè)置為異常處理程序, 這個(gè)函數(shù)被設(shè)計(jì)用來(lái)處理異常,特別是STATUS_GUARD_PAGE_VIOLATION,這是一種在受保護(hù)的內(nèi)存頁(yè)上嘗試執(zhí)行代碼時(shí)發(fā)生的異常。 如果異常代碼是STATUS_GUARD_PAGE_VIOLATION,并且指令指針(Rip)指向CreateThread函數(shù),它會(huì)顯示一條消息,并修改Rip指向鉤子函數(shù)。 任何嘗試調(diào)用執(zhí)行CreateThread函數(shù)的操作都將被重定向到執(zhí)行鉤子函數(shù)。

主函數(shù)

在主函數(shù)內(nèi)部,聲明了一個(gè)變量old,但未被使用。 一個(gè)param變量被設(shè)置為5000,并調(diào)用AddVectoredExceptionHandler函數(shù)將處理程序函數(shù)注冊(cè)為異常處理程序。 使用VirtualProtect在CreateThread函數(shù)上設(shè)置了一個(gè)守衛(wèi)頁(yè)面。如果嘗試執(zhí)行它,這將觸發(fā)處理程序函數(shù)。 使用printf顯示了CreateThread函數(shù)的地址。 使用CreateThread創(chuàng)建了一個(gè)新線程,但似乎并沒(méi)有提供任何實(shí)際目的,因?yàn)樵摼€程只是休眠了5000毫秒。 等待線程結(jié)束后,打印“YEP!”。

測(cè)試

將代碼編譯后執(zhí)行,效果如下:

圖片圖片

責(zé)任編輯:武曉燕 來(lái)源: 二進(jìn)制空間安全
相關(guān)推薦

2013-04-26 09:45:35

2021-10-17 15:51:20

FIN7Windows 11黑客

2015-09-28 14:12:36

2013-04-11 16:30:59

2011-07-11 17:00:07

Windows Vis控制臺(tái)MMC

2022-05-21 23:33:54

DDoS網(wǎng)絡(luò)安全負(fù)載均衡器

2022-05-26 08:31:41

分層機(jī)制優(yōu)化

2014-05-13 14:27:55

2022-05-27 08:16:35

端點(diǎn)安全人工智能網(wǎng)絡(luò)安全

2010-09-26 16:19:18

2017-06-28 08:06:48

2018-10-10 05:12:35

2015-01-20 09:35:52

2010-02-02 10:04:58

2014-06-20 14:07:49

2011-03-04 09:09:07

BlueJ

2014-03-31 10:51:40

pythonasyncio

2017-08-16 10:12:10

CNN網(wǎng)絡(luò)數(shù)據(jù)

2009-06-15 17:45:20

LINQ分組統(tǒng)計(jì)

2014-11-18 09:35:14

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)