Microsoft 資訊安全諮詢:Indeo 轉碼器中的弱點可能會允許遠端程式碼執行:2009 年 12 月 8 日

重要 本文包含如何降低安全性設定,或關閉電腦安全性功能的資訊。 您可以進行這些變更,為特定的問題尋求因應措施。 在進行這些變更之前,建議您先評估在特定環境中實作此因應措施的相關風險。 如果您決定使用此因應措施,請採用任何其他的適當步驟,以協助保護電腦。

Microsoft 已向 IT 專業人員發佈關於此問題的 Microsoft 安全性建議。 安全性諮詢包含其他安全性相關資訊。 若要檢視資訊安全諮詢,請造訪下列 Microsoft 網站:

http://www.microsoft.com/technet/security/advisory/954157.mspx

簡介

關於 Microsoft 內建 Indeo 轉碼器

Indeo 轉碼器的使用方式有多種,而某些應用程式可能需要該轉碼器。 當您造訪合法網站和公司環境的企業營運應用程式時,可能需要 Indeo 轉碼器。 對於執行舊版 Windows 作業系統的客戶而言,這可能是較常見的情況。 另一方面,不必使用編解碼器的客戶可能需要採取額外的步驟並完全取消註冊編解碼器。 本文涵蓋兩種取消註冊轉碼器的方式:使用下方提供的 Fix-it 選項,或手動取消註冊轉碼器。

使用 Fix-it 選項取消註冊 Microsoft 內建 Indeo 轉碼器

按一下下表第一欄中的 [ 修正此問題 ] 按鈕,以取消登錄電腦上的 Indeo 轉碼器。 執行此操作之後,任何應用程式都無法使用該轉碼器。 此工具會從系統取消註冊轉碼器二進位檔,並新增 ACL 以防止其使用。 如果您決定在未來執行此動作,可以使用第二個 Fix-it 來撤銷此操作。

使用此 [修正] 按鈕可自動取消登錄 Indeo 轉碼器檔案 使用此 [修正] 按鈕可自動重新登錄 Indeo 轉碼器檔案

                
              

手動取消註冊 Microsoft 內建 Indeo 轉碼器

有多個檔案與 Microsoft 內建 Indeo 轉碼器相關聯。 視 Windows 作業系統而定,此處所列的並非所有檔案都會存在於電腦上。 若要手動取消註冊 Microsoft 內建 Indeo 轉碼器檔案的使用者,必須確認電腦上有這些檔案,找出檔案所在的目錄,然後執行本文隨附的範例指令碼。

若要手動從系統中移除 Microsoft 內建轉碼器,建議您將 Microsoft 內建轉碼器二進位檔重新命名為類似 'binaryname.old'。 這使您可以在將來想要重新獲得 Indeo 功能時反轉該過程。 本文包含範例指令碼,在您的環境中以更自動化的方式執行此動作。

注意:如果您嘗試播放需要 Indeo 轉碼器的內容,從系統取消註冊 Indeo 轉碼器可能會導致應用程式相容性問題。

注意:下表列出您可以取消註冊之 Microsoft Indeo 內建轉碼器的二進位名稱和版本。 不包含任何協力廠商轉碼器。

Windows 2000 版本
ir32_32.dll 3.24.15.3
ir41_32.ax 4.51.16.3
ir41_qc.dll 4.30.62.2
ir41_qcx.dll 4.30.64.1
ir50_32.dll 5.2562.15.55
ir50_qc.dll 5.0.63.48
ir50_qcx.dll 5.0.64.48
ivfsrc.ax 5.10.2.51
Windows Server 2003 或 Windows XP x64 版本 版本
ir32_32.dll 3.24.15.3
ir41_32.ax 4.51.16.3
ir41_qc.dll 4.30.62.2
ir41_qcx.dll 4.30.64.1
ir50_32.dll 5.2562.15.55
ir50_qc.dll 5.0.63.48
ir50_qcx.dll 5.0.64.48
Windows XP 版本
ir32_32.dll 3.24.15.3
ir41_32.ax 4.51.16.3
ir41_qc.dll 4.30.62.2
ir41_qcx.dll 4.30.64.1
ir50_32.dll 5.2562.15.55
ir50_qc.dll 5.0.63.48
ir50_qcx.dll 5.0.64.48

移除 Indeo 轉碼器的範例指令碼

rem - list of indeo files
rem 
rem ir32_32.dll
rem ir41_32.ax 
rem ir41_qc.dll 
rem ir41_qcx.dll 
rem ir50_32.dll 
rem ir50_qc.dll 
rem ir50_qcx.dll 
rem ivfsrc.ax 

rem backup operations  32-bit

copy %windir%\system32\ir32_32.dll %windir%\system32\ir32_32.dll.old
copy %windir%\system32\dllcache\ir32_32.dll %windir%\system32\dllcache\ir32_32.dll.old
copy %windir%\system32\ir41_32.ax %windir%\system32\ir41_32.ax.old
copy %windir%\system32\dllcache\ir41_32.ax %windir%\system32\dllcache\ir41_32.ax.old
copy %windir%\system32\ir41_qc.dll %windir%\system32\ir41_qc.dll.old
copy %windir%\system32\dllcache\ir41_qc.dll %windir%\system32\dllcache\ir41_qc.dll.old
copy %windir%\system32\ir41_qcx.dll %windir%\system32\ir41_qcx.dll.old
copy %windir%\system32\dllcache\ir41_qcx.dll %windir%\system32\dllcache\ir41_qcx.dll.old
copy %windir%\system32\ir50_32.dll %windir%\system32\ir50_32.dll.old
copy %windir%\system32\dllcache\ir50_32.dll %windir%\system32\dllcache\ir50_32.dll.old
copy %windir%\system32\ir50_qc.dll %windir%\system32\ir50_qc.dll.old
copy %windir%\system32\dllcache\ir50_qc.dll %windir%\system32\dllcache\ir50_qc.dll.old
copy %windir%\system32\ir50_qcx.dll %windir%\system32\ir50_qcx.dll.old
copy %windir%\system32\dllcache\ir50_qcx.dll %windir%\system32\dllcache\ir50_qcx.dll.old
copy %windir%\system32\ivfsrc.ax %windir%\system32\ivfsrc.ax.old
copy %windir%\system32\dllcache\ivfsrc.ax %windir%\system32\dllcache\ivfsrc.ax.old

rem backup operations  wow64

copy %windir%\syswow64\ir32_32.dll %windir%\syswow64\ir32_32.dll.old
copy %windir%\system32\dllcache\wir32_32.dll %windir%\system32\dllcache\wir32_32.dll.old
copy %windir%\syswow64\ir41_32.ax %windir%\syswow64\ir41_32.ax.old
copy %windir%\system32\dllcache\wir41_32.ax %windir%\system32\dllcache\wir41_32.ax.old
copy %windir%\syswow64\ir41_qc.dll %windir%\syswow64\ir41_qc.dll.old
copy %windir%\system32\dllcache\wir41_qc.dll %windir%\system32\dllcache\wir41_qc.dll.old
copy %windir%\syswow64\ir41_qcx.dll %windir%\syswow64\ir41_qcx.dll.old
copy %windir%\system32\dllcache\wir41_qcx.dll %windir%\system32\dllcache\wir41_qcx.dll.old
copy %windir%\syswow64\ir50_32.dll %windir%\syswow64\ir50_32.dll.old
copy %windir%\system32\dllcache\wir50_32.dll %windir%\system32\dllcache\wir50_32.dll.old
copy %windir%\syswow64\ir50_qc.dll %windir%\syswow64\ir50_qc.dll.old
copy %windir%\system32\dllcache\wir50_qc.dll %windir%\system32\dllcache\wir50_qc.dll.old
copy %windir%\syswow64\ir50_qcx.dll %windir%\syswow64\ir50_qcx.dll.old
copy %windir%\system32\dllcache\wir50_qcx.dll %windir%\system32\dllcache\wir50_qcx.dll.old
copy %windir%\syswow64\ivfsrc.ax %windir%\syswow64\ivfsrc.ax.old
copy %windir%\system32\dllcache\wivfsrc.ax %windir%\system32\dllcache\wivfsrc.ax.old

rem deletion operations - 32bit

if exist %windir%\system32\ir32_32.dll.old (
    del %windir%\system32\ir32_32.dll
    )

if exist %windir%\system32\dllcache\ir32_32.dll.old (
    del %windir%\system32\dllcache\ir32_32.dll
    )

if exist %windir%\system32\ir41_32.ax.old (
    del %windir%\system32\ir41_32.ax
    )

if exist %windir%\system32\dllcache\ir41_32.ax.old (
    del %windir%\system32\dllcache\ir41_32.ax
    )

if exist %windir%\system32\ir41_qc.dll.old (
    del %windir%\system32\ir41_qc.dll
    )

if exist %windir%\system32\dllcache\ir41_qc.dll.old (
    del %windir%\system32\dllcache\ir41_qc.dll
    )

if exist %windir%\system32\ir41_qcx.dll.old (
    del %windir%\system32\ir41_qcx.dll
    )

