原创 由ObReferenceObject推導windows對象管理器
#define ObReferenceObject(Object) ObfReferenceObject(Object) LONG_PTR FASTCALL ObfReferenceObject ( __in PVOID Obj
原创 IoDeleteDevice源碼
WRK的IoDeleteDevice源碼 原本想解讀一下 IoDeleteDevice 但發現實際上會調用 IovDeleteDevice 但沒有找到IovDeleteDevice 相關的代碼 那就暫時擱置 回頭具體分析 VOID Io
原创 MySQL5.5綠色版1067
mysql的綠色安裝版,按照很多文章進行配置,會出現 配置文件裏面添加了 [client] default-character-set=utf8 [mysqld] default-character-set=utf8basedi
原创 windows內核編程 白話設備棧
在ntddk.h中定義了該函數原型: #if (NTDDI_VERSION >= NTDDI_WINXP) NTKERNELAPI NTSTATUS IoAttachDeviceToDeviceStackSafe( __in
原创 白話DeviceIoControl
調用的方法之一的DeviceIoControl 驅動層提供設備名 例如filedisk 在驅動層 首先先是註冊列表 用winObj查看 filedisk的驅動對象 但是 這八個對象時怎麼生成的呢? 我們在加
原创 NTFSI 目錄
最近準備讀《NTFSI》這本書, 做點小記錄。讀之前引用清代學者王鳴盛《十七史商榷》中的一段話 "凡讀書最切要者,目錄之學,目錄之明,方可讀書;不明,終是亂讀。" 所以大致把目錄翻譯一下,至少告訴自己一個方向。 當然因爲還
原创 DbgPrintEx KdPrintEx 如何輸出信息
詳細內容參看msdn: https://msdn.microsoft.com/en-us/library/ff551519%28v=vs.85%29.aspx
原创 windows內核情景分析 --- DPC 目的信令點編碼
關於DPC的 文章 留着備用 原文地址 http://www.doudouxitong.com/guzhang/xitongjiqiao/2014/0404/901.html DPC不同APC,DPC的全名是‘延遲過程調用’。
原创 白話IoSetCompletionRoutine
IoCopyCurrentIrpStackLocationToNext IoSetCompletionRoutine IoCallDriver 這三個函數一般關聯在一起,到底做了什麼呢? 先看
原创 Windows 文件過濾驅動經驗總結
原文地址 http://www.dnjsb.com/xitong/win-xp/7930.html 1、獲得文件全路徑以及判斷時機除在所有 IRP_MJ_XXX 之前自己從頭創建 IRP 發送到下層設備查詢全路徑外,不
原创 白話 StackCount StackSize CurrentLocation
先說結論 細節再補充 StackCount = StackSize StackCount 是 StackLocation的數目 StackSize 是 DeviceObjectStack的
原创 將博客搬至CSDN
博客搬家啦 CSDN 我來啦
原创 白話IoSkipCurrentIrpStackLocation
我們在IRP的Passthrough例程中會這樣處理放過的IRP <pre name="code" class="cpp">IoSkipCurrentIrpStackLocation( Irp ); return I
原创 驅動入門科普:從WRK理解IRP IRP Stack之理論篇
在網上找到一篇 AntBean寫的 《驅動入門科普:從WRK理解IRP IRP Stack之理論篇》特別好,所以摘抄下來。 由於網速問題 我把原文截取的圖片源碼替換成文字源碼。 寫這篇
原创 Thread Local Storage(TLS)
所謂的線程本地存儲(TLS),是指存儲在線程環境塊內的一個結構,用來存放該線程內獨享的數據。進程內的線程不能訪問不屬於自己的TLS,這就保證了TLS內的數據在線程內是全局共享的,而對於線程外卻是不可見的。 http://