2005年1月5日-在此問題中:

  1. 編輯

    • 有 DEP 嗎?
  2. WINDOWS 內部(第4版)

  3. SYSINTERNALS 的新功能

    • 11月統計資料
    • Sysinternals 雜誌文章
    • Sysinternals RSS 摘要
    • Mark 是 Microsoft MVP
    • Autoruns v 6.01
    • Process Explorer v 8.61
    • Sigcheck v1。0
    • Bginfo v 4.07
    • Regjump v1。0
    • Hex2dec v1。0
    • Tcpvcon v 2.34
    • PsTools 更新
    • Microsoft 的 Sysinternals
  4. 內部資訊

    • 網際網路流覽
    • 使用 LiveKd 對病假系統進行疑難排解
    • CreekSide?
    • ChkReg 登錄 Fixer
    • Windows 記憶體診斷
    • 研究未記載的介面
  5. 內部訓練

    • 在三藩市 Windows 連接
    • 實際操作 Windows Russinovich David 索羅門群島的內部/Sysinternals 類別 &

Sysinternals 電子報是由 Winternals Software 贊助,網址是在網站上 http://www.winternals.com 。 Winternals Software 是 advanced systems tools for Windows NT 的領導開發人員和提供者/2000/XP/2003。

Winternals 很高興地宣佈即將推出的系統管理員 Pak 5.0 版本,包含 ERD Commander 2005 在內的完整更新。

ERD Commander 2005 中的新功能包括:

  • 損毀分析器:迅速且輕鬆地診斷負責 Windows 損毀的驅動程式,即使系統無法開機
  • DiskWipe-安全地清除硬碟或磁片區;Autoruns:查看哪些應用程式是從 Windows 安裝程式和使用者登入開始-適合用來診斷系統資源問題和尋找潛在的惡意程式碼
  • FireFox 網頁瀏覽器:下載修補程式、驅動程式更新、搜尋 Microsoft 知識庫中的說明-您在嘗試修復的系統上的所有資訊
  • 可讓您在無法開機的系統上移除修復程式和 service pack 的修正程式卸載 Wizard
  • 系統檔案修復,會檢查 Windows 系統檔案的完整性。

這些功能、ERD Commander 2005 的許多增強功能和可用性增強功能,以及根據 Windows PE 更輕鬆地建立及使用遠端復原用戶端的功能,全都包含在新的系統管理員 Pak 5.0 中,可在年 2005 1 月底取得。 若要在發行時註冊系統管理員 Pak 5.0 的評估版,請造訪 http://www.winternals.com/ap5preview/.

編輯

大家好,

歡迎使用 Sysinternals 電子報。 這份電子報目前有40000的訂閱者。

惡意程式碼的不斷 tide (包括間諜軟體和病毒)讓每個人都關心安全性。 良好的安全性措施包括保持作業系統和應用程式修補程式、安裝和設定防火牆、防毒軟體和間諜軟體移除工具,以及在從網際網路下載或開啟電子郵件附件時進行判斷。 不過,儘管有充分的措施,惡意軟體仍能找出以防禦方式搶先以及感染電腦的方式。 系統防禦中最常見的漏洞是緩衝區溢位弱點,因此您應該熟悉 Windows XP Service Pack 2 的資料執行防止 (DEP) 功能。

緩衝區溢位是一種程式設計錯誤,惡意程式可利用這些錯誤來控制執行程式碼錯誤的執行緒。 緩衝區溢位通常是以堆疊為基礎,這表示攻擊者提供的資料愈多,就能容納在堆疊上儲存的緩衝區。 資料的建立方式,是在具有溢位的函式嘗試傳回從中叫用的函式時,它會改回傳回資料中的位置。

可惜的是,緩衝區溢位錯誤甚至可以災禍最適合的測試和審核軟體。 每月 (Linux 和其應用程式不會受到 Windows 和其元件軟體的多個緩衝區溢位的宣告,且與 Windows) 有一些緩衝區溢位。 最常見的緩衝區溢位攻擊的常見主題,是它們會導致在應只包含資料的記憶體區域中執行程式碼。

雖然 Intel Itanium 處理器從其版本支援「無執行」保護,但 Windows XP SP2 (和即將推出的 Windows Server 2003 SP1) ,Windows 實際利用此硬體支援,例如將執行緒堆疊和堆積記憶體標示為無法執行檔。 其他支援無執行硬體保護的處理器包括64位的 AMD64 皓龍和速龍64,以及 Intel 的複製品(稱為 EM64T),現在可在最強的和 Pentium 4 處理器上使用。 AMD 和 Intel 最近引進了不執行支援的32位處理器: AMD Sempron 和 Pentium 4 "J" 系列 (例如520J、540J 等) 。

您可能會很明顯地,Windows 應該針對堆疊和應用程式堆積記憶體強制執行無執行保護,以防止緩衝區溢位攻擊,但是有數十萬個現有的應用程式,其中一些可能實際上依賴設定未強制執行正確的操作。 因此,Windows XP SP2 中,第一版的 Windows 會強制執行「無執行」保護,讓系統管理員能夠控制哪些進程受到保護,哪些程式不受保護。 首先,基於改善未來安全性的決策,64位版本的 Windows 一律會針對所有64位程式強制執行無執行旗標。 如果軟體廠商想要釋出64位的應用程式,他們必須確定它們不會從記憶體的無法執行區域執行程式碼 (他們可以在即時產生程式碼時,將資料區域標記為可執行檔,因為 JAVA 和 .NET 應用程式通常會) 。

其次,由於緩衝區溢位惡意探索最常見的目標是作業系統元件,因此32位 Windows XP 和 Windows Server 2003 預設會保護核心的作業系統映射。 不過,若為32位應用程式 (在32位 Windows 或64位 Windows) 上執行,則 Windows XP 預設為「加入宣告」策略, (應用程式預設為不受保護,但) Server 2003 預設為「退出」 Windows (應用程式預設為受保護,但可排除特定應用程式) 。 這是合理的,因為安全性通常在伺服器系統上具有較高的優先順序。 您可以在 [DEP 設定] 對話方塊中變更 [加入宣告] 或 [退出] 設定,您可以透過 [系統控制台] 小程式之 [Advanced] 頁面的 [效能] 區段中的 [設定] 按鈕存取。

如先前所述,除了相對新的 AMD Sempron 和 Pentium 4 "J" 處理器之外,所有正式發行的 x86 相容晶片都沒有任何執行支援。 不過,Windows XP 和 Windows Server 2003 在稱為「軟體 DEP」的處理器上執行有限的 DEP 形式。 由於作業系統會線上程產生錯誤時取得執行緒的控制權,因此可以確保它所執行的錯誤處理常式是由程式的程式碼靜態註冊的。 這可防止攻擊者重新導向執行緒的錯誤處理常式,以執行溢位堆疊緩衝區中的惡意程式碼,這是 CodeRed 病毒在2001中發行時造成 IIS 執行的動作。

除了其相對簡單之外,DEP 也是作業系統提供的其中一種最強式防禦機制,以防止自我傳播惡意程式碼。 可惜的是,有三件事可限制其能力:在目前部署的所有處理器中缺乏硬體支援以進行無執行設定,這是 Windows XP 中的預設加入宣告設定,只會保護核心作業系統處理常式,而缺乏認知。 軟體 DEP 的範圍有限,因此除非您是在支援無執行的硬體上執行 Windows,否則 dep 只有稍微有效。 Windows XP 預設為加入宣告的意思是,即使使用者在無需執行的硬體上執行 Windows,唯一可取得 DEP 保護的程式是作業系統的處理常式-如果您是協力廠商防火牆、網頁瀏覽器、電子郵件讀取程式或其他具備網路功能的應用程式,則您仍然很容易受到攻擊。 事實上,惡意程式碼、IIS 和 Outlook 最常利用的一些應用程式,在加入宣告設定下不受保護。 最後,因為大部分的人都不知道它的預設行為,或甚至是 DEP,所以大部分的系統都會在發生緩衝區溢位問題時維持風險。

Microsoft 讓使用者在 exchange 中支付相容性價格以獲得更佳的安全性,或讓使用者在使用病毒時得到更高的價格,然後再將帳單傳遞到 Microsoft。 在此同時,我強烈建議您升級至 Windows xp SP2 (Windows xp 64-bit Edition 和 Windows Server 2003 SP1 也支援「無執行」) 、切換為加入宣告,以及升級至具有「無執行」支援的處理器 (可惜,我將不會得到一項傭金) 。

請將電子報傳遞給您認為可能對其內容感興趣的朋友。

謝謝!

-Mark

WINDOWS 內部(第4版)

《 Windows Server 2003,Windows 2000 和 Windows XP 的官方《官方》(合著使用 Dave 索羅門群島)現已在書籍商店中推出。 Dave 和我展開了舊版的涵蓋範圍大約25%,不僅能在 Windows Server 2003 和 XP 的變更中加入新的內容,還能在疑難排解工具和技術上進行。 您將可以在使用 Process Explorer、Filemon 和 Regmon 的過程中找到最新的秘訣,以及有關 Windows 損毀傾印分析的新章節。

深入瞭解本書的內容,並在線上訂購

http://www.sysinternals.com/windowsinternals.shtml

SYSINTERNALS 的新功能

SYSINTERNALS RSS 摘要

