原创 Windows 驅動:獲取當前進程名

 這是一個比較簡單的問題,在 REGON 的源碼中可以找到實現的相關代碼,我只是把它們整理封裝了一下。 //// Process name max length: by bytes// (This value is 16 bytes in

原创 Windows 驅動: 消除核心內存的只讀保護

在很多機器上 SSDT 表是不可寫的,寫即導致機器無提示崩潰重啓。這是需要去除核心內存的寫保護:   //------------------------------------------------------------------

原创 Windows 驅動:獲取系統當前時間,生成格式字符串

可以按照以下步驟: 1. 用 KeQuerySystemTime() 獲得當前的 GMT System Time. 這是一個從 1601-01-01 以來的計數(單位是 100ns)。 2. 調用 ExSystemTimeToLoca

原创 Windows 驅動:向 DbgPrintf 一樣將調試信息輸出到文件

運用的技術跟應用層大體一致,倒是互斥的問題干擾我很久。已開始使用的是 FastMutex,但是它會提升 IRQL 到 APC_LEVEL,顯然寫文件的服務函數都只能跑在 PASSIVE_LEVEL 下,最後只好使用了 Event 。 示例

原创 C++ : 應用 RAII 技術在 Windows 下實現自動釋放鎖

或許大家很早就對函數多個出口時的釋放語句或解鎖語句感到萬分無奈而頭痛不已,但是這種情況從此將不再讓你煩惱!因爲你有了 —— RAII 技術!!RAII(Resource Acquisition Is Initialization 資源獲得

原创 C++:字節對齊(內存地址對齊)

一.什麼是字節對齊,爲什麼要對齊?     現代計算機中內存空間都是按照byte劃分的,從理論上講似乎對任何類型的變量的訪問可以從任何地址開始,但實際情況是在訪問特定類型變量的時候經常在特 定的內存地址訪問,這就需要各種類型數據按照一定的

原创 Windows 系統背景:Windows 啓動過程圖詳解

Windows啓動過程詳解     作者:劉暉   更新時間:2006-08-17   出處:個人電腦         我們每天都在和Windows打交道,很多人甚至可能在一天當中要面對多次Windows的啓動過程,可是你知道在Wind

原创 高精度時間計數

 開發對戰平臺的時候,需要獲取並計算ping值。這時候GetTickCount就顯得精度不夠了,很多時候得到的ping值是0。所以有了下面這個函數: static DWORD GetTimeCount() {  static bool i

原创 如何管理時間?

如何管理時間?(重要的事,指的是重要並且影響深遠的事。) 第一流程:1,蒐集:把你一段時間的使用情況,統計出來。如果你有祕書,那祕書是做這件事情的最佳人選。2,分析:哪些時間用在了不必做的事情上,哪些事情是應該委派他人代替你做的。3,管理

原创 鎖無關的(Lock-Free)數據結構,在避免死鎖的同時確保線程繼續

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////C/C++

原创 生產者消費者模型與雙緩衝隊列

 傳統隊列是生產者線程和消費者線程從同一個隊列中存取數據,必然需要互斥訪問,在互相同步等待中浪費了寶貴的時間,使隊列吞吐量受影響。雙緩衝隊使用兩個隊列,將讀寫分離,一個隊列專門用來讀,另一個專門用來寫,當讀隊列空或寫隊列滿時將兩個隊列互換

原创 Windows 內核驅動:A more stable way to locate real KiServiceTable

By: 90210 Tan Chew Keong in his Win2K/XP SDT Restore 0.1 uses a simple way to find changed SDT entries - he just compa

原创 Windows 界面:具有“刪除元素”和“按列進行字符比較排序”的 CListCtrol 繼承類 CListCtrolEx 的實現

1,頭文件實現: #if !defined(AFX_LISTCTRLEX_H__FD8138BA_775E_4491_ACCA_B5265EC70DBC__INCLUDED_)#define AFX_LISTCTRLEX_H__FD813

原创 Windows 系統背景:IPC$ 資料

一 嘮叨一下:網上關於ipc$入侵的文章可謂多如牛毛,而且也不乏優秀之作,攻擊步驟甚至可以說已經成爲經典的模式,因此也沒人願意再把這已經成爲定式的東西拿出來擺弄.不過話雖這樣說,但我個人認爲這些文章講解的並

原创 我的開發履歷:FAST-REPORT 報表工具接口封裝.2006.8

項目描述:將 FAST-REPORT 報表工具的 COM 接口封裝爲 VC/MFC 可用的靜態庫類接口。難點在於該報表工具不能支持 UNICODE 字符顯示,而封裝後的接口必需提供表格數據 UNICODE 字符顯示支持。 這個也是我剛剛進