原创 《Windows內核原理與實現筆記》(二)註冊表和配置管理器,事件追蹤,安全性管理

註冊表和配置管理器 Windows系統很多組件都是可以配置的,內核組建通常支持一些參數,甚至有些完全依賴於系統配置信息。例如I/O管理器和即插即用管理器在初始化階段根據系統設置來例句和加載設備驅動程序。Windows操作系統提供了一個稱爲

原创 《Windows內核原理與實現筆記》(五)Windows微內核中進程和線程的數據結構KTHREAD,KPROCESS

Windows中進程和線程的數據結構 Windows內核中的執行體層負責各種與管理和策略相關的功能,而內核層(或微內核)實現了操作系統的核心機制。進程和線程在這兩層上都有對應的數據結構。 內核層的進程和線程對象 首先看(微)內核層的數據結

原创 《反勒索軟件開發筆記》(三)導入表處理

DLL導出表處理 防止別人猜到函數功能,所以要對導出表函數名進行處理,一般就是使用宏定義代替函數名,然後後面使用宏定義代替原有函數名,如下: // 下列 ifdef 塊是創建使從 DLL 導出更簡單的 // 宏的標準方法。此 DLL 中

原创 Mac頭,ip頭,tcp頭簡介

MAC幀頭定義 MAC頭有14個字節,尾4個字節 typedef struct _MAC_FRAME_HEADER {  char m_cDstMacAddress[6];    //目的mac地址  char m_cSrcMacAdd

原创 《Windows內核原理與實現筆記》(四)Windows進程線程概念

進程概念 進程是各種資源的容器,它定義了一個地址空間作爲基本的執行環境;而線程是一個指令執行序列,它可以直接訪問所屬進程中的資源。每個進程都至少有一個線程,而每個線程在任一時刻都一定屬於某一特定的進程。 多進程模型 把時間細分,然後在某個

原创 《反勒索軟件開發筆記》(二)服務程序排錯技巧

服務程序排錯技巧 調試信息輸出 如 OutputDebugString 通常在開發或者測試使用。 行時日誌 考慮單日誌或者多日誌文件 異常捕獲 try expect 內嵌彙編,棧內存被覆蓋會沒用 異常捕獲 minidump 如 SetUn

原创 《第一行代碼筆記》目錄與日誌

andorid大致分爲:Linux內核層,系統運行庫層,應用框架層,應用層。 Linux內核層爲硬件提供底層驅動 系統運行庫層爲android提供主要特性支持如數據庫支持等,這層還有Android運行時庫,另外還有虛擬機也在這層。 應用框

原创 《Windows內核原理與實現筆記》(三)Windows引導過程

內核加載 在Intel x86系統上,Windows操作系統獲得控制首先從硬盤的主引導記錄(MBR,MasterBoot Record)開始,Windows Setup程序在安裝Windows時填充MBR(其他的磁盤管理程序也可能填充M

原创 IDC腳本編寫demo

爲了自動到被調試點,不用每次手動跟過去,所以使用腳本,下面是使用例子,以後的改改就好 // @file oci_test_on_vs2010.idc // @brief debug for oci_test_on_vs2010.exe

原创 關於IDA遠程調試linux的elf文件

前幾天遇到一個問題在分析代碼時,樣本是替換了Linux的命令文件,然後想要遠程調試虛擬機上的elf樣本,開始是用的Remote Linux debugger方式,結果attach時候報錯: The debugger could not

原创 ObReferenceObjectByHandle() 源代碼分析

首先代碼有兩篇文章閱讀後就懂得差不多了 https://blog.csdn.net/qq_21000273/article/details/53966150 https://bbs.pediy.com/thread-181544.htm

原创 signal信號

Linux中不同數值的signal有不同的含義,所包含的信息如下 #define SIG_ERR ((__sighandler_t) -1) /* Error return. */ #define SIG_DFL ((__sigha

原创 windows下進程間通信的方法

進程與進程通信 進程是裝入內存並準備執行的程序,每個進程都有私有的虛擬地址空間,由代碼、數據以及它可利用的系統資源(如文件、管道等)組成。多進程/多線程是Windows操作系統的一個基本特徵。Microsoft Win32應用編程接口(A

原创 Windows內核原理與實現讀書筆記(1)Windows系統結構

Windows內核結構 上圖是windows內核的組成結構 如圖Windows內核分三層,與硬件直接打交道的是硬件抽象層HAL,這一層把所有與硬件相關代碼邏輯隔離到一個專門模塊中,從而是上層儘可能獨立於硬件平臺。HAL是一個獨立動態鏈接

原创 編譯及動態調試WRK

剛開始用的vs各種不正確,最後使用先安裝windows server 2003,然後在裏面編譯wrk,成功。 將WRK源碼拷貝到windows虛擬機中,方法很多,我這邊是通過【文件夾共享】的方式把源碼放到C盤根目錄【C:\】 在虛擬機中,