我要求您將新的張貼通知機制新增至 Sysinternals,因此我通常會遵循整個 web 的趨勢,並新增 RSS 摘要 (如果您不熟悉 RSS 摘要,以下是絕佳的入門: http://rss.softwaregarden.com/aboutrss.html). 摘要也可以讓我有機會通知您,不保證在首頁上有完整清單的次要錯誤修正和更新。 它看起來就像是人們慣用的方法,可讓人們根據摘要每天取得的點擊次數來學習更新。

存取 Sysinternals RSS 摘要,網址為:

http://www.sysinternals.com/sysinternals.xml

SYSINTERNALS 雜誌文章

大約六個月前,我開始撰寫 Windows 的半個月專欄 Pro 雜誌 (之前 Windows 和 .net 雜誌) Sysinternals 工具。 每個資料行都描述不同的工具,提供有關其運作方式的先進使用方式和資訊。

以下列出三個已發行的三個:非「訂閱者」可在線上存取,第三個則即將推出:

Autoruns http://www.win2000mag.com/Windows/Article/ArticleID/44089/44089.html

Pslist 和 Pskill: http://www.winnetmag.com/Windows/Article/ArticleID/43569/43569.html

PsExec http://www.winnetmag.com/Windows/Issues/IssueID/714/Index.html

MARK 是 MICROSOFT MVP

Microsoft 最有價值的 Platform SDK Professional (mvp) 負責人將 mvp 命名為2005。 我對 Microsoft 客戶所發表的投稿發表了這項官方通知,我很感謝他與 Microsoft Sysinternals。

11月統計資料

最後,我有一個適用于 Sysinternals 的 web 流量分析程式,並已分析了11月的記錄檔。 數位的範圍甚至很驚訝。 以下是一些重點:

  • 3600000頁面流覽
  • 775000的獨特訪客
  • 1200000公用程式下載
  • 200000下載 Process Explorer,#1 下載

AUTORUNS V 6.01

Autoruns 已在過去幾個月內演進過許多更新的主要版本號碼。 最新版本的 Autoruns 除了顯示標準執行金鑰和開機檔案夾之外,還會顯示自動啟動位置,包括 Winlogon 通知 Dll、Explorer 工具列、命名空間延伸模組和瀏覽器協助程式物件,以及自動初始化 Dll。 另一項新功能, (從 Process Explorer 借用的 Google 功能表項目) 協助您藉由開啟瀏覽器並起始所選映射名稱的搜尋,來識別未知的影像。

另一項新功能(影像簽署驗證)可協助您區分惡意程式碼和系統元件或受信任的應用程式。 Microsoft 通常包含以 Microsoft 的私用簽署金鑰簽署的作業系統檔案雜湊。 Windows 密碼編譯函式會使用 Microsoft 的公開簽署金鑰來解密已簽署的雜湊,而 Autoruns 會藉由比較其雜湊與解密版本,在您的系統上驗證映射,並在符合的情況下,于映射的公司名稱前面加上「 (驗證) 」。 如果映射已遭篡改、損毀、取代,或具有您系統不受信任的發行者簽署的雜湊,Autoruns 會將影像的公司名稱報告為「 (未驗證) 」。

如果系統管理員是系統管理員,您可能會想要在您登入以外的帳戶中檢查自動啟動映射,因此 Autoruns 現在會包含使用者功能表,其中包含在電腦上儲存設定檔的每個帳戶的選項。

最後,現在有一個命令列相當於 Autoruns GUI,稱為 Autorunsc,它會列出主控台的 Autoruns 資訊。 將輸出格式化為 CSV 的能力,結合 Sysinternals 的 PsExec 公用程式時,可讓您輕鬆地為整個網路中的電腦產生已設定之自動啟動映射的清查。

下載 Autoruns,網址為
http://www.sysinternals.com/ntw2k/freeware/autoruns.shtml

PROCESS EXPLORER V 8.61

同樣地,Process Explorer 是一種將工作管理員取代為 advanced Process management utility 的工具,它是我最專注的工具,這是因為我收到的意見反應很多。 自上次的電子報 Process Explorer 已從8.4 版到8.6。 新功能的許多會標示這兩個版本,包括起始所選進程相關資訊的 Google 功能表項目、[流程屬性] 對話方塊中的 [字串] 索引標籤,其中列出處理常式影像檔案中的 ASCII 和 Unicode 字串,以及在所選 DLL 影像檔中列出字串的字串功能表項目。 以及當您將滑鼠停留在 Process Explorer 紙匣圖示上時,工具提示中最常使用 CPU 的進程名稱。

許多人要求從工作管理員切換時所缺少的功能,例如工作管理員應用程式] 索引標籤。[應用程式] 索引標籤會顯示互動式桌面上的最上層視窗清單,以及擁有每個視窗的執行緒狀態: "如果執行緒目前正在等候接收 windows 訊息,或過去五秒內已處理 windows 訊息,否則 (諷刺是,這通常表示「正在執行」表示執行緒正在等候,而「沒有回應」其關閉執行中的) 。 您現在可以使用流程 Explorer 取得相同的資訊,方法是將「視窗標題」和「視窗狀態」資料行新增至程式視圖。

Process Explorer 有一些以 at.NET 程式為目標的功能,包括在 .NET 進程的 [流程屬性] 對話方塊中,針對 .NET 進程和 [.NET 效能] 索引標籤進行反白顯示。 .NET 程式是已載入並向 .NET 執行時間註冊的進程。 如果處理常式在啟動後的某個時間之後註冊,進程 Explorer 可能無法得知它是 .NET 進程,但是當您手動重新整理顯示器時,最新的版本重新檢查會處理 .NET 狀態和工作物件成員資格,方法是按下 [重新整理] 工具列按鈕、F5 鍵或選取 [重新整理] 功能表項目。

在不確定哪一個進程擁有視窗的情況下,您可以使用新的視窗搜尋工具工具列按鈕來加以識別。 只要將工具列按鈕(看起來像是目標)移出工具列,然後在問題的視窗中,[Process Explorer] 會在進程視圖中選取擁有進程。

