植物用殼來保護種子,動物用殼來保護身體,程式則用殼來保護軟體不被反編譯或者非法篡改,軟體外殼加密是軟體加密的一種技術,也是極為重要的保護方式之一,外殼加密工具安全、易用,加密者無需任何代碼開發經驗,即可3分鐘內輕鬆把軟體加密做好。
傳統的加殼工具是指在電腦軟體裡有一段專門負責保護軟體不被反編譯或篡改的程式,它們附加在原程式上通過Windows載入器載入記憶體後,先於原始程式執行,得到控制權,執行過程中對原始程式進行解密和還原,主要加密的對象是Windows下的EXE、Dll、OCX及ARX程式。針對.Net程式、Java程式、MacOS程式的自動加密工具的使用方法與加殼類似,國內使用者也把此類技術統稱為外殼。
國內企業對殼的研究還屬於模仿階段,不具備核心競爭力,成熟產品不多,純外殼工具基本以Themida、AsProtect及VmProtect為主,外殼與加密狗綁定的技術主要有德國威步的AxProtector,如何3分鐘內玩轉軟體加密?
小編就以威步的AxProtector為例,用於瞭解目前最新外殼中所包含的加密技術及豐富的功能,AxProtector是一款綜合外殼工具,不僅可以支援Windows32/64位下的Native可執行程式及動態庫,包括EXE、Dll、OCX及ARX程式;也可支援.Net程式、Linux程式、Mac OS程式以及Java程式的自動加密。是目前世界上功能最強大的一款加殼工具。
以Windows應用程式為例,使用者只需在此選擇需要加密的檔案,目標檔案會自動儲存在protected目錄中,點擊下一步。
第二步選擇不同的加密狗硬體,AxProtector支援使用CmDongle及WibuKey硬體加密狗,而且支援軟加密
啟用方案。
第三步中選擇程式檢測加密鎖的方法,可設為本地或網路模式,也支援本地、網路並存模式。有關許可模式可選擇並發使用者數控制模式,或指定一個進程為一使用者,或是一台電腦為一使用者(同一台電腦啟動多個僅算一個使用者),點擊下一步。
第四步中需要設定運行時檢測選項,讓AxProtector外殼定時去檢測加密鎖是否還在,以及計數器與到期日期檢測。很多外殼或者是普通加密狗的加密方案是程式載入之後就不再查詢硬體加密狗,程式啟動後即可脫狗運行,安全性非常低。另外在此處可以設定一個臨界值,也即可以設定一個倒計時提醒時間,快到期時外殼會發出警告,提醒使用者續時或續次。
第五步可以設定AxProtector外殼的安全機制,選擇需要加密的部分,可以加密資源檔;靜態加密是可以靜態改動代碼,在運行時再還原代碼;動態加密指是即時改動代碼,是進階加密技術在外殼中的應用。防Debugger機制可以防止駭客對程式的動態分析,如果發現有破解行為,加密鎖會自動鎖死,無法再繼續使用。
第六步可以設定錯誤資訊,AxProtector提供非常靈活的資訊提示機制。使用者可以選擇預設資訊,自訂文本資訊,或者自行製作一個UserMsg.dll,發生錯誤時AxProtector可自動調用dll檔案中的相應方法顯示錯誤資訊。這是一個非常人性化的功能,軟體使用者完全不用代碼開發即可產生帶有公司Logo及相關資訊的報錯資訊框。
第七步當中涉及到的“進階選項”主要用於IxProtector的應用。AxProtector是威步公司提供的全自動外殼加殼工具,簡單、易用。該公司還提供自訂加密工具IxProtector,主要用於自訂加密一些核心代碼或實現一些特殊的授權需求。這是我所接觸的所有外殼工具中,唯一具有這項功能的。
進入“許可列表”中,使用者可以定義更多的許可單元,用以在單個程式中啟用不同的模組控制
進入“IxProtector”頁面,使用者可以定義需要加密的模組資訊以及對應的許可單元資訊。這些模組資訊事先會在程式碼中通過Wupi函數進行定義。
到總結頁面,會給出整個加密工程的所有設定參數,使用者可以將其儲存為威步的指令檔,將來進行大量加密。也可以使用檔案菜單中的匯出命令來產生指令檔。此時點擊完成,即可實現加密。
這款外殼總體給我的感覺是極為簡單、方便,加密一款小軟體總共就用了1分鐘。另外就是功能真的強大,AxProtector支援幾乎所有開發語言、大多數作業系統上的應用程式或動態庫。在AxProtector外殼當中,除了各種加密應用之外,還可以設定即時找狗、單機/網路設定、加密狗鎖死、倒計時/次提醒以及使用者自訂出錯框。軟體開發商使用這款外殼工具,基本上不需要做任何開發工作,即可實現軟體加密及軟體授權。