❶ 關於Windows內核編程的問題
其實Windows內核編程不但有用,而且常用。很多我們每天都使用的軟體,就毫無疑問的使用了Windows內核編程的技術。最典型的就是實時監控的殺毒軟體。此外還有防火牆、虛擬光碟機、以及90%的驅動程序。這些程序的有一個共同的特點,他們的一部分組件,是作為Windows的一部分,能對 Windows上運行的所有的應用程序起作用。
因此內核編程的應用,往往給傳統軟體帶來更強的功能,實現技術上的飛躍。
舉個例子。我們常常聽說,對文件進行加密,可以使文檔更加安全。對文件加密並不需要任何內核組件。我們可以寫一個應用程序,讀入文件,加密數據,然後重寫為一個加密文件。解密也可以同樣如此。
但是實際上這並不滿足一般的用戶需求。對一個公司的員工來說,那些「重要的文檔」很可能就是每天工作所用的文件。想像一下,他必須要每天從伺服器上下載加密的文件,然後用解密工具解密。然後用Office開始工作。工作完畢後,用加密工具加密,再上傳,然後刪除工作文檔。且不說大部分時間文檔是以解密的方式保存在硬碟上的不安全性,這個工作流程是可以接受的嗎?沒有人會接受的。
比較「人性化」的方式就是讓Office可以直接打開已經加密的文檔。保存的時候,直接就保存成加密的文檔。硬碟上,這個文檔始終是加密的。而且對合法的用戶透明。對非法的用戶,則只能看見密文,從而無法編輯也無法閱讀。而且也不僅僅Office,還有AutoCAD、Visual Studio、Photoshop等等用戶可能用於編輯機密文件的所有的工具。這是可以實現的嗎?如果我們不能去修改Office和其他的工作軟體。
這當然是可以實現的。既然我們編寫Windows內核程序,當然可以讓Windows的文件系統從硬碟讀取文件的時候,對特定的進程進行特別的解密。等這些軟體讀取到數據的時候,它們讀到的已經是正常的數據了。這個過程和實時掃描病毒的原理是一樣的,使用一個文件過濾驅動程序。這就是讀者可能已經聽到過的文件透明加密技術。
在和《天書夜讀:從匯編語言到Windows內核編程》一書同一系列的《寒江獨釣——Windows內核編程與信息安全》(預計明年出版)中,對鍵盤過濾、硬碟過濾、文件過濾、網路過濾等安全相關的內核編程,都有詳盡的講解和例子。
內核編程的另一個特點是:這些代碼運行在R0級。R0級別是最高特權級別。對CPU有完全控制的能力。這非常的適合一些安全軟體,當然也適合做破壞的工作。因為內核程序有最高(也就是根)許可權,這樣的技術在安全領域(或者破壞領域)被稱為rootkit技術。rootkit技術是當前安全領域最熱門的技術之一。
許多病毒使用了rootkit技術。用來隱藏病毒文件,竊取密碼、發送攻擊包等等。rootkit病毒感染後極難清除,在感染前提前防範是最有效的辦法。
Windows內核確實沒有公開源代碼。但是MS提供Windows內核程序的開發包:WDK。WDK實際上主要用於開發驅動程序。而驅動程序基本上都是內核程序。WDK提供的頭文件以及部分源代碼,實際上就是Windows內核的代碼的一部分。有部分驅動程序(比如FAT32文件系統)的代碼是完全公開的。我們也可以在這里看到Windows內核開發者的代碼風格。同時,微軟也提供了所有Windows版本的符號表在網上供研究者下載。並提供了功能無比強大的調試器WinDbg。有了它們,你就可以輕松的調試Windows內核了。無論是你自己寫的代碼的部分,還是Windows內核開發者們編寫的部分。雖然看到的是匯編語言,但是函數名和全局變數名都是存在的。而且,所有的這些(WDK、WinDBG,符號表)都是免費的。
❷ windows核心編程視頻教程
????,沙發我要了
❸ 怎樣學習windows內核編程
先去看匯編和計算機體系結構
❹ 怎麼學習windows內核編程
C/C++入門->MFC編程->WINDWOS程序設計->WINDWOS核心編程->Windows2000Secrets->WINDOWS驅動開發詳解->WINDWOS內核安全編程->從匯編語言到WINDWOS內核編程->ROOTKIT-WINDWOS內核的安全防護
❺ 如何學好<<windows核心編程>>一書
哎!你走錯了路!
應該先扎實的學完C,才再學VC。
《windows核心編程》這本書是用C語言寫在windows下工作的程序,寫書的人是絕對的大師。
你應該先學好C,才在來搞這個,而且還有補一下「數據結構」這門課程!
你學習的路子是典型的錯誤路子,我見過好多了。
"直接學VC,直接WINDOWS編程也可以,並不是完全不可能。"
這樣根基不扎實,遲早出問題,只是遲早而已。
❻ 我想學習Windows下的編程,請大家給一個視頻教程的下載地址.謝謝!
網易學院 http://tech.163.com/school/video/
電大VB http://www.wwnn.net/soft/11/145/2006/20061025036.html
❼ 怎麼樣快速入門windows內核編程
編譯器當然主要VC++,版本可能比發布出去的要新。Build,基本的有點像wdk吧,擴展了很多東西。WDK的build.exe,bcz也可以用。測試工具,沒有release,不好說了,是支持Windows系統的高度自動化工作的測試系統。編輯器,每個人用的不一樣吧。有內部組在Visualstudio上做了擴展,但是也有人用sourceinsight,應該也有人用vim。必須的提debug,kernel和相關的Debug,非WinDbg莫屬了。
❽ 怎麼學習《windows核心編程》
不要一開始就學這一本書,這是給高手學的,
如果你剛學完數據結構就學這本書是沒法看懂的,
我的建議是,先看<<windows程序設計>>這本書,現在好像已經出到第五版了。
剛開始學的時候不需要看懂全部,只需要看懂前面的消息機制(一定要看懂),
然後自己能照著書中的代碼寫出一個窗口就行了(不用記住代碼,但至少你要能把代碼輸入好,並編譯完成,程序運行正常,到這,這本書可以先放下,當然,後面的能囈懂最好能看下去,不能看懂,也要瀏覽一下,知道大概講的什麼,。
然後去下載 孫鑫的<<VC++從入門到精通>>的視頻,看完後再回頭看<<windows程序設計>>
看破完後你就可以看<<windows核心編程>>了
當然,就要很久的時間,我就用了差不多一年
❾ 如何學好《windows核心編程》
很多人從MFC開始學習,結果常常是一頭霧水,知難而退;也有人毅力堅強,熬過了MFC的陣痛期,最後卻是知其然而不知其所以然,並且思維被限制在MFC的框架之中,遇到稍微有點規模的程序就無從下手了。
以我個人的這些年的Windows開發經歷,我建議Windows上的學習路線如下:
首先當然是語言的學習,比如C或C++(STL),它是平台無關的
然後可以從《Windows程序設計》(by
Charles Petzold
)入門,從最原始的Windows API開始學習
接下來可以學習《Windows核心編程》(by
Jeffrey Richter
), 它會讓你比較深刻的理解Windows的前台和後台機制
學完上面2本書,對Windows系統已經比較熟悉了,再要深入的話可以學下《Windows 圖形編程》(by 袁鋒)。
至此,已經可以用API的方式開發大部分Windows應用程序了,
接下來可以學一些常用庫,比如MFC,WTL,ATL等,此時學習MFC和一開始就學習MFC已是截然不同的感覺,彼時痛苦難熬,此時會心一笑。
其他就是根據項目需要,專業知識的學習,比如COM技術,網路,D3D等。