您可以立即察覺的加法是顯示在工具列附近的迷你 CPU 圖形。 此圖表會顯示系統的 CPU 使用量歷程記錄,如同您在按一下以開啟 [Process Explorer 系統資訊] 對話方塊時所取得的擴充版本,會提供工具提示,其中包含您移動滑鼠時,圖表中點的時間戳記和最高 CPU 耗用進程。 您可以將圖形移至工具列區域中的任何位置,甚至移至其一個資料列,使其在 Process Explorer 視窗的寬度之間伸展。

有兩個與安全性相關的功能,分別是映射簽署驗證和資料執行防止 (DEP) 狀態。 當您啟用影像簽署選項時,Process Explorer 將檢查是否已由受信任的簽署者以數位方式簽署處理常式影像,如 Autoruns,請在 [流程屬性] 對話方塊中的公司名稱前面加上 [已驗證] 或 [未驗證]。 預設會停用此選項,因為檢查到網站時,影像簽署檢查可能需要幾秒鐘的時間,才能確認簽署憑證的有效性。

我在這份電子報簡介中所描述的 DEP,是您應該在 Windows XP SP2 上啟用的功能,以加強保護免于緩衝區溢位的攻擊。 您可以藉由將 [DEP 狀態] 資料行新增至進程視圖,或在 [處理常式屬性] 對話方塊的 [影像] 頁面上核取 [DEP 狀態] 欄位,來檢查進程的 DEP 狀態。

最後,Process Explorer 現在會在系統進程的 DLL 視圖中列出系統上載入的驅動程式,此程式是與核心和設備磁碟機背景工作執行緒相關聯的進程。 每個驅動程式都可以使用相同的資訊,就像針對其他進程列出的 Dll 一樣,包括版本、公司名稱、完整路徑和系統位址空間中的載入位址。

下載 Process Explorer,網址為
http://www.sysinternals.com/ntw2k/freeware/procexp.shtml

SIGCHECK V1。0

許多 Sysinternals 工具正在採用可協助使用者識別惡意程式碼的功能,而 Sigcheck 則是以幾乎專用於該目標的命令列公用程式。 它會使用 Autoruns 和 Process Explorer 中所含的相同影像簽署驗證功能,告訴您檔案是否已由受信任的發行者進行數位簽署。 此外,它也會報告您指定的映射或映射的檔案版本資訊,包括產品名稱、描述、公司名稱和版本。 這項資訊類似于 Windows XP 和 Windows Server 2003 報表隨附的 Filever 工具,但 Sigcheck 也會回報檔案原本是「連結」或針對未簽署的影像建立的時間戳記,以及為簽署的影像簽署的時間戳記。 最後,最簽署的雜湊會使用本身簽署的金鑰進行簽署,這是一種形成憑證簽署鏈的順序。 Sigcheck 支援命令列選項,它會指示其使用鏈中每個簽署者的相關資訊來列印簽署鏈。

Sigcheck 的其中一項潛在的安全性相關使用方式,就是調查任何未簽署的 .exe .dll 或 .sys Windows 安裝的根目錄下的任何目錄中映射 (通常是 \ Windows) 。 您可以使用此命令列執行 Sigcheck,輕鬆地識別未簽署的 .exe 映射,例如:

sigcheck -s -u c:\windows\*.exe

所有 Microsoft 影像都應該包含有效的簽章,但是上述命令會很可惜地顯示多個,而導致可能遭到惡意探索的檔案隱藏惡意程式碼。

下載 Sigcheck,網址為
http://www.sysinternals.com/ntw2k/source/misc.shtml

BGINFO V 4.07

這項 Bginfo 的次要更新,這項工具會顯示您在執行該資訊的電腦桌面上所設定的資訊,以方便您進行觀看,對於必須延展以符合您所指定大小、CPU 偵測增強功能、支援 MySQL 的工具,以及改善的多重監視器顯示相容性的工具,都有更好的支援。

下載 Bginfo,網址為
http://www.sysinternals.com/ntw2k/freeware/bginfo.shtml

REGJUMP V1。0

如果您曾經想要建立特定登錄機碼的 Explorer 快捷方式,或是只要輸入機碼的路徑,並讓 Regedit 開啟目標位置,那麼您就會發現 Regjump 很有用。 Regjump 是一種命令列公用程式,它會使用我們在 Regmon 中率先提供的相同登錄「跳至」技術。 將登錄路徑指定為 Regjump 作為其命令列引數,Regedit 將會開啟並流覽至指定的索引鍵或值。

下載 Regjump,網址為
http://www.sysinternals.com/ntw2k/source/misc.shtml

HEX2DEC V1。0

使用偵錯工具和反組解碼時,我常發現自己必須將十六進位轉換成 decimal,反之亦然。 最後,我會厭倦開啟 [計算]、輸入數位,然後切換基底來查看轉換,所以我撰寫了一個小型的命令列轉換公用程式。 Hex2dec 會轉換任一方向,並以十六進位表示輸入,如果它有 "0x" 或 "x" 前置詞,或包含字母 ' a'-'z-'f ' (不區分大小寫) 。

下載 Hex2dec,網址為
http://www.sysinternals.com/ntw2k/source/misc.shtml

TCPVCON V 2.34

Netstat 是內建在 Windows NT 和更高版本中的命令列公用程式,會顯示系統上目前作用中的 TCP 和 UDP 端點。 Microsoft 在 Windows XP 中引進的版本包含有用的資訊片段:開啟每個端點之進程的處理序識別碼 (PID) 。 不過,若要判斷進程的名稱或任何其他相關資訊,您必須開啟進程清單工具,並尋找該 PID 的進程。

TCPView 是一種 Sysinternals GUI 應用程式,它會顯示相同的作用中端點資訊,但比 Netstat 更方便,因為它包含程式的名稱、在 DNS 名稱與原始 IP 位址之間快速切換,以及將新的和已刪除的端點標示為醒目顯示。 TCPView 的下載現在包含 TCPVCon,也就是您想要使用命令列介面的 TCPView 主控台版本。 與 Netstat 不同的是,TCPVCon 會顯示與每個端點相關聯之進程的完整路徑,並包含以 CSV 格式傾印輸出的參數。

下載 Tcpvcon,網址為
http://www.sysinternals.com/ntw2k/source/tcpview.shtml

PSTOOLS 更新

PsKill 和 PsLoglist 是在過去幾個月內獲得增強功能的兩個 PsTools。 PsKill 是一種命令列公用程式,可在本機或遠端系統上終止進程,現在支援 -t 參數,讓您可以結束整個進程樹狀結構。 許多人都要求這個選項,讓您輕鬆地清除批次腳本的失控樹狀結構。

PsLoglist 是一種命令列工具,可在本機或遠端系統上傾印事件記錄檔。 最近的更新已將5個選項新增至其已冗長的命令列限定詞清單中。 新引數可讓您從輸出中排除指定的事件種類或事件來源,或只在過去幾分鐘或幾小時內傾印事件。 它現在也支援在您終止它之前執行的事件日誌監視模式,並在事件記錄檔記錄產生時加以列印。

下載 PsTools,包括 PsKill 和 PsLoglist,網址為:
http://www.sysinternals.com/ntw2k/freeware/pstools.shtml

SYSINTERNALS AT WWW.MICROSOFT.COM

以下是 Microsoft 知識庫中 Sysinternals 參考的最新內容, (KB) 自從上次電子報以來發行的文章。 這會將 Sysinternals 的公用 KB 參考總數帶到63。

  • 修正: Windows 的 Windows Media Player 9 系列經常存取登錄,可能會影響效能http://support.microsoft.com/?kbid=886423

  • GDI+ 1.0 安全性更新總覽http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsecure/html/gdiplus10security.asp

  • 登錄編輯 http://support.microsoft.com/default.aspx?scid=kb ; en-gb; 835818

  • 當您嘗試存取 Project view 時,收到「沒有資訊可顯示在此視圖中」錯誤訊息 http://support.microsoft.com/default.aspx?scid=kb ; en-us; 810596

內部資訊

網際網路流覽

在一年前,我宣佈我已從 IE 切換至 Mozilla,因為 IE 缺乏適當的網際網路瀏覽器所需的功能,例如快顯視窗封鎖、索引標籤式流覽、自動填寫表單,以及廣告篩選。 不久之後,有人將我指向烈酒 Browser,這是一個使用 IE 的小型下載 (它不是它自己的瀏覽器) 為它提供所有功能。 Mozilla 的相當笨拙 UI 和與特定網站之間的不相容性,我經常決定切換的方式很簡單。 雖然新的 FireFox 版本在這兩方面都更好,但仍有一些不相容的網站 (例如 Windows Update,例如) ,所以我還沒被迫切換。

Microsoft 的進度緩慢改進了 ie,即使是以 ie 的中等 Windows XP SP2 的增強功能,也應將其太可惜到購買烈酒 Browser,並將其建立到下一版的 IE。

下載烈酒 Browser,網址為: http://www.avantbrowser.com

使用 LIVEKD 對病假系統進行疑難排解

LiveKd 是我在 Windows 2000 的第3版內撰寫的公用程式 (它現在是 Sysinternals) 上的免費軟體工具。 它可讓您使用 Windbg 或 Kd Windows 封裝的 Microsoft 偵錯工具,來執行通常用來調查處于線上和作用中系統上損毀傾印和凍結系統的偵錯工具命令。 當您在 Windows XP 及更新版本上執行時,Microsoft 引進了類似于偵錯工具的功能,稱為「本機內核偵錯工具」。 您可以使用 LiveKd 進行幾件事,但您無法使用本機內核偵錯工具。 例如,您不能查看具有本機內核偵錯工具的核心模式執行緒堆疊,以及清單核心模組命令, lm k 只會在本機內核偵錯工具中執行時,只列出作業系統核心,而不會列出其他的載入驅動程式。 這兩個命令都可在 LiveKd 中運作。

