-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Windows編程調試技術內幕

( 簡體 字)
作者:[印度]塔里克·索拉米(Tarik Soulami)類別:1. -> 程式設計 -> 綜合
譯者:
出版社:人民郵電出版社Windows編程調試技術內幕 3dWoo書號: 54254
詢問書籍請說出此書號!

缺書
NT售價: 650

出版日:4/1/2021
頁數:434
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787115501486
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

內容簡介:

這是一本介紹 Windows 編程調試技術的書。本書簡述了 Windows 開發框架和操作系統中的層。在用調試和跟蹤工具發現數據意義時,這些基礎知識非常重要。本書還談到了“調試的樂趣和好處”,描述了 Windows 操作系統中調試器的架構,并介紹了一些可擴展的策略,以幫助你充分利用 Windows 的調試器。本書還展示了 WinDbg 調試器的用法,通過分析代碼和操作系統之間的重要相互作用來幫助你更好地了解系統內核。最后,本書就“觀察和分析軟件的行為”展開討論,介紹了 Windows 事件跟蹤(ETW)技術,并說明了在調試和分析調查中利用 ETW 技術的方法。
本書適合程序員、安全人員、軟件測試人員閱讀,也可以作為大專院校相關專業的教學用書和機構的培訓用書。
目錄:

第 一部分 背景
第 1章 Windows軟件開發 3
1.1 Windows發展過程 3
1.1.1 Windows版本歷史 3
1.1.2 支持的CPU架構 4
1.1.3 Windows版本特性 5
1.1.4 Windows服務術語 5
1.2 Windows架構 6
1.2.1 內核態與用戶態 6
1.2.2 用戶態系統進程 7
1.2.3 用戶態應用進程 8
1.2.4 低級別的Windows通信機制 11
1.3 Windows開發人員接口 13
1.3.1 開發人員文檔資源 13
1.3.2 WDM、KMDF和 UMDF 14
1.3.3 NTDLL和USER32層 14
1.3.4 Win32 API層 15
1.3.5 COM層 15
1.3.6 CLR(.NET)層 20
1.4 微軟開發工具 22
1.4.1 Windows驅動程序開發工具包(WDK) 23
1.4.2 Windows軟件開發工具包 23
1.5 小結 23
第二部分 調試的樂趣和好處
第 2章 入門 27
2.1 調試工具介紹 27
2.1.1 獲取Windows調試器軟件包 27
2.1.2 獲取Visual Studio調試器 31
2.1.3 WinDbg和Visual Studio調試器對比 31
2.2 用戶態調試 32
2.2.1 使用WinDbg調試你的第 一個程序 32
2.2.2 列舉局部變量和函數參數值 39
2.2.3 WinDbg中的源碼級調試 43
2.2.4 符號文件、服務器和本地緩存 44
2.2.5 WinDbg符號離線緩存 45
2.2.6 WinDbg中符號解析問題的故障排除 46
2.2.7 名稱修飾注意事項 46
2.2.8 獲取WinDbg命令的幫助 48
2.3 內核態調試 49
2.3.1 你的第 一個(實時)內核態調試會話 50
2.3.2 使用物理機建立一個內核態調試環境 55
2.3.3 使用虛擬機設置內核態調試環境 60
2.3.4 診斷主機/目標機通信問題 62
2.3.5 理解KD中斷序列 63
2.3.6 在內核態調試器中控制目標機 64
2.3.7 在內核態調試器中設置代碼斷點 66
2.3.8 獲取WinDbg內核態調試命令的幫助 68
2.4 小結 68
第3章 Windows調試器是如何工作的 70
3.1 用戶態調試 70
3.1.1 架構概述 70
3.1.2 Win32調試API 71
3.1.3 調試事件和異常 72
3.1.4 中斷序列 75
3.1.5 設置代碼斷點 76
3.1.6 觀察WinDbg中的代碼斷點插入 77
3.2 內核態調試 81
3.2.1 架構概述 81
3.2.2 設置代碼斷點 82
3.2.3 單步執行目標 82
3.2.4 切換當前進程上下文 83
3.3 托管代碼調試 84
3.3.1 架構概述 85
3.3.2 SOS Windows調試器擴展 87
3.4 腳本調試 92
3.4.1 架構概述 92
3.4.2 在Visual Studio中調試腳本 93
3.5 遠程調試 95
3.5.1 架構概述 95
3.5.2 WinDbg中的遠程調試 96
3.5.3 Visual Studio中的遠程調試 99
3.6 小結 101
第4章 事后調試 102
4.1 實時調試 102
4.1.1 你的第 一個實時調試實驗 102
4.1.2 實時調試是如何工作的 105
4.1.3 使用Visual Studio作為實時調試器 108
4.1.4 運行時斷言和實時調試 113
4.1.5 會話0中實時調試 113
4.2 轉儲調試 114
4.2.1 用戶態轉儲文件自動生成 114
4.2.2 使用WinDbg調試器分析崩潰轉儲文件 117
4.2.3 使用Visual Studio分析崩潰轉儲文件 123
4.2.4 手動生成轉儲文件 124
4.2.5 “時間旅行”調試 125
4.2.6 內核態事后調試 126
4.3 小結 128
第5章 基礎擴展 130
5.1 非侵入式調試 130
5.2 數據斷點 132
5.2.1 深度分析用戶態和內核態數據斷點 133
5.2.2 清除內核態數據斷點 135
5.2.3 執行數據斷點與代碼斷點 136
5.2.4 用戶態調試器數據斷點操作:C++全局對象和C運行時庫 137
5.2.5 內核態調試器數據斷點操作:等待進程退出 139
5.2.6 高級例子:誰在修改注冊表值 141
5.3 調試器腳本 145
5.3.1 使用調試器腳本重放命令 145
5.3.2 調試器偽寄存器 146
5.3.3 在調試器腳本中解析C++模板名稱 148
5.3.4 腳本實踐:在內核調試器中列舉Windows服務進程 149
5.4 WOW64調試 150
5.4.1 WOW64環境 150
5.4.2 WOW64進程調試 151
5.5 Windows調試鉤子(GFLAGS) 154
5.5.1 系統級與進程相關的NT全局標志 154
5.5.2 GFLAGS工具 155
5.5.3 調試器擴展命令!gflag 157
5.5.4 用戶態調試器對NT全局標志值的影響 159
5.5.5 映像文件執行選項鉤子 159
5.6 小結 159
第6章 代碼分析工具 161
6.1 靜態代碼分析 161
6.1.1 使用VC++靜態代碼分析捕獲你的第 一個崩潰錯誤 161
6.1.2 SAL注釋 164
6.1.3 其他靜態分析工具 167
6.2 運行時代碼分析 169
6.2.1 使用應用程序驗證器工具捕獲你的第 一個錯誤 170
6.2.2 幕后花絮:操作系統中支持的校驗器 172
6.2.3 調試擴展命令!avrf 176
6.2.4 應用程序校驗器作為質量保證工具 179
6.3 小結 179
第7章 專家調試技巧 181
7.1 基本技巧 181
7.1.1 等待一個調試器附加到目標 182
7.1.2 加載DLL時中斷 184
7.1.3 調試進程啟動 188
7.1.4 調試子進程 194
7.2 更多有用的技巧 203
7.2.1 調試錯誤代碼故障 203
7.2.2 在第 一次異常通知時中斷 209
7.2.3 凍結線程 210
7.3 內核態調試技巧 212
7.3.1 在用戶態進程創建時中斷 212
7.3.2 調試用戶態進程啟動 215
7.3.3 加載DLL時中斷 216
7.3.4 未處理SEH異常時中斷 217
7.3.5 凍結線程 218
7.4 小結 220
第8章 常見調試場景·第 1部分 222
8.1 調試非法訪問 222
8.1.1 理解內存非法訪問 222
8.1.2 調試擴展命令!analyze 223
8.2 調試堆破壞 225
8.2.1 調試本地堆破壞 225
8.2.2 調試托管(GC)堆破壞 233
8.3 調試棧破壞 241
8.3.1 基于棧的緩沖區溢出 242
8.3.2 在棧破壞分析中使用數據斷點 243
8.3.3 重構損壞棧的調用幀 244
8.4 調試棧溢出 246
8.4.1 理解棧溢出 246
8.4.2 調試命令kf 247
8.5 調試句柄泄露 248
8.5.1 句柄泄露例子 249
8.5.2 調試擴展命令!htrace 250
8.6 調試用戶態內存泄露 254
8.6.1 使用應用程序驗證器工具檢測資源泄露 254
8.6.2 使用UMDH工具分析內存泄露 257
8.6.3 擴展策略:棧跟蹤數據庫的自定義引用 260
8.7 調試內核態內存泄露 262
8.7.1 內核內存基礎知識 262
8.7.2 使用Pool Tagging調查內核態泄露 263
8.8 小結 266
第9章 常見調試場景·第 2部分 268
9.1 調試資源競爭 268
9.1.1 共享狀態一致性錯誤 269
9.1.2 共享狀態生命周期管理錯誤 273
9.1.3 DLL模塊生命周期管理錯誤 281
9.2 調試死鎖 284
9.2.1 (鎖順序)Lock-Ordering死鎖 285
9.2.2 邏輯死鎖 288
9.3 調試訪問檢查問題 292
9.3.1 基本的NT安全模型 292
9.3.2 Windows Vista的改進 297
9.3.3 結束 300
9.4 小結 301
第 10章 調試系統內部機制 302
10.1 Windows控制臺子系統 302
10.1.1 printf背后的魔力 302
10.1.2 Windows UI事件的處理 309
10.1.3 Ctrl+C信號的處理 309
10.2 系統調用剖析 314
10.2.1 用戶態一側的系統調用 315
10.2.2 轉換到內核態 317
10.2.3 內核態一側的系統調用 318
10.3 小結 319
第三部分 觀察和分析軟件的行為
第 11章 Xperf介紹 323
11.1 獲取Xperf 323
11.2 你的第 一個Xperf調查 327
11.2.1 制定一個調查策略 328
11.2.2 收集場景的ETW跟蹤 328
11.2.3 分析收集到的ETW跟蹤 329
11.3 Xperf的優點和局限性 339
11.4 小結 339
第 12章 ETW內幕 341
12.1 ETW架構 341
12.1.1 ETW設計原則 342
12.1.2 ETW組件 342
12.1.3 特殊的NT內核日志記錄會話 343
12.1.4 使用Xperf 配置ETW會話 344
12.2 Windows系統現有的ETW檢測 347
12.2.1 Windows內核中的檢測 347
12.2.2 其他Windows組件中的檢測 350
12.3 理解ETW的Stack-Walk事件 355
12.3.1 啟用和查看內核提供者事件的棧跟蹤 355
12.3.2 啟用和查看用戶提供者事件的棧跟蹤 358
12.3.3 診斷ETW棧跟蹤問題 359
12.4 在你的代碼中添加ETW記錄 363
12.4.1 ETW事件剖析 364
12.4.2 使用ETW Win32 API記錄事件 367
12.5 在ETW中跟蹤引導過程 370
12.5.1 在引導過程中記錄內核提供者事件 371
12.5.2 在引導過程中記錄用戶提供者事件 373
12.6 小結 375
第 13章 常見的跟蹤場景 376
13.1 分析阻塞時間 376
13.1.1 ETW的CSwitch和ReadyThread事件 377
13.1.2 使用Visual Studio 2010實施等待分析 379
13.1.3 使用Xperf實施等待分析 384
13.2 分析內存使用 389
13.2.1 分析目標進程中高級別的內存使用 390
13.2.2 分析NT堆內存使用 391
13.2.3 分析GC堆(.NET)內存使用 395
13.3 跟蹤作為一個調試輔助 403
13.3.1 跟蹤錯誤代碼失敗 403
13.3.2 跟蹤系統內部機制 407
13.4 小結 413
附錄A WinDbg用戶態調試快速啟動 415
附錄B Windows內核態調試快速啟動 428
序: