原创 StartIO/CancelIO

     驅動程序中的StartIO,CancelIO比較複雜,也很可能出錯。翻了一下WDK,刪除了一些無關緊要的code,貼在這裏方便以後查閱: BOOLEAN IoCancelIrp(     IN PIRP Irp     ) {

原创 終於來書了!!

     十分敬佩毛德操老師,花重金買了他的《Windows內核情景分析》,發誓一定要好好研讀,絕不浪費!!~~   心無雜念、心如止水…… 阿彌陀佛~~

原创 複雜的中斷系統

沒想到在我們的computer中,整個中斷系統是那麼複雜……一時消化不了,等以後有時間慢慢咀嚼! 先寫一點點點: PIC:一般是2個8259A聯級 APIC:分爲Local APIC”(LAPIC)和“I/O APIC”(IOAPIC)。

原创 Windows APC機制(一)

      異步過程調用(APCs) 是NT異步處理體系結構中的一個基礎部分,理解了它,對於瞭解NT怎樣操作和執行幾個核心的系統操作很有幫助。1) APCs允許用戶程序和系統元件在一個進程的地址空間內某個線程的上下文中執行代碼。2) I/

原创 MmGetPageOp圖示

  好看,哈哈……

原创 物理學全明星

原创 空間格局隨機化ASLR

1.     概述 在前面安全編碼實踐中我們介紹過GS編譯選項和緩存溢出,以及數據保護DEP。首先,緩存溢出的直接後果就是可能導致惡意代碼的遠程執行,於是編譯器提供了GS保護。但是,GS選項有自身的侷限,存在若干方法可以繞過GS選項的保護

原创 Subversion(SVN)使用

Subversion典型的工作週期是這樣的:   更新你的工作拷貝   svn update   做出修改   svn add   svn delete   svn copy   svn move   檢驗修改   svn st

原创 JIT spray

找了一些JIT spray的資料,網上是這樣說的“利用JIT在內存中製造可控可執行代碼這個思路的確很有創造性。其意義不亞於Heap Spray,甚至可以和當年的JMP ESP相比較”,JIT spray好像是在黑帽大會上提出來的,據說可以

原创 一個禁止任何ring3調試的驅動

#include <ntddk.h> #define MAKELONG(low, high) \ ((ULONG)(((USHORT)((ULONG)(low) & 0xffff)) | ((ULONG)((USHORT)((ULONG

原创 檢測調試器(過StrongOD)

放碼(⊙_⊙)~~方法一: //GetCursorPos,WindowFromPoint POINT point; if (GetCursorPos(&point)) { char buf[256]

原创 認識4G地址空間的侷限----MMIO內存映射的問題

 一、4GB地址空間的侷限首先我們還必須要先了解兩個概念其一是“物理內存”。大家常說的物理內存就是指安裝在主板上的內存條,其實不然,在計算機的系統中,物理內存不僅包括裝在主板上的內存條(RAM),還應該包括主板BIOS芯片的ROM,顯卡上

原创 Emacs、cedet、ecb

最近在玩Emacs(windows下),總覺得不順心。按照http://bbs.chinaunix.net/viewthread.php?tid=1014134想玩玩cedet、ecb。emacs的啓動速度明顯變慢了,聽說編譯一下el的l

原创 Copy-On-Write機制,全局hook(二)

    如果仔細閱讀前一篇文章的話,就知道只要PTE的write(bit 1)位置1,就廢掉了Copy-On-Write機制(解釋一下,因爲不可能產生異常了嘛),爲了不影響系統的運行,我找了ntdll的文件頭(7c800000)做實驗:

原创 StrongOD hook的API

    好久沒寫東西了~~: >SSDT State NtClose Actual Address 0xF0389268 Hooked by: C:\OllyDBG\plugin\whlsod.sys NtCreateProcess Ac