另一個無法在本機內核偵錯工具中運作,但在 LiveKd 中的命令是 .dump 。 我從 Microsoft 產品支援服務中學到的 (PSS) 工程師的 .dump 命令很適合用來進行病假系統的疑難排解。 遇到問題,但是提供 web 或資料庫等服務的電腦,可能不是重新開機或傳統的偵測,在調查期間暫停系統的候選。 執行 LiveKd 並執行. 傾印會產生損毀傾印格式的檔案,其中包含系統實體記憶體的內容。 您可以藉由將傾印檔案載入 WinDbg 或 Kd,將傾印檔案放到另一部電腦上,藉此分析作業系統和服務應用程式的狀態,進而避免在您找出問題的原因時中斷。

下載 LiveKd,網址為
http://www.sysinternals.com/ntw2k/freeware/livekd.shtml

CREEKSIDE?

我最近調查了 Windows XP Service Pack 2 版本的 Winlogon 的初始化,這是負責呈現登入使用者介面的系統進程,當我在反組解碼中的程式碼中,Winlogon 會檢查目錄中名為 ediskeer.dll 的 DLL 是否存在時, \Windows\System32 可確保其會以受信任的簽署者進行數位簽署(如果有的話)。 然後將它載入,然後呼叫由 DLL 匯出的未命名函式。 當有人登入系統時所執行的 Winlogon 程式碼,也會在初始化期間載入 DLL 時呼叫。

我已在系統上尋找 DLL,但找不到它,也不在 Service Pack 2 CD 上。 那麼 DLL 是什麼呢? 使用 Microsoft 為作業系統提供的偵錯工具符號時,我可以看到 Winlogon 設定名為 "Creekside" 的變數(如果 ediskeer.dll 存在且已簽署),然後我發現 "ediskeer" 是由反向順序的最後8個字母 "Creekside" 所組成。 我不確定 Creekside 是指什麼,但是我強烈懷疑 DLL 是僅隨附于 Windows XP 入門版的 Windows xp,也就是 Microsoft 最近針對開發國家所引進的低成本版本 XP。 入門版是以與 Windows XP Professional 和家用版相同的作業系統核心為基礎,但它會限制使用者可同時執行的應用程式數目限制。 如果我是正確的,Winlogon 會載入 DLL 以強制執行該限制,並在每次新的使用者登入時啟用它。

CHKREG 登錄 FIXER

多年來的 Bryce,我對像是 Chkdsk 的登錄有許多要求,也就是檔案系統一致性檢查公用程式。 我們一直都沒寫過,因為我們覺得某個物件太小而無法證明工作量。 在一年前,Microsoft 發行了一個已知的 Chkreg,這是一個可修正許多類型登錄損毀的登錄 Chkdsk。

可惜的是,Chkreg 只支援 Windows 2000 (它也可以在 Windows NT 4 和 Windows XP 登錄上運作,而且會實作為使用原生 API 而非) api 的「原生」應用程式,因此它不會在 Windows 下執行。 當您下載它時,您必須將它安裝到一組六個 Windows 安裝開機軟碟,這是一種繁瑣且耗時的開一整天。 我們已與 Chkreg 的開發人員聯繫,並建議他們公開發行 Windows 版本,我們已瞭解 Microsoft 產品支援服務 (PSS) 正在內部使用,但在何時或他們將發行它時,並沒有任何單字。

您可以下載 Chkreg,網址為:
http://www.microsoft.com/downloads/details.aspx?FamilyID=56D3C201-2C68-4DE8-9229-CA494362419C&displaylang = en

WINDOWS 記憶體診斷

當系統發生損毀的系統時,其中一個最令人沮喪的 Windows 使用者體驗。 在大多數情況下,錯誤是錯誤的協力廠商設備磁碟機,您可以藉由停用驅動程式或更新為具有修正程式的版本來修正此問題。 關於回報給 Microsoft 線上當機分析的10% 損毀, (OCA) 是由硬體問題所造成,大部分是磁片和記憶體相關的。

如果您收到 OCA 無法診斷的損毀,或您懷疑發生記憶體問題,您應該花幾分鐘的時間使用 microsoft Windows 記憶體診斷 (WMD) 是 microsoft 最近發行的記憶體檢查工具。 WMD 的安裝程式會要求磁片或 CD,以儲存 WMD 程式。 當您將電腦從您建立的磁片磁碟機開機時,WMD 會執行,並執行電腦記憶體的完整測試,將其進度和任何問題回報到畫面上。 如果您有記憶體錯誤 WMD 可以節省 Windows 損毀的挫折。

您可以下載位於 http://www.microsoft.com/downloads/details.aspx?FamilyID=56D3C201-2C68-4DE8-9229-CA494362419C& displaylang = en 的 Windows 記憶體診斷

研究未記載的介面

我在電子報先前的 Process Explorer 增強功能一節中所述的 DEP 狀態功能會依賴未記載的函式。 我認為有很多人都有興趣學習如何探索,而不需要存取 Windows 的原始程式碼 (Dave 索羅門群島、我的 Windows 內部的《、具有存取權,但我不) 、函數及其適當的使用方式。

我的分析程式中的第一個步驟是假設進程的 DEP 狀態查詢會透過 API 路由傳送 NtQueryInformationProcess 。 許多 Windows API 函式會使用 NtQueryInformationProcess 介面取得資訊,以取得處理常式的相關資訊。 這個函式是 Windows 驅動程式開發工具組的 Ntddk .h 檔案中的原型 (DDK) 可透過「原生 API」系統呼叫介面從使用者模式存取:

NTSYSAPI
NTSTATUS
NTAPI
NtQueryInformationProcess(
    IN HANDLE ProcessHandle,
    IN PROCESSINFOCLASS ProcessInformationClass,
    OUT PVOID ProcessInformation,
    IN ULONG ProcessInformationLength,
    OUT PULONG ReturnLength OPTIONAL
);

前兩個引數是處理常式和 "process information class" 的控制碼。 PROCESSINFOCLASS 列舉(如下所示)的前幾個定義也包含在 NTDDK 中。H:

typedef enum _PROCESSINFOCLASS {
    ProcessBasicInformation,
    ProcessQuotaLimits,
    ProcessIoCounters,
    ProcessVmCounters,
    ProcessTimes,
//...

因為 dep 是在 Windows XP SP2 中引進,所以不會預期 dep 查詢的資訊類別會列在 Windows XP 或 Windows Server 2003 版本的 Ntddk 中,而且快速檢查確認其不存在。 因此,我必須調查 SP 2 Ntoskrnl.exe 的反組譯, NtQueryInformationProcess 也就是執行的映射,以查看是否可以判斷 DEP 查詢資訊類別廣為人知且實證。

解譯器會取得可執行檔映射,並列出構成程式碼的元件語言指令。 元件語言指令會直接對應到處理器所執行的指示。 我使用的解譯器是從 IDA Pro, http://www.datarescue.com 因為它瞭解 Microsoft 的 debug 資訊檔案,而且會將資訊整合到組合語言輸出中。 在反組解碼中,我在 NtQueryInformationProcess 開頭髮現了一系列的指令,採用處理資訊類別參數並執行每個類別的特定程式碼。 因為我知道資訊類別是新的,所以我可以跳過在 Ntddk 列舉中看到定義的類別執行 PROCESSINFOCLASS 。 這會將我的調查範圍縮小到自 Windows XP 版本以來引進的大約3或4個新類別。

其中一個類別(對應至0x22 值的類別) ProcessInformationClass 會將程式碼路徑帶到名為的函式 MmGetExecuteOptions ,其中的開頭如下所示:

PAGE:0054D7CC ; __stdcall MmGetExecuteOptions(x)
PAGE:0054D7CC _MmGetExecuteOptions@4 proc near ; CODE XREF:
NtQueryInformationPro0063ess(x,x,x,x,x)+251C p
PAGE:0054D7CC
PAGE:0054D7CC arg_4 = dword ptr 8
PAGE:0054D7CC
PAGE:0054D7CC mov edi, edi
PAGE:0054D7CE push ebp
PAGE:0054D7CF mov ebp, esp
PAGE:0054D7D1 mov eax, large fs:124h
PAGE:0054D7D7 mov eax, [eax+44h]
PAGE:0054D7DA mov cl, [eax+6Bh]
PAGE:0054D7DD mov eax, [ebp+arg_4]
PAGE:0054D7E0 and dword ptr [eax], 0
PAGE:0054D7E3 xor edx, edx
PAGE:0054D7E5 inc edx
PAGE:0054D7E6 test dl, cl
PAGE:0054D7E8 jz short loc_54D7EC
PAGE:0054D7EA mov [eax], edx
PAGE:0054D7EC
PAGE:0054D7EC loc_54D7EC: ; CODE XREF:
MmGetExecuteOptions(x)+1C j
PAGE:0054D7EC test cl, 2
PAGE:0054D7EF jz short loc_54D7F4
PAGE:0054D7F1 or dword ptr [eax], 2
PAGE:0054D7F4
PAGE:0054D7F4 loc_54D7F4: ; CODE XREF:
MmGetExecuteOptions(x)+23 j
PAGE:0054D7F4 test cl, 4
PAGE:0054D7F7 jz short loc_54D7FC
PAGE:0054D7F9 or dword ptr [eax], 4
PAGE:0054D7FC

IDA Pro 在上述輸出中的第一行顯示,表示函式會接受一個引數,而這也是接收 DEP 設定之變數的指標。 我花了足夠的時間來查看 Windows 核心的 disassemblies,以將指令序列辨識 mov eax, large fs:124h; mov eax,[eax+44h]_KTHREAD 處理器控制區域中目前線程資料結構的讀取 (PCR) 結構,後面接著 KPROCESS 結構中位移0x44 的欄位參考 _KTHREAD 。 在結構中,于位移0x6B 的位元組中讀取個別位的指示 _KPROCESS

_KPROCESS 我在本機內核偵錯工具模式下啟動的 Windbg 中,不知道 0x6B offset 的結果,而是執行命令 dt _kprocess ,報告如下:

+0x06b Flags : _KEXECUTE_OPTIONS

Looking at that structure with another dt command showed the bit definitions:

+0x000 ExecuteDisable : Pos 0, 1 Bit
+0x000 ExecuteEnable : Pos 1, 1 Bit
+0x000 DisableThunkEmulation : Pos 2, 1 Bit
+0x000 Permanent : Pos 3, 1 Bit
+0x000 ExecuteDispatchEnable : Pos 4, 1 Bit
+0x000 ImageDispatchEnable : Pos 5, 1 Bit
+0x000 Spare : Pos 6, 2 Bits

當然,這些位與 DEP 相關,而且會出現,將 MmGetExecuteOptions 它們從該結構複製到作為引數傳遞至之記憶體位置中的對應位 ProcessInformationNtQueryInformationProcess 。 因此,我決定可以透過呼叫 NtQueryInformationProcessProcessInformationClass 0x22、 DWORD (4 位元組整數) 的位址,以及4的長度,來查詢進程的 DEP 狀態。 它會出現,它只會傳回 MmGetExecuteOptions 目前進程的旗標,並會忽略 ProcessHandle 參數 (process Explorer 透過 API) 將其協助程式驅動程式切換到其他進程,以查詢其他進程的 DEP 狀態 KeAttachProcess

除了 Windows 的64位版本有幾個微妙的差異之外,我也提供了64位版本的 Process Explorer。 在64位 Windows MmGetExecuteOptions 需要 ProcessHandle 為-1,而且 STATUS_INVALID_PARAMETER 如果目前的進程是64位進程,則會傳回錯誤,因為64位進程的 DEP 一律為開啟。 我使用了 Windbg 來拆解64位版本的 Ntoskrnl.exe,但是之後取得了支援 AMD64 映射反組解碼的 IDA Pro 版本。

內部訓練

三藩市的 WINDOWS 連接

我是在 Windows 線上會議中提供兩個會話,這是由 Windows Pro 雜誌,並于三藩市17-20 年4月的。 其中一個是名為「瞭解和對抗惡意程式碼:病毒、間諜軟體和 Rootkit」的一般會話,其中說明惡意程式碼如何惡意探索安全性措施、如何使用稱為「rootkit」的複雜技術來加以隱藏,以及如何從系統中加以偵測和清除。

另一個會話是「針對 Windows 的記憶體問題進行疑難排解」,我將示範如何回答舊的年齡「我在工作管理員中看到的值有何意義」、「什麼是使用我的記憶體」,以及「我應該將分頁檔放在哪裡」問題。

下載會議手冊並報名
http://www.devconnections.com/shows/win/default.asp?s=60#

實際操作 WINDOWS 內部/SYSINTERNALS 類別,依 MARK RUSSINOVICH

花5天的 Mark Russinovich 和 David 索羅門群島,新書籍的作者 Windows 第4版,學習先進的疑難排解技巧,同時探究到 Windows NT/2000/XP/2003 作業系統核心的內部。 如果您是 IT 專業人員,部署和支援 Windows 的伺服器和工作站,當發生問題時,您必須能夠在表面上深入探討。 瞭解 Windows 作業系統的本質,以及瞭解如何使用 advanced 疑難排解工具,可協助您處理這類問題,並更有效地瞭解系統效能問題。 瞭解內部可協助程式設計人員更充分利用 Windows 平臺,以及提供先進的調試技術。 而且因為課程是以完整存取 Windows 核心原始程式碼和開發人員來開發,所以您知道您正在取得真正的故事。

即將推出的日期包括:

  • 6-10 年6月,佛羅里達州奧蘭多
  • 德國11-15 年7月,德國
  • 4月19-23 日,加州三藩市
  • 德克薩斯州奧斯丁,德克薩斯州德克薩斯州5-9

注意:這是實際操作類別,每位出席者都必須攜帶自己的膝上型電腦 (設定指示將會在) 之前傳送。

您將深入瞭解 Windows NT/2000/XP/2003 的核心架構,包括進程的內部、執行緒排程、記憶體管理、i/o、服務、安全性、登錄和開機程式。 此外也涵蓋了先進的疑難排解技術,例如惡意程式碼消毒、損毀傾印 (藍色螢幕) 分析,以及取得過去的開機問題。 您也將學習如何使用 www.sysinternals.com (的重要工具,例如 Filemon、Regmon、 Process Explorer) 來疑難排解系統和應用程式的各種問題,例如緩慢的電腦、病毒偵測、DLL 衝突、許可權問題以及登錄問題。 這些工具是由 Microsoft 產品支援每日使用,並可有效地解決各種不同的桌面和伺服器問題,因此,熟悉其作業和應用程式將可協助您處理 Windows 上的不同問題。 將會提供真實世界範例,讓您能夠成功地應用這些工具來解決真正的問題。

若要註冊,請造訪 http://www.sysinternals.com/troubleshoot.shtml


感謝您閱讀 Sysinternals 電子報。

Ottoh 的2005年1月5日星期三發行,4:36 PM

[電子報封存 ^][ volume 6,Number 2][volume 7,特殊公告 ]

[電子報封存 ^][ volume 6,Number 2][volume 7,特殊公告 ]

系統內部電子報第7卷,第1篇

http://www.sysinternals.com
著作權 (C) 2005 Mark Russinovich