百科名片
綠色軟件
綠色軟件,或稱可攜式軟件(英文稱為Portable Application、Portable Software或Green Software),指一類小型軟件,多數(shù)為
免費(fèi)軟件,最大特點(diǎn)是軟件無(wú)需安裝便可使用,可存放于閃存中(因此稱為可攜式軟體),移除后也不會(huì)將任何紀(jì)錄(
注冊(cè)表消息等)留在本機(jī)計(jì)算機(jī)上。通俗點(diǎn)講綠色軟件就是指不用安裝,下載直接可以使用的軟件.綠色軟件不會(huì)在注冊(cè)表中留下注冊(cè)表鍵值,所以相對(duì)一般的軟件來(lái)說(shuō),綠色軟件對(duì)系統(tǒng)的影響幾乎沒(méi)有,所以是很好的一種軟件類型。
目錄
特征分類深入理解制作判斷綠化測(cè)試綠化的方法虛擬化解壓縮安裝然后卸載反編譯安裝程序。觀察反安裝程序和log文件。比較系統(tǒng)快照直接導(dǎo)出注冊(cè)表,尋找自注冊(cè)的COM組件特征分類深入理解制作判斷綠化測(cè)試綠化的方法虛擬化解壓縮安裝然后卸載反編譯安裝程序。觀察反安裝程序和log文件。比較系統(tǒng)快照直接導(dǎo)出注冊(cè)表,尋找自注冊(cè)的COM組件展開(kāi)
編輯本段特征
綠色版軟件有如下嚴(yán)格特征(漢化綠色版就是已漢化的綠色軟件):
1、不對(duì)注冊(cè)表進(jìn)行任何操作。
2、不對(duì)系統(tǒng)敏感區(qū)進(jìn)行操作,一般包括系統(tǒng)起動(dòng)區(qū)根目錄、安裝目錄(Windows目錄)、程序目錄(ProgramFiles)、帳戶專用目錄。
3、不向非自身所在目錄外的目錄進(jìn)行任何寫(xiě)操作。
4、因?yàn)槌绦蜻\(yùn)行本身不對(duì)除本身所在目錄外的任何文件產(chǎn)生任何影響,所以,根本不存在安裝和卸載問(wèn)題。
5、程序的刪除,只要把程序所在目錄和對(duì)應(yīng)的快捷方式刪了就可以了(如果你手工在桌面或其它位置設(shè)了快捷方式),只要這樣做了,程序就完全干凈地從你的電腦里刪去了,不留任何垃圾。
6、不需要安裝,隨意拷貝、復(fù)制就可以用(重裝操作系統(tǒng)也可以)。
編輯本段分類
綠色軟件分為狹義的綠色和廣義的綠色:
狹義的綠色可以叫做純綠色軟件,就是指這個(gè)軟件對(duì)現(xiàn)有的操作系統(tǒng)部分沒(méi)有任何改變,除了軟件現(xiàn)在安裝的目錄,應(yīng)該不往任何地方寫(xiě)東西,刪除的時(shí)候,直接刪除所在的目錄就可以了,就類似于以前的大多數(shù)DOS程序。
廣義的綠色就是指不需要專門(mén)的安裝程序,對(duì)系統(tǒng)的改變比較少,手工也可以方便的完成這些改變,比如拷貝幾個(gè)動(dòng)態(tài)庫(kù),或者導(dǎo)入注冊(cè)表,這里的關(guān)鍵是手工可以方便的完成這些改變,或者可以借助于批處理等等腳本完成。
為什么要分為兩類?雖然狹義的綠色軟件最為理想,但是完全符合這種定義的軟件非常罕見(jiàn),而相當(dāng)多的軟件可以劃分到廣義的綠色這個(gè)類別,這樣包括了廣義的綠色軟件的概念后使得綠色軟件這個(gè)概念更有意義。
那么不符合綠色軟件要求的有哪些呢?主要是指那些和操作系統(tǒng)聯(lián)系和集成非常緊密的軟件,這些軟件不適合制成綠色軟件,最好還是用原來(lái)的安裝程序來(lái)安裝。如IE6,替換了系統(tǒng)中的許多動(dòng)態(tài)庫(kù),手工完成這個(gè)過(guò)程很困難,也不太安全。又比如大多數(shù)殺毒軟件,如果 必須實(shí)時(shí)監(jiān)控系統(tǒng)的底層運(yùn)作,對(duì)系統(tǒng)的修改比較大,就不適合做成綠色軟件。還有微軟公司的Office系列軟件,和系統(tǒng)集成的也比較緊密。但是廣義的這個(gè)標(biāo)準(zhǔn)比較靈活,如果有人搞清楚了Office系列軟件的安裝制作過(guò)程,也有可能制作出廣義的綠色的Of fice系列。
編輯本段深入理解
為了充分理解綠色軟件的定義,必須從現(xiàn)代軟件的安裝過(guò)程和運(yùn)行過(guò)程兩個(gè)方面來(lái)討論。
安裝過(guò)程:以前在dos下面的時(shí)候,就沒(méi)有這些所謂綠色軟件的說(shuō)法,原來(lái)程序的安裝基本上都是簡(jiǎn)單的復(fù)制或者解壓縮,然后配置一下config.sys 和autoexec.bat文件就可以了。隨著windows的發(fā)展,應(yīng)用軟件也越來(lái)越大,也越來(lái)越復(fù)雜,從而有公司專門(mén)從事安裝程序的制作,如InstallShield就是一款比較有名和應(yīng)用比較廣泛的安裝軟件,現(xiàn)在Windows也有了專門(mén)的安裝程 序,就是Microsoft Installer。安裝程序的作用是什么呢?主要是為了給要安裝的程序提供一個(gè)簡(jiǎn)單方便的設(shè)置環(huán)境,而不需要用戶手工完成這個(gè)步驟,越是復(fù)雜的配置過(guò)程,對(duì)系統(tǒng)的修改越多,對(duì)安裝程序的依賴性就越高,Windows程序的易學(xué)易用的優(yōu)點(diǎn)和良好的安裝界面 是分不開(kāi)的,安裝軟件的任務(wù)就是給應(yīng)用程序提供一個(gè)初步完好的可以運(yùn)行的環(huán)境,而不需要用戶進(jìn)行手工配置。
運(yùn)行過(guò)程:應(yīng)用程序啟動(dòng)的時(shí)候,從注冊(cè)表或者配置文件中讀取配置,運(yùn)行的時(shí)候,可以修改配置,但這個(gè)修改一般是在安裝軟件所作工作的基礎(chǔ)上進(jìn)行的,例如不能改變應(yīng)用程序的安裝位置了。
明白安裝過(guò)程和運(yùn)行過(guò)程的區(qū)別后,很容易就想到把綠色軟件的使用按照這兩個(gè)階段分為綠色安裝過(guò)程和綠色運(yùn)行過(guò)程。綠色安裝是綠色運(yùn)行的前提,沒(méi)有綠色安裝,也就說(shuō)不上什么綠色運(yùn)行了,綠色軟件首先必須是綠色安裝,我前面提到的不適合綠色軟件標(biāo)準(zhǔn)的基本上都是不能綠色安裝的。
綠色安裝的基本含義,我認(rèn)為可以也可以分為狹義的和廣義的綠色安裝:
1 狹義的綠色安裝就是指直接拷貝或者解壓縮到目標(biāo)目錄,不需要向系統(tǒng)目錄拷貝也不需要寫(xiě)入注冊(cè)表,這是最理想的情況,或者是安裝程序的作用除了解壓縮外是可以忽略的,如在開(kāi)始菜單加入快捷鍵等對(duì)系統(tǒng)和軟件的運(yùn)行沒(méi)有太大影響的操作,也就是說(shuō)安裝過(guò)程的作用就是復(fù)制文件到目標(biāo)文件夾。
2 廣義的綠色安裝就是指在狹義的復(fù)制的基礎(chǔ)上,必須向系統(tǒng)目錄拷貝一些動(dòng)態(tài)庫(kù),或者要在注冊(cè)表中導(dǎo)入必要的設(shè)置,或者要進(jìn)行一些其他的配置,否則的話,應(yīng)用程序不能運(yùn)行,而且這個(gè)配置工作應(yīng)該比較簡(jiǎn)單,也容易撤銷這些操作對(duì)系統(tǒng)的改變。
同樣,綠色運(yùn)行也可以分為狹義的和廣義的綠色運(yùn)行:
1 狹義的綠色運(yùn)行指的是軟件運(yùn)行時(shí)完全不改變操作系統(tǒng)的文件和配置--很多小程序?qū)儆谶@個(gè)類別,或者運(yùn)行結(jié)束后把撤銷對(duì)系統(tǒng)的改變,比如運(yùn)行的時(shí)候加載一個(gè)驅(qū)動(dòng)程序,退出時(shí)卸載該驅(qū)動(dòng)程序,所操作的INI文件在自己的程序目錄中。
2 廣義的綠色運(yùn)行指的是可以通過(guò)程序本身來(lái)改變當(dāng)前的設(shè)置,如改變當(dāng)前軟件的運(yùn)行方式,或者與某些文件后綴相關(guān)聯(lián),或者在注冊(cè)表中留下當(dāng)前的軟件設(shè)置,也就是說(shuō)對(duì)系統(tǒng)的注冊(cè)表有永久的改變,但是這些改變都是應(yīng)用程序自己完成的,不需要借助其他程序或者用手工 完成。
綜合綠色安裝和綠色運(yùn)行,可以把綠色軟件細(xì)分為:
1 狹義的綠色安裝,同時(shí)是狹義的綠色運(yùn)行的軟件,對(duì)操作系統(tǒng)沒(méi)有任何改變。
2 狹義的綠色安裝,廣義的綠色運(yùn)行的軟件,軟件的配置工作由軟件本身來(lái)完成,不是通過(guò)安裝程序。
3 廣義的綠色安裝,狹義的綠色運(yùn)行,軟件的配置工作由安裝程序來(lái)完成,軟件本身不能對(duì)配置修改,同時(shí)如果沒(méi)有配置工作,軟件無(wú)法正常運(yùn)行。
4 廣義的綠色安裝,廣義的綠色運(yùn)行,最復(fù)雜的一種綠色軟件,軟件的配置工作由安裝程序來(lái)完成,但是軟件本身可以對(duì)配置 修改,同時(shí)如果沒(méi)有配置工作,軟件無(wú)法正常運(yùn)行。
只有第一個(gè)類別屬于我說(shuō)的狹義的綠色軟件,其他3類都屬于廣義的綠色軟件的范疇。
編輯本段制作
綠色軟件的制作簡(jiǎn)稱軟件的“綠化”,綠色軟件的制作實(shí)際上就是我們自己完成安裝程序的工作。沒(méi)有什么固定的方法,基本上是猜測(cè)加上試驗(yàn),不同類別的綠色軟件分別有不同的制作策略。
拿到一個(gè)新的軟件,想要制成綠色軟件的話,一般遵循如下步驟:判斷
就是指猜測(cè)這個(gè)軟件能不能制成綠色軟件,從功能,從你對(duì)它的了解,如果你覺(jué)得這個(gè)軟件和系統(tǒng)的關(guān)系非常緊密,就不要繼續(xù)下去了,還是用原始的安裝程序最保險(xiǎn)最方便,這樣的例子有directx9 ,IE6,Norton的反病毒軟件等等。這樣的判斷可以節(jié)省你的時(shí)間,當(dāng)然你可以忽略這一步,嘗試制作綠色軟件,那么就轉(zhuǎn)到第2步。綠化
對(duì)于不同的軟件有不同的方法,沒(méi)有一定的規(guī)則,但是總的來(lái)說(shuō),就是理解軟件的安裝過(guò)程,轉(zhuǎn)換為綠色安裝,在這個(gè)過(guò)程中,可能需要嘗試多個(gè)方法,也可能最后由于軟件的復(fù)雜性或者某些特性,導(dǎo)致無(wú)法綠化。要有失敗的思想準(zhǔn)備,具體的綠化方法隨后講 述。測(cè)試
”綠化“后的測(cè)試最好到你個(gè)全新安裝的操作系統(tǒng)中測(cè)試,而且如果你要在多個(gè)操作系統(tǒng)中使用這個(gè)軟件的話,還要在其他的操作系統(tǒng)中測(cè)試,有的軟件的文件隨著操作系統(tǒng)的不同而不同,這個(gè)時(shí)候你需要在不同的操作系統(tǒng)中進(jìn)行”綠化“過(guò)程,最后綜合為一個(gè)完整 的適應(yīng)多個(gè)操作平臺(tái)的綠色軟件。
編輯本段綠化的方法
“綠化”方法,需要根據(jù)經(jīng)驗(yàn)選擇不同的“綠化”方法,也可能需要不斷嘗試不同的方法,直到成功為止。按照先易后難的次序,具體的方法包括:虛擬化
所謂虛擬化,就是通過(guò)把應(yīng)用程序安裝到一些輕量級(jí)的
虛擬系統(tǒng)(Prayaya V3),這些虛擬系統(tǒng)本身非常輕量體積不到6M,但是卻可以和真實(shí)Windows一樣,本身支持獨(dú)立安裝運(yùn)行軟件,保存數(shù)據(jù),擁有自己的獨(dú)立桌面。虛擬系統(tǒng)實(shí)現(xiàn)了操作系統(tǒng)與應(yīng)用程序分離的目標(biāo),安裝到虛擬系統(tǒng)之中的任何應(yīng)用程序都可以在不同的Windows操作系統(tǒng)之間靈活遷移。因此我們可以用它來(lái)制作綠色軟件,特別是一些常規(guī)方法無(wú)法制作的軟件,用虛擬化的方式會(huì)更加容易實(shí)現(xiàn)。解壓縮
這是最簡(jiǎn)單的一種方法,就是指嘗試能不能直接解開(kāi)軟件的壓縮包。用Winzip和Winrar試一試,看看能不能直接打開(kāi)壓縮的安裝文件,如果不能打開(kāi),那么就換別的方法。如果可以,那么恭喜,這個(gè)軟件多半是屬于綠色安裝的軟件(有個(gè)別例外,如E mEditor),把壓縮包中的文件直接解壓到目標(biāo)路徑,然后測(cè)試軟件的功能是否正常,如果功能正常,那么“綠化”就成功了,如果使用不正常,那么就換別的方法。這一類軟件的特點(diǎn)是安裝程序的工作完全可以由軟件自身來(lái)完成。安裝然后卸載
也是比較容易的方法,完全是體力勞動(dòng),就是指直接安裝這個(gè)軟件,然后把程序復(fù)制出來(lái),最后卸載安裝程序。如果這個(gè)軟件的安裝程序的作用僅僅是復(fù)制文件和生成快捷鍵等工作,那么就屬于綠色安裝,可以使用這個(gè)方法。最后測(cè)試軟件的功能是否正常, 如果功能正常,那么“綠化”就成功了,如果使用不正常,那么就換別的方法。反編譯安裝程序。
這個(gè)方法需要?jiǎng)幽X筋,就是根據(jù)安裝程序所用的制作工具,選擇相應(yīng)的反編譯程序,然后閱讀反編譯出的安裝腳本,制作綠色軟件。目前的軟件大多使用專門(mén)的安裝工具制作,如InstallShield,Wise,Inno Setup,Windows Installer,NSIS(Nullsoft),Installer VISE,其中Windows Installer格式的安裝文件(就是MSI,MST為后綴的文件),可以通過(guò)微軟的免費(fèi)工具Orca打開(kāi)查看,InstallShield格式的安裝文件也有很多免費(fèi)的工具可以解壓縮和查看腳本。當(dāng)然專門(mén)的安裝工具很多,有許多安裝程序沒(méi)有相應(yīng)的反編 譯程序,這種時(shí)候,就無(wú)法使用這個(gè)方法了。觀察反安裝程序和log文件。
現(xiàn)在的軟件安裝完成后絕大多數(shù)都帶有卸載方法。卸載是安裝的逆過(guò)程,如果知道怎么卸載,那么也可以推測(cè)出如何安裝。由專門(mén)的安裝工具制作的反安裝程序,一般都是根據(jù)某一個(gè)文件中的信息來(lái)卸載的,可以用一個(gè)純文本的編輯器打開(kāi)這 個(gè)文件。個(gè)別情況下這個(gè)文件完全不包含可讀信息,就只好換用其他方法了。具體過(guò)程就是先采用方法2,然后理解反安裝過(guò)程,最后根據(jù)反安裝的信息制作綠色軟件。比較系統(tǒng)快照
當(dāng)前面的方法都失敗的時(shí)候,可以試一試這個(gè)方法。具體思路就是首先在安裝軟件之前,把系統(tǒng)的狀態(tài)記錄下來(lái),主要包括注冊(cè)表和系統(tǒng)目錄的所有的文件狀態(tài)。然后就是安裝軟件。安裝完成后,再一次記錄系統(tǒng)狀態(tài)。最后就是比較前后兩個(gè)系統(tǒng)狀態(tài)的不同 ,而得知安裝程序所做的工作。這個(gè)工作一般由專門(mén)的軟件完成,如免費(fèi)工具Regshot,免費(fèi)工具WinInstall LE(在Windows 2000 Sever 光盤(pán)的目錄VALUEADDRDPARTY\MGMT\WINSTLE\中)。在多數(shù)時(shí)候,僅僅需要對(duì)比安裝前后注冊(cè)表的不同,這時(shí)候還有大量的注冊(cè)表工具可以選用。在得出系統(tǒng)差異后,把差異分解為兩個(gè)部分:文件部分和注冊(cè)表部分。文件部分指的是向系 統(tǒng)目錄拷貝的文件,以及作為COM組件注冊(cè)的文件,還有與這些文件相關(guān)的注冊(cè)表部分。注冊(cè)表部分單單指其余的注冊(cè)表的變化。對(duì)于文件部分,可以進(jìn)一步區(qū)分出必須要往系統(tǒng)目錄拷貝的文件(這種情況是少數(shù))和可以放在軟件的安裝目錄的文件。對(duì)于注冊(cè)表部分,區(qū) 分出由這個(gè)軟件的安裝程序本身所作出的注冊(cè)表操作和注冊(cè)COM組件時(shí)候的注冊(cè)表操作,拋棄其他程序(如資源管理器Explorer)的操作。根據(jù)所有這些,寫(xiě)一個(gè)拷貝文件,注冊(cè)COM組件和導(dǎo)入注冊(cè)表的批處理文件,就可以完成綠色軟件的制作了。當(dāng)注冊(cè)表文 件中含有路徑信息的時(shí)候,可以手工修改注冊(cè)表文件或者把注冊(cè)表文件轉(zhuǎn)化為INF文件從而實(shí)現(xiàn)全自動(dòng)的路徑處理。直接導(dǎo)出注冊(cè)表,尋找自注冊(cè)的COM組件
這個(gè)方法是上面的方法5的簡(jiǎn)化版,現(xiàn)在軟件的配置大多寫(xiě)在注冊(cè)表中的“HKEY_LOCLAL_MACHINE\SOFTWARE\軟件公司名字”和“HKEY_CURRENT_USER\SOFTWARE\軟件 公司名字”這2個(gè)鍵下面,直接對(duì)把這2個(gè)注冊(cè)表鍵導(dǎo)出到REG文件中。自注冊(cè)的COM組件都需要導(dǎo)出如下4個(gè)函數(shù):DllCanUnloadNow,DllGetClassObject,DllRegisterServer, DllUnregisterServer,可以用vc自帶的depend.exe找出哪一個(gè)動(dòng)態(tài)鏈接庫(kù)是自注冊(cè)的COM組件。最后寫(xiě)一個(gè)批處理文件用regsvr32.exe注冊(cè)COM組件和用regedit.exe導(dǎo)入注冊(cè)表。
通過(guò)上面分析安裝程序的動(dòng)作,把安裝程序的工作分解為復(fù)制文件,注冊(cè)COM組件,安裝服務(wù)驅(qū)動(dòng),注冊(cè)表配置等幾個(gè)部分,雖然注冊(cè)表配置可以覆蓋注冊(cè)COM組件,安裝服務(wù)驅(qū)動(dòng)等操作步驟,但是把這些明顯分割出來(lái)有助于制作綠色安裝的軟件。對(duì)于需要更復(fù)雜的步 驟來(lái)安裝的軟件,還是使用原來(lái)的安裝程序比較保險(xiǎn)。
詞條圖冊(cè)
更多圖冊(cè)擴(kuò)展閱讀: 1
http://zhidao.baidu.com/question/224742.html2
http://hi.baidu.com/%C3%C5%B4%B0%D0%A1%CC%F9%CA%BF3 Prayaya V3
http://www.prayaya.net/開(kāi)放分類:
軟件,
程序,
電腦