if exist %windir%\system32\dllcache\ir41_qcx.dll.old (
    del %windir%\system32\dllcache\ir41_qcx.dll
    )

if exist %windir%\system32\ir50_32.dll.old (
    del %windir%\system32\ir50_32.dll
    )

if exist %windir%\system32\dllcache\ir50_32.dll.old (
    del %windir%\system32\dllcache\ir50_32.dll
    )

if exist %windir%\system32\ir50_qc.dll.old (
    del %windir%\system32\ir50_qc.dll
    )

if exist %windir%\system32\dllcache\ir50_qc.dll.old (
    del %windir%\system32\dllcache\ir50_qc.dll
    )

if exist %windir%\system32\ir50_qcx.dll.old (
    del %windir%\system32\ir50_qcx.dll
    )

if exist %windir%\system32\dllcache\ir50_qcx.dll.old (
    del %windir%\system32\dllcache\ir50_qcx.dll
    )

if exist %windir%\system32\ivfsrc.ax.old (
    del %windir%\system32\ivfsrc.ax
    )

if exist %windir%\system32\dllcache\ivfsrc.ax.old (
    del %windir%\system32\dllcache\ivfsrc.ax
    )

rem deletion operations - wow64

if exist %windir%\syswow64\ir32_32.dll.old (
    del %windir%\syswow64\ir32_32.dll
    )

if exist %windir%\system32\dllcache\wir32_32.dll.old (
    del %windir%\system32\dllcache\wir32_32.dll
    )

if exist %windir%\syswow64\ir41_32.ax.old (
    del %windir%\syswow64\ir41_32.ax
    )

if exist %windir%\system32\dllcache\wir41_32.ax.old (
    del %windir%\system32\dllcache\wir41_32.ax
    )

if exist %windir%\syswow64\ir41_qc.dll.old (
    del %windir%\syswow64\ir41_qc.dll
    )

if exist %windir%\system32\dllcache\wir41_qc.dll.old (
    del %windir%\system32\dllcache\wir41_qc.dll
    )

if exist %windir%\syswow64\ir41_qcx.dll.old (
    del %windir%\syswow64\ir41_qcx.dll
    )

if exist %windir%\system32\dllcache\wir41_qcx.dll.old (
    del %windir%\system32\dllcache\wir41_qcx.dll
    )

if exist %windir%\syswow64\ir50_32.dll.old (
    del %windir%\syswow64\ir50_32.dll
    )

if exist %windir%\system32\dllcache\wir50_32.dll.old (
    del %windir%\system32\dllcache\wir50_32.dll
    )

if exist %windir%\syswow64\ir50_qc.dll.old (
    del %windir%\syswow64\ir50_qc.dll
    )

if exist %windir%\system32\dllcache\wir50_qc.dll.old (
    del %windir%\system32\dllcache\wir50_qc.dll
    )

if exist %windir%\syswow64\ir50_qcx.dll.old (
    del %windir%\syswow64\ir50_qcx.dll
    )

if exist %windir%\system32\dllcache\wir50_qcx.dll.old (
    del %windir%\system32\dllcache\wir50_qcx.dll
    )

if exist %windir%\syswow64\ivfsrc.ax.old (
    del %windir%\syswow64\ivfsrc.ax
    )

if exist %windir%\system32\dllcache\wivfsrc.ax.old (
    del %windir%\system32\dllcache\wivfsrc.ax
    )

安裝此安全性更新後,請重新啟用 Indeo 功能

警告: 這個因應措施可能會使電腦或網路更容易遭受惡意使用者或惡意軟體 (例如病毒) 的攻擊。 雖然不建議使用此因應措施,但我們仍提供這項資訊,讓您可以自行選擇是否採用這項因應措施。 您需自行承擔使用此因應措施的風險。

此安全性更新不讓 Windows Internet Explorer 或 Windows 媒體播放器使用轉碼器,藉此停用部分 Indeo 功能。 某些使用者可能需要這項功能,並可還原此安全性更新所做的登錄機碼變更,以重新啟用 Indeo 轉碼器這項功能。 登錄機碼變更在 Windows 作業系統的不同版本上是不同的。

注意:還原登錄機碼變更可能會使用戶面臨安全性問題,並削弱電腦的安全性設定檔。

若要在不解除安裝安全性更新的情況下還原 APPCOMPAT 風險降低,請參閱下列適用於您電腦的 Windows 作業系統特定指示。

Microsoft Windows 2000

刪除或重新命名下列登錄子機碼。

元件 登錄子機碼
Iexplore.exe HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\AppCompatibility\Iexplore.exe
Wmplayer.exe HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\AppCompatibility\Wmplayer.exe
Mplayer2.exe HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\AppCompatibility\Mplayer2.exe
Mplay32.exe HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\AppCompatibility\Mplay32.exe

Windows XP

建立下列登錄子機碼。

元件 登錄子機碼
Iexplore.exe HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD: {5042648C-F439-468D-859B-6CD12BA02D3A}
數值資料: (十六進位) 0x00000001
Wmplayer.exe HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD: {46676BCD-88EB-42E1-B542-6929118E8029}
數值資料: (十六進位) 0x00000001
Mplayer2.exe HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD: {F1DAD733-5C90-4212-AE22-FFDAEB2C5004}
數值資料: (十六進位) 0x00000001
Mplayer32.exe HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD:{A5153E0F-B708-46AD-9011-8BE6CA921340}
數值資料: (十六進位) 0x00000001

Windows Server 2003、x86 和 x64 版本

建立下列登錄子機碼。

元件 登錄子機碼
Iexplore.exe HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD: {5042648C-F439-468D-859B-6CD12BA02D3A}
數值資料: (十六進位) 0x00000001

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD: {5042648C-F439-468D-859B-6CD12BA02D3A}
數值資料: (十六進位) 0x00000001

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD:{A731342D-6D9B-4FE5-970D-5A3D0B6BBB6C}
數值資料: (十六進位) 0x00000001

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD:{A731342D-6D9B-4FE5-970D-5A3D0B6BBB6C}
數值資料: (十六進位) 0x00000001
Wmplayer.exe HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD: {46676BCD-88EB-42E1-B542-6929118E8029}
數值資料: (十六進位) 0x00000001

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD: {46676BCD-88EB-42E1-B542-6929118E8029}
數值資料: (十六進位) 0x00000001

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD: {405BCD49-9AAE-47C8-8E30-A8A504B626CB}
數值資料: (十六進位) 0x00000001

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD: {405BCD49-9AAE-47C8-8E30-A8A504B626CB}
數值資料: (十六進位) 0x00000001
Mplayer2.exe HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD: {F1DAD733-5C90-4212-AE22-FFDAEB2C5004}
數值資料: (十六進位) 0x00000001

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD: {F1DAD733-5C90-4212-AE22-FFDAEB2C5004}
數值資料: (十六進位) 0x00000001

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD: {75A1B058-2189-422D-A967-F7AFF142237C}
數值資料: (十六進位) 0x00000001

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD: {75A1B058-2189-422D-A967-F7AFF142237C}
數值資料: (十六進位) 0x00000001
Mplayer32.exe HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD:{A5153E0F-B708-46AD-9011-8BE6CA921340}
數值資料: (十六進位) 0x00000001

HKEY_LOCAL_MACHINE\SOFTWARE\ Wow6432Node\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD:{A5153E0F-B708-46AD-9011-8BE6CA921340}
數值資料: (十六進位) 0x00000001

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD: {5B8661D5-ECE1-4BD9-93E8-5B7E56544EE2}
數值資料: (十六進位) 0x00000001

HKEY_LOCAL_MACHINE\SOFTWARE\ Wow6432Node\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
REG_DWORD: {5B8661D5-ECE1-4BD9-93E8-5B7E56544EE2}
數值資料: (十六進位) 0x00000001

已知問題

Quartz.dll 檔案列為未簽署的二進位檔案

請考慮以下案例:

  • 您在執行 Microsoft Windows 2000 Service Pack 4 且安裝了 DirectX 7 或 DirectX 8 的電腦上安裝此更新。
  • 您將系統升級至 DirectX 8 或 DirectX 9。
  • 您嘗試使用此更新再次更新系統。

在此案例中,Quartz.dll 檔案已成功更新為安全版本。 不過,檔案可能會列為未簽署的二進位檔案。

若要避免這個問題,請遵循下列步驟:

  1. 解除安裝舊版 Microsoft DirectShow 的更新。
  2. 手動刪除下列目錄檔案:
    %systemroot%\system32\catroot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\KB971633.cat
  3. 升級至較新版本的 DirectShow。
  4. 安裝適用於新版 DirectX 的安全性更新。

關於此資訊安全諮詢的詳細資訊

若要存取套件,請按一下下列連結。 如需有關此資訊安全諮詢的詳細資訊,請按一下下面的文件編號,檢視 Microsoft 知識庫中的文件:

955759 Microsoft資訊安全諮詢: Indeo 轉碼器的 AppCompat 更新說明:2009 年 12 月 8 日

976138 Microsoft資訊安全諮詢: Indeo 轉碼器 Quartz 更新說明:2009 年 12 月 8 日

更多資訊