VMProtect是目前最強大的虛擬機保護軟件之一,適合Visual Basic(native),Visual C,Delphi,ASM等本地編譯的目標程序,支持EXE,DLL,SYS。支持Windows各系統,具備很好的兼容性和穩定性。
php
下載地址html
VMProtect 1.22.3之前版本都沒功能限制,更高版本須要註冊才能得到。強度方面,低版本都有不錯的表現,可使用。
VMProtect 0.71
VMProtect 1.02
VMProtect 1.03
VMProtect 1.05
VMProtect 1.07
VMProtect 1.08
VMProtect 1.09
VMProtect 1.11
VMProtect 1.20
VMProtect 1.21
VMProtect 1.22.3
編程
購買方法多線程
若是要使用新功能,在強度,穩定性和兼容性有更高的要求,如多線程支持的更好等,能夠購買高版本。
1.首先登錄VMProtect官方主頁,進入購買連接http://www.vmprotect.ru/buy.php
2.若是沒有信用卡,能夠選用E-GOLD,而後E-GOLD直接匯款給VMProtect,數小時後,VMProtect官方會將key及正式版寄給你。
E-GOLD能夠到淘寶網購買。有關E-GOLD請參考:http://www.e-gold.org.cn
你也能夠經過代理或西聯來購買。
注意:VMProtect註冊協議是不容許公開分析他們的目標程序的,用VMProtect保護的程序帶有水印,所以將VMProtect註冊版保護的程序公開給你們研究是要冒風險的,極可能key會被BAN。另外,購買key的朋友若是公開散發,也可能致使VMProtect會將中國的IP封掉(之前己封過一次)。VMProtect目前己作的很穩定和強大,但願他能發展的更好。
函數
使用方法工具
1.指定代碼
必須告訴VMProtect你要加密的代碼具體地址,這對使用者有必定的要求,至少要懂一些跟蹤技術,能夠用調試器,如OllyDbg跟蹤到程序須要保護的地址,而後添加地址到VMProtect。
在這以一個記事本程序爲例來演示一下使用方法。
運行VMProtect後,打開NOTEPAD.EXE文件。單擊Dump標籤,輸入要加密的起始地址,光標來到要加密代碼起始地址後,點擊菜單「project/new procedure」,會出現一個新的項目,以下圖。
2.用SDK標記代碼
用調試器得到地址的操做過程比較專業,不太方便。VMProtect v1.2以上支持SDK了,能夠編程時插入一個標記,而後在加密時,VMProtect會認出這些標記,並在有標記的地方進行保護。在程序源碼中,用這對標籤將一些核心代碼包含,編譯成EXE文件。而後用VMProtect打開EXE,單擊「Project」菜單下的「New procedure」或者單擊工具欄中的「New procedure」按鈕,在彈出的添加地址窗口中會自動將SDK定義代碼的地址填上。而後在VMProtect的「Options」窗口中設置相應的選項,最後單擊工具欄中的「Compilation (F9)」按鈕,即可對目標軟件進行保護。
Delphi 中的標記模式
加密
代碼:spa
asm db $EB,$10,'VMProtect begin',0 //標記開始處. end; //想保護的程序代碼 asm db $EB,$0E,'VMProtect end',0 //標記結束處. end;
VC的VMProtect的宏 :
線程
代碼:代理
#define VMBEGIN __asm //標記開始處. { _emit 0xEB _emit 0x10 _emit 0x56 _emit 0x4D _emit 0x50 _emit 0x72 _emit 0x6F _emit 0x74 _emit 0x65 _emit 0x63 _emit 0x74 _emit 0x20 _emit 0x62 _emit 0x65 _emit 0x67 _emit 0x69 _emit 0x6E _emit 0x00 } //想保護的程序代碼 #define VMEND __asm //標記結束處. { _emit 0xEB _emit 0x0E _emit 0x56 _emit 0x4D _emit 0x50 _emit 0x72 _emit 0x6F _emit 0x74 _emit 0x65 _emit 0x63 _emit 0x74 _emit 0x20 _emit 0x65 _emit 0x6E _emit 0x64 _emit 0x00
3.用map文件
VMProtect支持Map文件來定位函數,設置編譯器,讓其生成Map文件。將目標文件和Map文件放在一塊兒(文件名要相同),用VMProtect打開文件後,執行菜單「New procedure」時可以列出不少內部函數,這時只須要選擇想加密的函數進行後續處理了。
VMProtect是當前一款很強的虛擬機保護軟件,通過VMProtect處理的軟件,能大大提升破解者的分析成本,是目前一種比較理想的保護方式。VMProtect關鍵是用好,必定要將程序關鍵代碼進行處理,必要時用OllyDBG檢查一下被處理的代碼。
另外,經虛擬機處理代碼效率會下降,所以一些對效率要求比較高的代碼就不適合用VMProtect進行處理。
注:
1.本文章從http://www.pediy.com/bbshtml/bbs8/pediy8-835.htm中整理而來。