原创 第二章:狀態驅動智能體(一)

    A finite state machine is a device, or a model of a device, which has a finite number of states it can be in at any

原创 通過PEB枚舉Kernel32.dll基址

kd> !process 0 0 **** NT ACTIVE PROCESS DUMP **** PROCESS fffffa801a89e060 SessionId: 1 Cid: 026c Peb: 7fffffd

原创 Centos7 安裝python3.6

yum install https://dl.iuscommunity.org/pub/ius/stable/CentOS/7/x86_64/ius-release-1.0-15.ius.centos7.noarch.rpm yum

原创 windbg雙機遠程調試

 1. 拷貝要調試的可執行文件和對應的PDB符號到虛擬機。  2. 在虛擬機中啓動服務端,有2種方式。`windbg.exe -server tcp:port=8888 C:\Test.exe` 這種方式

原创 Windbg 內核態調試用戶態程序

使用!process 0 0 進程名或ID得到EPROCESS 使用.process /p + EPROCESS切換到應用程序的地址空間 重新加載user PDB文件:.reload /f /user 使

原创 DPC

DeferredProcecure Call,延遲過程調用。是一種執行在任意線程上下文的DISPATCH_LEVEL層的可執行例程。硬件中斷使用他們處理來自設備的中斷。硬件驅動這樣做是因爲ISR通常運行在更高IRQLs(高於DISPATC

原创 C++中explicit關鍵字的作用

轉載自:http://www.cnblogs.com/winnersun/archive/2011/07/16/2108440.html explicit用來防止由構造函數定義的隱式轉換。 要明白它的作用,首先要了解隱式轉換:可以用單個實

原创 無法打開包括文件: corecrt.h: No such file or directory

INCLUDEPATH = "C:\Program Files (x86)\Windows Kits\10\Include\10.0.10586.0\ucrt"LIBS += -L"C:\Program

原创 HBITMAP另存爲JPEG/PNG/TIFF/GIF/BMP

BOOL GetEncoderClsid(const WCHAR* format, CLSID* pClsid) { UINT num = 0; UINT size = 0;

原创 A2W和W2A宏可能引起棧內存溢出

這兩個宏使用alloca在棧上分配內存,退出生命週期後纔會釋放所佔用的內存. 所以在一個函數的循環體中使用A2W等字符轉換宏可能引起棧溢出。 真想在循環中使用的話,這個宏用單獨的大括號包含起來,類似這樣 void fn() {

原创 ProcessHacker實現原理(一)

枚舉進程:調用NtQuerySystemInformation函數,第一個參數爲SystemProcessInformation(枚舉值 = 5),第二個參數返回類型SYSTEM_PROCESS_INFO

原创 靜態多態(模版模擬多態)的討論

說到面向對象特性之一“多態”,以我的水平已經說不出太多新意了。相信很多程序員代碼K多了,做夢都在“多態中”運行着。常規的多態是C++語義內置支持的一種特性,通過虛函數可以實現這個特性,爲了後面以示區別,我們姑且把這種多態稱爲“動態多態”或

原创 VS2015 使用微軟自帶的單元測試框架測試本地C++代碼的注意事項

如果測試類使用了預編譯頭文件的話,要在工程設置中添加stdafx.obj 測試STL容器時,會彈出異常錯誤對話框.解決辦法是忽略MSVCRT.lib 和UCRT.lib

原创 對象的責任與職責

對象和數據的主要差別就是對象有行爲,行爲可以看成責任職責(responsibilities以下簡稱職責)的一種,理解職責是實現好的OO設計的關鍵。“Understanding responsibilities is key to goo

原创 jad 反編譯文件夾下的所有class

jad -o -r -8 -dDestDirectory -sjava C:/Users/SrcDirectory/**/*.class 將 C:/Users/SrcDirectory目錄下的所有class文件按目錄結構反編譯到DestD