www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > > 充電吧
[導(dǎo)讀]本書非常適合熟悉Windows應(yīng)用編程的讀者轉(zhuǎn)向驅(qū)動開發(fā)。所有的內(nèi)容都從最基礎(chǔ)的編程方法入手。介紹相關(guān)的內(nèi)核API,然后舉出示范的例子。這本書只有不到70頁,是一本非常精簡的小冊子。所以它并不直接指導(dǎo)

本書非常適合熟悉Windows應(yīng)用編程的讀者轉(zhuǎn)向驅(qū)動開發(fā)。所有的內(nèi)容都從最基礎(chǔ)的編程方法入手。介紹相關(guān)的內(nèi)核API,然后舉出示范的例子。這本書只有不到70頁,是一本非常精簡的小冊子。所以它并不直接指導(dǎo)讀者開發(fā)某種特定類型的驅(qū)動程序。

即使都是使用C/C++語言的代碼,在不同的應(yīng)用環(huán)境中,常常看起來還是大相徑庭。比如用TurboC++編寫的DOS程序代碼和用VC++編寫的MFC應(yīng)用程序的代碼,看起來就幾乎不像是同一種語言。這是由于它們所依賴的開發(fā)包不相同的緣故。

在任何情況下都以寫出避免依賴的代碼為最佳。這樣可以避免重復(fù)勞動。但是我們在學(xué)習(xí)一種開發(fā)包的使用時,必須習(xí)慣這個環(huán)境的編碼方式,以便獲得充分利用這個開發(fā)包的能力。

本書的代碼幾乎都依賴于WDK(WindowsDriverKit)。但是不限WDK的版本。WDK還在不斷的升級中。這個開發(fā)包是由微軟公司免費提供的。讀者可以在微軟的網(wǎng)站上下載。

當(dāng)然讀者必須把WDK安裝的計算機上并配置好開發(fā)環(huán)境。具體的安裝和配置方法本書沒有提供。因為網(wǎng)上已經(jīng)有非常多的中文文檔介紹它們。

讀完這本書之后,讀者一定可以更輕松的閱讀其他專門的驅(qū)動程序開發(fā)的文檔和相關(guān)書籍。而不至于看到大量無法理解的代碼而中途放棄。如果有任何關(guān)于本書的內(nèi)容的問題,讀者可以隨時發(fā)郵件到mfc_tan_wen@163.com或者walled_river@hotmail.com。能夠回答的問題我一般都會答復(fù)。

寫本書的時候,我和wowocock合作的一本名為《天書夜讀》(在網(wǎng)上有一個大約20%內(nèi)容的縮減電子版本)正在電子工業(yè)出版社編輯。預(yù)計還有不到一個月左右就會出版。這也是我自己所見的唯一一本中文原創(chuàng)的從匯編和反匯編角度來學(xué)習(xí)Windows內(nèi)核編程和信息安全軟件開發(fā)的書。希望讀者多多支持。有想購買的讀者請發(fā)郵件給我。我會在本書出版的第一時間,回復(fù)郵件告知購買的方法。

此外我正在寫另一本關(guān)于Windows安全軟件的驅(qū)動編程的書。但是題目還沒有擬好。實際上,讀者現(xiàn)在見到的免費版本的《Windows驅(qū)動編程基礎(chǔ)教程》是從這本書的第一部分中節(jié)選出來的。這本書篇幅比較大,大約有600-800頁。主要內(nèi)容如下:

第一章驅(qū)動編程基礎(chǔ)

第二章磁盤設(shè)備驅(qū)動

第三章磁盤還原與加密

第四章傳統(tǒng)文件系統(tǒng)過濾

第五章小端口文件系統(tǒng)過濾

第六章文件系統(tǒng)保護與加密

第七章協(xié)議網(wǎng)絡(luò)驅(qū)動

第八章物理網(wǎng)絡(luò)驅(qū)動

第九章網(wǎng)絡(luò)防火墻與安全連接

第十章打印機驅(qū)動與虛擬打印

第十一章視頻驅(qū)動與過濾

附錄AWDK的安裝與驅(qū)動開發(fā)的環(huán)境配置

附錄B用WinDbg調(diào)試Windows驅(qū)動程序

這本書還沒有完成。但是肯定要付出巨大的精力,所以請讀者不要來郵件索取完整的免費的電子版本。希望讀者支持本書的紙版出版。因為沒有完成,所以還沒有聯(lián)系出版商。有愿意合作出版本書的讀者請發(fā)郵件與我聯(lián)系。

凡是發(fā)送郵件給我的讀者,我將會發(fā)送郵件提供本人作品最新的出版信息,以及最新發(fā)布的驅(qū)動開發(fā)相關(guān)的免費電子書。如果不需要這些信息的,請在郵件里注明,或者回復(fù)郵件給我來取消訂閱。



譚文

2008年6月9日



目錄


版權(quán)聲明 1

作者信息 1

前言 2

目錄 4

第一章字符串 6

1.1使用字符串結(jié)構(gòu) 6

1.2字符串的初始化 7

1.3字符串的拷貝 8

1.4字符串的連接 8

1.5字符串的打印 9

第二章內(nèi)存與鏈表 11

2.1內(nèi)存的分配與釋放 11

2.2使用LIST_ENTRY 12

2.3使用長長整型數(shù)據(jù) 14

2.4使用自旋鎖 15

第三章文件操作 18

3.1使用OBJECT_ATTRIBUTES 18

3.2打開和關(guān)閉文件 18

3.3文件的讀寫操作 21

第四章操作注冊表 25

4.1注冊鍵的打開操作 25

4.2注冊值的讀 26

4.3注冊值的寫 29

第五章時間與定時器 30

5.1獲得當(dāng)前滴答數(shù) 30

5.2獲得當(dāng)前系統(tǒng)時間 31

5.3使用定時器 32

第六章內(nèi)核線程 35

6.1使用線程 35

6.2在線程中睡眠 36

6.3使用事件通知 37

第七章驅(qū)動與設(shè)備 41

7.1驅(qū)動入口與驅(qū)動對象 41

7.2分發(fā)函數(shù)與卸載函數(shù) 41

7.3設(shè)備與符號鏈接 42

7.4設(shè)備的生成安全性限制 44

7.5符號鏈接的用戶相關(guān)性 46

第八章處理請求 47

8.1IRP與IO_STACK_LOCATION 47

8.2打開與關(guān)閉的處理 48

8.3應(yīng)用層信息傳入 49

8.4驅(qū)動層信息傳出 51

后記:我的閑言碎語 54









第一章字符串


1.1使用字符串結(jié)構(gòu)

常常使用傳統(tǒng)C語言的程序員比較喜歡用如下的方法定義和使用字符串:


char *str={“myfirststring”}; //ansi字符串

wchar_t *wstr={L”myfirststring”}; //unicode字符串

size_tlen=strlen(str); //ansi字符串求長度

size_twlen=wcslen(wstr); //unicode字符串求長度

printf(“%s%ws%d%d”,str,wstr,len,wlen); //打印兩種字符串


但是實際上這種字符串相當(dāng)?shù)牟话踩?。很容易?dǎo)致緩沖溢出漏洞。這是因為沒有任何地方確切的表明一個字符串的長度。僅僅用一個’