Application Compatibility Toolkit


Application Compatibility Toolkit (ACT) 可讓在企業環境中工作的軟體開發人員、獨立軟體廠商 (ISV) 以及 IT 專業人員,在將他們的應用程式引進組織之前,判斷是否能與新版的 Windows 作業系統相容,ACT 也可以用來判定新版本的 Windows 更新將如何影響其應用程式。你可以使用 ACT 功能來進行下列作業:

  • 確認應用程式、裝置以及電腦與新版 Windows 作業系統的相容性,包括判斷風險評定。
  • 參與 ACT 社群,包括與其他 ACT 使用者分享你的應用程式評定。
  • 使用 Standard User Analyzer (SUA) 工具,測試應用程式是否存在與使用者帳戶控制(UAC) 有關的問題。
  • 使用 Internet Explorer Compatibility Test Tool,測試 Web 應用程式和網站與新版 Internet Explorer® 及其安全性更新的相容性。
  • 使用 Compatibility Administrator 套用修正。

Compatibility Administrator 是在 ACT 中的一套工具,用來針對應用程式中不相容的部份加以套用修正 (shim),以便於能夠正常執行:

Compatibility Administrator 可以修正與不可以修正的內容如下:

也就是除了應用程式因為權限設定或使用第三方元件所造成的相容性問題之外,幾乎都可以修正,它修正軟體的原理其實不難,因為應用程式一定會呼叫作業系統的 API,但是由於不同作業系統的 API 功能會有些差別,這就會造成軟體的相容性問題。

例如應用程式每次執行的時候,都會呼叫作業系統以便取得目前作業系統的版本,並限定只能在 Windows XP 上執行,如果應用程式在 Windows 7 上執行,那麼系統回傳回來的版本就不會是 Windows XP,應用程式中的版本檢查就會失敗,而造成無法執行。這時如果可以「欺騙」應用程式目前的作業系統版本是 Windows XP,那麼就可以讓應用程式執行了。這必須透過攔截應用程式的 API 呼叫來達成。

以下是 Windows 應用程式標頭的架構:

其中 Import Table 中就是記錄該應用程式所要呼叫的 API 位置,因此,只要修改 Import Table 就可以讓應用程式呼叫修正 (Shim DLL):

修正前 修正後

也可以修改作業系統的 Export Table,這樣就可以讓所有應用程式的某一項 API 呼叫,全數轉向至修正 DLL:

有關 ACT 詳細說明,請參考:https://technet.microsoft.com/zh-tw/library/cc766242(WS.10).aspx

 

返回上一頁 >