原創|使用教程|編輯:蔣永|2017-07-04 14:43:50.000|閱讀 1582 次
概述:現如今不少軟件作者為選擇一款合適的加密軟件而困惑。建議作者不要太依賴殼的保護,大多數殼是可以被攻破的,還是在自身保護上下些功夫。選擇殼的時候,更多的時候考慮其兼容性。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
現如今不少軟件作者為選擇一款合適的加密軟件而困惑。建議作者不要太依賴殼的保護,大多數殼是可以被攻破的,還是在自身保護上下些功夫。選擇殼的時候,更多的時候考慮其兼容性。
現在殼的發展一個趨勢就是虛擬機保護,利用虛擬機保護后,能大大提高強度,因此建議盡可能使用此類技術保護軟件。
如Themida ,WinLicense,EXECryptor等帶有虛擬機保護功能,因此得用好其SDK。
而VMProtect是一款純虛擬機保護軟件,效果很好,但也有缺點,就是會影響程序速度,因此在一些對速度要求很高的場合就不適合用了。VMProtect 1.22.3之前是免費版,可以支持EXE,DLL等文件。更高版本需要購買,其支持驅動的保護(慧都控件網支持提供最新版本免費試用,點擊下載)。現在流行的做法,先用VMProtect將你的核心代碼處理一下,再選用一款兼容性好的殼保護。
VMProtect并不像其他加殼軟件一樣容易操作,必須告訴VMProtect你要加密的代碼具體地址,這個對使用者有一定的要求,至少要有些解密基礎。
在這以一個記事本程序為例來演示一下使用方法。
運行VMProtect后,打開NOTEPAD.EXE文件。單擊Dump標簽,輸入要加密的起始地址,光標來到要加密代碼起始地址后,點擊菜單“project/newprocedure”,會出現一個新的項目。
需要處理其他地址時,請依次操作。
VMProtect 支持SDK,可以編程時插入一個標記,然后在加密時,VMProtect會認出這些標記,并在有標記的地方進行保護。編譯后,VMProtect打開生成的這個exe文件后,點擊“Project”菜單下的“New procedure”,在彈出的對話框中有SDK中的地址。
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 }
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn