• <ul id="mayc0"></ul>
    <ul id="mayc0"><center id="mayc0"></center></ul>
    <strike id="mayc0"><input id="mayc0"></input></strike>
    <ul id="mayc0"></ul>
  • 始創(chuàng)于2000年 股票代碼:831685
    咨詢熱線:0371-60135900 注冊有禮 登錄
    • 掛牌上市企業(yè)
    • 60秒人工響應(yīng)
    • 99.99%連通率
    • 7*24h人工
    • 故障100倍補(bǔ)償
    全部產(chǎn)品
    您的位置: 網(wǎng)站首頁 > 幫助中心>文章內(nèi)容

    在虛擬環(huán)境中使應(yīng)用程序與Windows 7兼容(3)

    發(fā)布時間:  2012/6/30 11:39:53
     應(yīng)用程序與 Microsoft App-V 一起打包時,如何解決運(yùn)行時兼容性問題?

    還記得支持聲明中誘人的說法嗎?“App-V 將支持應(yīng)用程序使用填充程序(這些填充程序是作為 Microsoft 的應(yīng)用程序兼容性工具的組成部分提供的)....”實際上如何去實現(xiàn)這一點(diǎn)?這兩種程序是否基本上兼容?

    令人高興的是,答案是肯定的。事實上,可以通過幾種不同的方式做到這一點(diǎn)。

    填充程序簡要介紹

    對于不熟悉填充程序的人來說,填充程序是 Microsoft 很少使用的四字母單詞之一,它不是某種縮寫詞。它以英語單詞“shim”(墊片)進(jìn)行比喻,這是一個工程術(shù)語,用于描述插在兩個物體之間,使它們更好地配合在一起的木片或金屬片。在我們的特定環(huán)境下,兩個物體就是應(yīng)用程序和 Windows,而墊片材料是使兩者更好地一起發(fā)揮作用的附加代碼,如圖 1 和 2 所示。
     

     

    圖 1 應(yīng)用填充程序之前,應(yīng)用程序與 Windows 直接交互。

     

    圖 2 應(yīng)用填充程序之后,應(yīng)用程序與 Windows 間接交互;填充程序代碼注入后,它可以修改向 Windows 發(fā)出的請求和/或來自 Windows 的響應(yīng)。

    填充程序的作用是通過 API 偵聽實現(xiàn)的。Windows API 是使用 DLL 集合實現(xiàn)的。每個針對 Windows 構(gòu)建的應(yīng)用程序都導(dǎo)入這些 DLL,并在內(nèi)存中維護(hù)一個由所有這些功能的地址構(gòu)成的表。因為 Windows 功能的地址位于一個表中,所以,填充程序引擎直接用填充程序 DLL 的地址替換該地址。應(yīng)用程序通常不知道要將請求發(fā)送到填充程序 DLL 而不是發(fā)送到 Windows 本身,Windows 也不知道請求是來自應(yīng)用程序以外的源(因為填充程序 DLL 只不過是應(yīng)用程序進(jìn)程內(nèi)的另一個 DLL)。

    例如,一個十分常用的填充程序是版本欺騙填充程序。為了實現(xiàn)此填充程序,將偵聽幾個用于確定運(yùn)行應(yīng)用程序的 Windows 版本的 API。通常,這種信息將傳遞給 Windows 本身,后者會如實應(yīng)答。但在應(yīng)用填充程序之后,這些 API 將被偵聽。這樣,將返回一個不同的 Windows 版本(例如,Windows XP 而不是 Windows 7),而不是將請求傳遞給 Windows。如果應(yīng)用程序編寫為只在 Windows XP 上運(yùn)行,這樣可以騙過應(yīng)用程序,使它認(rèn)為自己正在正確的操作系統(tǒng)上運(yùn)行。(通常,這樣就可以解決應(yīng)用程序兼容性問題!)

    使用填充程序,可以采用很多技巧。例如, 

    ◇ ForceAdminAccess 填充程序嘗試使應(yīng)用程序確信當(dāng)前用戶是本地管理員組的成員,即使他并不是該組成員。(如果您不是本地管理員,很多應(yīng)用程序會徹底失敗,不過,您可以使用其他一些技巧(如 UAC 文件和注冊表虛擬化)來解決初始檢查所引起的問題。)實現(xiàn)這種檢查的方法可以非常簡單。例如,此填充程序從 shell32.dll 偵聽 API IsUserAnAdmin。所填充的功能的完整源代碼(與實際 API 相比,具有極好的性能特性)只返回 TRUE。

    ◇ WrpMitigation 填充程序使應(yīng)用程序安裝程序相信,它們可以寫入受 Windows 資源保護(hù) (WRP) 功能保護(hù)的文件。如果嘗試寫入受保護(hù)的文件,該填充程序首先創(chuàng)建一個新的臨時文件,一旦句柄關(guān)閉就將其標(biāo)記為已刪除,然后將句柄返回到該臨時文件,就好像它是實際受保護(hù)的文件。應(yīng)用程序?qū)⑴f版本 kernel32.dll 或 shell32.dll(或者在將其打包時它所選擇的任何其他文件)安裝到臨時文件中,但隨后該臨時文件消失,受保護(hù)文件的經(jīng)過修補(bǔ)的最新匹配版本保留在文件系統(tǒng)中。這樣,WRP 仍可確保您不會在自己的計算機(jī)上最終得到來自 Windows 95 的舊版本 shell32.dll,但在使用此填充程序時,安裝程序不會因 ACCESS_DENIED 而失敗。

    ◇ CorrectFilePaths 填充程序可將文件從一個位置重定向到另一個位置。因此,如果應(yīng)用程序嘗試寫入 c:\myprogramdir(不會使用 UAC 文件和注冊表虛擬化對它進(jìn)行自動修復(fù)),則可以將在運(yùn)行時修改的文件重定向到基于每個用戶的位置。這樣,您可以以標(biāo)準(zhǔn)用戶的身份運(yùn)行而不必放寬訪問控制列表 (ACL) 限制,因為您知道,安全人員不愿意放寬 ACL。

    ◇ 有數(shù)百個通用填充程序可用來解決應(yīng)用程序兼容性問題,利用這些修補(bǔ)程序可節(jié)省大量的成本。例如,客戶常常在以下情況下使用填充程序:

    ◇ 供應(yīng)商已停止經(jīng)營,因此無法獲得更新版本。如果您無法承擔(dān)從新供應(yīng)商處獲得另外的應(yīng)用程序或自己構(gòu)建新版本的費(fèi)用,這樣可以為您爭取一些時間。

    ◇ 應(yīng)用程序不是十分重要,不值得投資于更新版本(伴隨著支持聲明),但您的用戶樂于使用它,所以您不介意他們是否運(yùn)行不受支持的版本。

    ◇ 應(yīng)用程序是內(nèi)部開發(fā)的,但您不想非要等到團(tuán)隊發(fā)布完全更新的版本。相反,您愿意采用臨時性修補(bǔ)程序,允許開發(fā)團(tuán)隊在應(yīng)用程序的下一次計劃發(fā)布時發(fā)布永久性修補(bǔ)程序。通過這種方法,就不再需要停止所有應(yīng)用程序開發(fā)活動,可以投入時間和資源來修復(fù)兼容性 Bug。您可以使用臨時性修補(bǔ)程序,并允許團(tuán)隊發(fā)布包含開發(fā)過程中已實現(xiàn)的新功能的修補(bǔ)程序。

    利用填充程序解決應(yīng)用程序兼容性問題,可以顯著節(jié)省成本,大大加速 Windows 7 的部署。


    本文出自:億恩科技【www.vbseamall.com】

    服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經(jīng)營性ICP/ISP證:贛B2-20080012
  • 服務(wù)器/云主機(jī) 24小時售后服務(wù)電話:0371-60135900
  • 虛擬主機(jī)/智能建站 24小時售后服務(wù)電話:0371-60135900
  • 專注服務(wù)器托管17年
    掃掃關(guān)注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號
      0
     
     
     
     

    0371-60135900
    7*24小時客服服務(wù)熱線