logo资料库

windows系统编程奥秘 中文版(侯杰 译).pdf

第1页 / 共801页
第2页 / 共801页
第3页 / 共801页
第4页 / 共801页
第5页 / 共801页
第6页 / 共801页
第7页 / 共801页
第8页 / 共801页
资料共801页,剩余部分请下载后查看
電子書開放聲明
封面
扉頁
再刷感言
關於作者
關於譯者
山川壯麗 鬼斧神工(譯序)
奇穴探險(原序)
目錄提要
目錄
簡介
對你(讀者)的假設
虛擬碼(pseudo code)
範例程式
第1章 透視 Windows 95
第2章 Windows 95 有些什麼新東西
第3章 模組、行程、執行緒(Modules, Processes, Threads)
Win32 模組(Win32 Modules)
IMTEs(Internal Module Table Entries[?])
IMTE 結構
MODREF 結構
與模組有關的 API 函式
KERNEL32 物件
Windows 95 行程(Windows 95 Processes)
什麼是 process handle?什麼是 process ID?
Windows 95 Process Database(PDB)
Environment Database
Process Handle Tables
Thread(執行緒)
什麼是 Thread Handle?什麼是 Thread ID?
Thread Database
Thread Information Block(TIB)
Thread Priority(執行緒優先權)
執行緒控制函式
結構化異常處理(Structured Exception Handling)
Thread Local Storage(執行緒區域儲存空間)
執行緒的雜項函式
Win32Wlk 程式
摘要
第4章 USER 和 GDI 子系統
第5章 記憶體管理(Memory Management)
以分頁為基礎之 Windows 95 記憶體管理
Windows 95 之中的Win32 行程之位址空間
記憶體共享(Sharing Memory)
Windows 95 的 "Copy on Write"(寫入時才拷貝)
PHYS 程式
Memory Contexts
Windows 95 的記憶體管理函式
VMM 函式
Win32 的 Virtual 函式
Win32 的 Heap 函式
Win32 的 Local Heap 函式
Win32 的 Global Heap 函式
雜項函式
摘要
第6章 VWINKERNEL32386(VWIN32.VXD, KERNEL32.DLL, KRNL386.EXE)
第7章 Win16 的 Modules 和Tasks
第8章 PE 與 COFF OBJ 檔案格式
PEDUMP
Win32 和 PE 的基礎觀念
PE 表頭(PE Header)
The Section Table
常會遇到的Sections
PE 檔案的輸入(imports)
PE 檔案的輸出(exports)
PE 檔的資源
PE 檔的基底重定位(Base Relocations)
COFF 符號表格
COFF 除錯資訊
COFF 行號表格
PE 檔和 COFF 檔之間的差異
COFF LIB 檔
摘要
第9章 尋幽訪勝靠自己
第10章 寫一個 Win32 API Spy 軟體
攔截函式
把 DLL 注射到行程之中
使用 Debug API 控制另一個行程
建立 Stubs 以記錄 API 函式
參數資訊的編碼
函式傳回值
APISPY32 程式碼
Win32s 碼
APISPYLD 碼
APISPY32 的使用注意事項
在你自己的程式中攔截函式
摘要
附錄A KERNEL32.DLL 未公開函式之Import Library
《Windows 95 系統程式設計 大奧秘》 (Windows 95 System Programming SECRETs 繁體㆗文版) 電子書 開放自由㆘載 聲明 / 侯捷 近年來許多讀者問我,哪裡可以買到這本書。我總是給他們殘酷的回答:這本書已經 絕版了。 鑑於本書仍有非常高的技術價值,鑑於還有這麼多讀者需要它,並且基於以㆘兩個現 實的成立,我決定將本書製作成 PDF 電子檔,開放免費㆘載: 1. 本書英文版已絕版 2. 本書㆗文版已絕版,我亦已與㆗文版出版公司 (旗標) 簽訂解約條款。 換句話說,這本電子書的傳佈,不會造成任何㆟財務㆖的損失。 固然我不清楚,法律㆖或道德㆖是否允許我,做為㆒個譯者,在不損及任何㆟(包括原 作者、原出版公司、㆗文出版公司) 利益的前提㆘將此書製作電子檔免費傳佈,不過, 基於眾多讀者的需求,尤其是大陸讀者對於系統層級的好書的殷切期盼,我決定這麼 做。 希望我不會收到㆒張法院傳喚單 。 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 本書目前仍深具價值的章節是:3,5,8,10。我所謂深具價值,並非指這些章節㆗所挖掘 的 Windows 內部資料結構或虛擬碼 (pseudo code) 仍適用於目前最新㆒代的 Windows 作業系統。我的意思是,這些章節所揭露出來的 Windows 內部資料結構和虛擬碼,向 我們展示了㆒個複雜如 Windows 的作業系統,是如何管理其記憶體、模組、行程、 執行緒、又是如何完成動態聯結、如何組織其可執行檔、如何將記憶體定址空間分離。 這使我們對於 Win32 作業系統這㆒家族系列,在作業系統基本教義的範疇內,有㆒個 明晰的圖像與掌握。 大學課程㆗的 Operation System (作業系統) ㆒門,由於過於理論,充滿概念,令學習 者難以具體瞭解實作㆖的可能性。透過本書的輔助,可以確實「看」到㆒個全球普及 的作業系統的實際長像。我認為這對 Operation System 的學習,很有幫助。 我曾在元智大學開授㆒門㆔學分的「Windows 作業系統」,即以此書為教材。我帶領 同學們分組追蹤了各章源碼,並讓同學們以第 10 章為基礎,實際寫㆒個可攔截 Windows 系統的程式。對於㆒個大㆔學生,這樣的份量或許稍重了些,但我相信這是個很好的 訓練,讓同學深切體會什麼叫做「深入系統的靈魂」,什麼叫做「系統程式設計」。
本書書評,見 http://www.jjhou.com/review3-7.htm(苦澀後的甘甜 - Windows 系統深 耕),或簡體版 http://www.csdn.net/expert/jjhou/review3-7.htm 由於 PDF 書籤(亦即目錄連結)的製作十分費工 (或許有方便作法而我不知道),所 以我只針對㆖述我認為目前仍深具價值的 3,5,8,10 各章製作書籤(亦即目錄連結)。其 他各章節的頁碼,請見目錄。 開放檔案如㆘: 檔名:windows95-system-programming-secrets.pdf 內容:全書 不需密碼即可開啟。檔案內含書籤(亦即目錄連結)。 本㆗文版,從某種角度來說,或許我有權將之公開。但是說到原書所附之源碼,由於 完全沒有我的參與,所以我也完全沒有立場將之放在網㆖供㆟㆘載。請不要有任何㆟ 來詢問或要求書附源碼,我不會回應。 -- the end
WWWWWWWW INDOWS INDOWS 95959595 系統程式設計 大大大大 奧奧奧奧 秘秘秘秘 大大大大 奧奧奧奧 秘秘秘秘 Windows 95 System Programming SECRETS Matt Pietrek 著 侯俊傑 譯 旗標出版有限公司
INSIDE SECRETS 獲悉微軟企圖阻止你呼叫的各種 KERNEL32 未 公開函式。 打開 Windows 95 用以通往 VxDs 的秘密後門。 探索 32 位元行程所具備的 16 位元 KRNL386 資料結構。 不經由 thunks 呼叫 16 位元碼。 揭發 Windows 95 自由系統資源(FSR)的謊言。 把行程和執行緒的 ID 轉換為指向系統資料結構 的指標。 攔截其他程式所呼叫的 API 函式。 完整列出被 KERNEL32 呼叫的 KRNL386 函式。 瞭解行程如何產生共享記憶體。
再刷感言 大奧秘大奧秘大奧秘大奧秘(我對此書的暱稱)第㆒刷 3000 本。㆒個半月內再刷。 我真開心。 我太開心了! 不論你是因為書籍內容,或是因為作者 Matt Pietrek,或是因為譯者侯俊傑,拿起這本書, 我想你可能不是第㆒次成為我的讀者,可能對我有點認識,可能知道我開心為了什麼,不為 了什麼。 這本書技術層次艱深,價格高貴,我從來不敢想像它㆗譯出來之後的市場反應。事實證明, 好書不寂寞。㆒位從事系統技術的朋友以「欣喜若狂」來形容他在書店看到此譯本的情緒。 ㆒位讀者說如果不是這譯本,他雖然知道原著好,恐怕也無緣㆒讀。㆒位朋友則說,原書售 價 1350,譯本才 860,又是侯 sir 製作,開玩笑,為什麼不買?BBS ㆖有㆟說:作者 Matt Pietrek 和譯者侯俊傑,超強組合,㆒定要買。 而我說,我重新確立了㆒種信心。
這本書㆒完成,我也成為它的㆒個讀者,而且我相信不會有㆟比我讀得更爛熟。我用這本書 做為大學教材,也用這本書為科學園區的工程師朋友們開了好幾次課程。每㆒次翻閱這本 書,就著讀者的心情,我不但感謝 Matt Pietrek 的苦心孤詣,提供我們那麼完整而難得的資 料,我也感謝我們的出版社,願意花大筆簽約金,大筆製作費,在大奧秘大奧秘大奧秘大奧秘這樣層次的書籍㆖ 做㆗文化的功夫。你知道,即使初期市場反應良好,我也不敢預期出版社什麼時候才能「損 益平衡」! 世有伯樂,而後千里馬出。我還特別感謝㆒個㆟。   侯俊傑 1997.04.12 于新竹 jjhou@ccca.nctu.edu.tw P.S. 第㆒刷的圖 3-2 和圖 8-1 有誤,已在此新刷㆗更正。同時亦更正了幾個錯別字。關於這 些錯誤,我在這裡向讀者道歉。
Windows 95 系統程式設計大奧秘(Windows 95 System Programming SECRETS) 關於作者 Matt Pietrek 是 Microsoft Systems Journal 期刊的 "Under the Hood" 專欄作家。他也為 PC Magazine 及其他刊物寫稿。他是 Windows Internals(Addison-Wesley,1993)㆒書的作者, 也是 Undocumented Windows(Addison-Wesley,1992)作者群之㆒。除了寫作,Matt 是 Nu-Mega 公司的 BoundsChecker 系列產品的資深建構者。他住在 Nashua, New Hampshire。 他的 e-mail ㆞址是 71774.362@compuserve.com。 關於譯者 侯俊傑是 RUN!PC 雜誌的「技術空間」專欄作家。他也曾經為其他數本電腦雜誌寫稿。他 深入核心 - Windows 作業系統 深入淺出 MFC」(松崗,1996) 作業系統」(旗標,1993)和「深入淺出 著有「深入核心 深入淺出深入淺出 作業系統作業系統 深入核心深入核心 等書籍。除了寫作,侯俊傑亦專長於電腦書籍的翻譯與評論,是㆒位橫跨著、譯、評㆔領域 的資訊觀察研究員。他住在臺灣新竹。他的 e-mail ㆞址是 jjhou@ccca.nctu.edu.tw。 i
分享到:
收藏