• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            aurain
            技術文摘
            posts - 137,  comments - 268,  trackbacks - 0
            windows驅動
            介紹Windows驅動及其開發方面的知識
            IRP中I/O堆棧Parameters.Create參數      摘要: IRP中I/O堆棧Parameters.Create參數
            在IO_STACK_LOCATION結構體中,Parameters這個union其中有個Create結構體,對應IRP_MJ_CREATE,此IRP的分發函數處理應用層的CreateFile函數,
            CreateFile函數進入內核后是調用ZwCreateFile
            在ZwCreateFile中設置的一些參數,在Parameters.Create中可以獲取到。  閱讀全文
            posted @ 2011-09-01 15:27 水 閱讀(3705) | 評論 (0)  編輯
            UNICODE_STRING使用小提示      摘要: 使用UNICODE_STRING 時,一定要手動設置UNICODE_STRING 的Length和MaximumLength 成員,不要想當然的認為設置了Buffer后,Length和MaximumLength 成員就會根據Buffer被自動設置。由其是當自己寫的函數用UNICODE_STRING作為參數返回時,一定要設置Length和 MaximumLength 成員,不然很可能得到非預期結果。  閱讀全文
            posted @ 2011-08-22 10:16 水 閱讀(685) | 評論 (0)  編輯
            如何編譯TrueCrypt 7.0a源碼      摘要: 如何編譯TrueCrypt 7.0a源碼。TrueCrypt是一款開源的虛擬加密磁盤工具,目前最新版本是7.0a,本文以該版本源代碼為基礎,介紹了如何在VC2008下進行編譯。  閱讀全文
            posted @ 2010-11-01 19:12 水 閱讀(6381) | 評論 (29)  編輯
            通過向設備對象\Device\Tcp發送IOCTL Code枚舉通信端口      摘要: 在應用層,枚舉進程及其通信端口一般可以用iphlpapi.dll中提供的函數來獲取。如獲取Tcp連接,則調用GetTcpTable或者AllocateAndGetTcpTableFromStack來查詢。這些API都是通過調用NtDeviceIoControlFile這個NativeAPI來進入內核查詢信息的,如果在內核用SSDT Hook來掛鉤此函數,從而隱藏特定的IP、端口信息的話,那么在應用層,常規的查詢方法就查不到隱藏的端口了。
            本文通過直接向設備對象\Device\Tcp發送IOCTL Code=IOCTL_TCP_QUERY_INFORMATION_EX的命令,直接獲取進程,端口信息。本文也同時實現了UDP端口的查詢。
            具體請參考下面的代碼,使用WinDDK 6001.18001編譯。
              閱讀全文
            posted @ 2010-07-09 18:28 水 閱讀(6030) | 評論 (3)  編輯
            用ZwQueryVirtualMemory枚舉進程模塊      摘要: 枚舉進程模塊通常可以使用諸如:CreateToolhelp32Snapshot,Module32First,Module32Next 等"Tool Help Functions"接口來實現, 并且這也是最通用的方法(從Win95就開始支持了), 但是今天我們要介紹的是ntdll.dll導出的未文檔化接口ZwQueryVirtualMemory,。相比前面所介紹的方法,該方法可以檢測出隱藏的模塊(類似IceSword)。  閱讀全文
            posted @ 2010-07-05 16:32 水 閱讀(9590) | 評論 (3)  編輯
            Windows內核驅動中操作文件      摘要: 在Windows執行體中,通過文件對象來代表文件,該文件對象是一種由對象管理器管理的執行體對象。例如:目錄也是由文件對象代表的。

            內核組件通過對象名來引用文件,即在文件的全路徑前面加\DosDevices。(在Windows 2000及后續操作系統中,\??等同于\DosDevices)。例如,文件C:\WINDOWS\example.txt的對象名為\DosDevices\C:\WINDOWS\example.txt。你需要用對象名來打開文件以獲取句柄。

              閱讀全文
            posted @ 2009-12-31 15:27 水 閱讀(10263) | 評論 (1)  編輯
            詳解IRP之數據傳輸的機制      摘要: Windows 操作系統家族支持三種數據傳輸機制  閱讀全文
            posted @ 2009-09-27 13:50 水 閱讀(1577) | 評論 (0)  編輯
            中斷請求級(轉)      摘要: Windows NT為每個硬件中斷和少數軟件事件賦予了一個優先級,即中斷請求級(interrupt request level - IRQL)。IRQL為單CPU上的活動提供了同步方法,它基于下面規則:

            一旦某CPU執行在高于PASSIVE_LEVEL的IRQL上時,該CPU上的活動僅能被擁有更高IRQL的活動搶先。

              閱讀全文
            posted @ 2009-08-13 11:34 水 閱讀(1153) | 評論 (0)  編輯
            【轉】驅動和應用層的三種通信方式      摘要: 驅動程序和客戶應用程序經常需要進行數據交換,但我們知道驅動程序和客戶應用程序可能不在同一個地址空間,因此操作系統必須解決兩者之間的數據交換。
            驅動層和應用層通信,主要是靠DeviceIoControl函數  閱讀全文
            posted @ 2009-03-30 16:31 水 閱讀(4385) | 評論 (0)  編輯
            NDIS網絡驅動程序編程要點      摘要: 編寫Windows 2000的任何網絡驅動程序時通常都需要考慮的幾點問題
            1 可移植性
            2 多處理器支持
            3 IRQLs
            4 同步和指示
            5 包結構
            6 使用共享內存
            7 異步I/O和完成函數
              閱讀全文
            posted @ 2009-02-22 22:43 水 閱讀(4038) | 評論 (0)  編輯
            驅動編程中使用結構化異常處理(SEH)      摘要: 摘自《Windows驅動開發技術詳解》
            結構化異常處理(SHE, Structured Exception Handling)是微軟編譯器提供的獨特處理機制,這種處理方式能在一定程度上在出現錯誤的情況下,避免程序崩潰。先說明兩個概念。  閱讀全文
            posted @ 2009-02-16 10:36 水 閱讀(3333) | 評論 (0)  編輯
            使用Prefast測試驅動問題      摘要: Prefast是MS開發的一個測試驅動代碼的小工具,
            它的作用是盡早找出代碼中常的BUG.
            在編譯時參與進來查找BUG.
              閱讀全文
            posted @ 2009-01-21 11:52 水 閱讀(1636) | 評論 (0)  編輯
            構建Windows驅動開發環境      摘要: 詳細介紹了三種構造驅動開發環境的方法  閱讀全文
            posted @ 2009-01-20 15:07 水 閱讀(9326) | 評論 (2)  編輯
            驅動調試的一般性技巧      摘要: 一般性調試技巧包括打印調試信息、查看dump文件等。這些方法在調試驅動中比較常見,使用也比較簡單。  閱讀全文
            posted @ 2009-01-15 15:31 水 閱讀(3689) | 評論 (2)  編輯
            驅動調試的幾個細節問題IRQL_NOT_LESS_OR_EQUAL      摘要: 今天在調試驅動的時候,發現一個開始覺得很奇怪的問題,就是調用RtlStringCbPrintfW函數來格式化WCHAR字符串時,一定藍屏,提示
            IRQL_NOT_LESS_OR_EQUAL,并且比較郁悶的是,在虛擬機上有時不會出現,有時會出現,但在真正的主機上一定會出現(Windows xp sp2)。
            一般出現IRQL_NOT_LESS_OR_EQUAL,是IRQL在級別高的地方調用了分頁內存,所以,我就想到把當前的IRQL打出來看看,發現在進入函數
            的時候,當前的IRQL是0(PASSIVE_LEVEL),而在執行這段代碼的地方,IRQL是2(DISPATCH_LEVEL),是什么原因使得IRQL發生了變化呢?
            仔細查看代碼后,發現了原因,因為在執行這段代碼之前,通過NdisAcquireSpinLock獲取旋轉鎖,而在旋轉鎖釋放之前,其中的代碼是跑在
            IRQL=2的,另外,RtlStringCbPrintfW需要處理分頁內存(PagedPool),但在IRQL=2的情況下,是只能處理非分頁內存的(NonpagedPool),所以,
              閱讀全文
            posted @ 2009-01-14 17:05 水 閱讀(5033) | 評論 (0)  編輯

            Full windows驅動 Archive


            <2025年6月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            常用鏈接

            留言簿(17)

            隨筆分類(138)

            隨筆檔案(137)

            網絡開發

            最新隨筆

            搜索

            •  

            積分與排名

            • 積分 - 498799
            • 排名 - 36

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            漂亮人妻被黑人久久精品| 日韩欧美亚洲综合久久影院Ds| 久久99热这里只频精品6| 亚洲国产视频久久| 91精品国产9l久久久久| 99久久久久| 亚洲AV无码1区2区久久| 91精品国产91久久综合| 一本色道久久88综合日韩精品| 欧美牲交A欧牲交aⅴ久久| 99久久国产主播综合精品| 狠狠色婷婷久久综合频道日韩 | 日韩AV毛片精品久久久| 欧美一区二区三区久久综合| 99久久综合狠狠综合久久| 亚洲AV无码久久精品色欲| 久久青青草原精品国产软件| 99麻豆久久久国产精品免费| 亚洲精品成人网久久久久久| 7国产欧美日韩综合天堂中文久久久久| 久久国产亚洲精品| 内射无码专区久久亚洲| 亚洲精品高清久久| 久久精品国产91久久综合麻豆自制| 国产精品久久久久久久久久影院 | 一本色道久久HEZYO无码| 久久本道久久综合伊人| 久久精品国产一区| 久久精品国产精品青草app| 精品综合久久久久久888蜜芽| 人妻无码精品久久亚瑟影视| 久久无码人妻精品一区二区三区 | 伊人久久无码精品中文字幕| 国产福利电影一区二区三区久久老子无码午夜伦不 | 久久亚洲日韩看片无码| 一本综合久久国产二区| 久久综合久久综合亚洲| 香蕉aa三级久久毛片| 久久只有这精品99| 99蜜桃臀久久久欧美精品网站| 一级a性色生活片久久无|