原创 8.4 ProcessHeap

ProcessHeap 是Windows進程的默認堆,每個進程都有一個默認的堆,用於在進程地址空間中分配內存空間。默認情況下ProcessHeap由內核進行初始化,該堆中存在一個未公開的屬性,它被設置爲加載器爲進程分配的第一個堆的位置(進程

原创 8.3 NtGlobalFlag

NtGlobalFlag 是一個Windows內核全局標記,在Windows調試方案中經常用到。這個標記定義了一組系統的調試參數,包括啓用或禁用調試技術的開關、造成崩潰的錯誤代碼和處理方式等等。通過改變這個標記,可以在運行時設置和禁用不同的

原创 8.2 BeingDebugged

BeingDebugged 是Windows系統PEB結構體中的一個成員,它是一個標誌位,用於標識當前進程是否正在被調試。BeingDebugged的值爲0表示當前進程未被調試,值爲1表示當前進程正在被調試。由於BeingDebugged是

原创 7.7 實現進程內存讀寫

內存進程讀寫可以讓我們訪問其他進程的內存空間並讀取或修改其中的數據。這種技術通常用於各種調試工具、進程監控工具和反作弊系統等場景。在Windows系統中,內存進程讀寫可以通過一些API函數來實現,如OpenProcess、ReadProce

原创 8.1 TEB與PEB概述

在開始使用TEB/PEB獲取進程或線程ID之前,我想有必要解釋一下這兩個名詞,PEB指的是進程環境塊(Process Environment Block),用於存儲進程狀態信息和進程所需的各種數據。每個進程都有一個對應的PEB結構體。TEB

原创 7.6 實現進程掛起與恢復

掛起與恢復進程是指暫停或恢復進程的工作狀態,以達到一定的控制和管理效果。在 Windows 操作系統中,可以使用系統提供的函數實現進程的掛起和恢復,以達到對進程的控制和調度。需要注意,過度使用進程掛起/恢復操作可能會造成系統性能的降低,導致

原创 7.5 通過API判斷進程狀態

進程狀態的判斷包括驗證進程是否存在,實現方法是通過枚舉系統內的所有進程信息,並將該進程名通過CharLowerBuff轉換爲小寫,當轉換爲小寫模式後則就可以通過使用strcmp函數對比,如果發現繼承存在則返回該進程的PID信息,否則返回-1

原创 7.3 通過API枚舉進程

首先實現枚舉當前系統中所有進程信息,枚舉該進程的核心點在於使用CreateToolhelp32Snapshot()函數,該函數用於創建系統進程和線程快照,它可以捕獲當前系統中進程和線程相關的信息(如PID、線程數量、線程ID等),在對這些信

原创 7.4 通過API枚舉進程權限

GetTokenInformation 用於檢索進程或線程的令牌(Token)信息。Token是一個數據結構,其包含有關進程或線程的安全上下文,代表當前用戶或服務的安全標識符和權限信息。GetTokenInformation函數也可以用來獲

原创 7.1 實現進程內存塊枚舉

在Windows操作系統中,每個進程的虛擬地址空間都被劃分爲若干內存塊,每個內存塊都具有一些屬性,如內存大小、保護模式、類型等。這些屬性可以通過VirtualQueryEx函數查詢得到。 該函數可用於查詢進程虛擬地址空間中的內存信息的函數。

原创 7.2 通過API創建新進程

創建新的進程是Windows程序開發的重要部分,它可以用於實現許多功能,例如進程間通信、並行處理等。其中,常用的三種創建進程的方式分別是WinExec()、ShellExecute()和CreateProcessA(),這三種創建進程的方式

原创 6.2 Sunday搜索內存特徵

Sunday 算法是一種字符串搜索算法,由Daniel M.Sunday於1990年開發,該算法用於在較長的字符串中查找子字符串的位置。算法通過將要搜索的模式的字符與要搜索的字符串的字符進行比較,從模式的最左側位置開始。如果發現不匹配,則算

原创 6.1 KMP算法搜索機器碼

KMP算法是一種高效的字符串匹配算法,它的核心思想是利用已經匹配成功的子串前綴的信息,避免重複匹配,從而達到提高匹配效率的目的。KMP算法的核心是構建模式串的前綴數組Next,Next數組的意義是:當模式串中的某個字符與主串中的某個字符失配

原创 6.3 應用動態內存補丁

動態內存補丁可以理解爲在程序運行時動態地修改程序的內存,在某些時候某些應用程序會帶殼運行,而此類程序的機器碼只有在內存中被展開時纔可以被修改,而想要修改此類應用程序動態補丁將是一個不錯的選擇,動態補丁的原理是通過CreateProcess函

原创 5.2 磁盤CRC32完整性檢測

CRC校驗技術是用於檢測數據傳輸或存儲過程中是否出現了錯誤的一種方法,校驗算法可以通過計算應用與數據的循環冗餘校驗(CRC)檢驗值來檢測任何數據損壞。通過運用本校驗技術我們可以實現對特定內存區域以及磁盤文件進行完整性檢測,並以此來判定特定程