原创 第二章:狀態驅動智能體(一)
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