轉(zhuǎn)帖|行業(yè)資訊|編輯:楊鵬連|2021-06-11 16:53:05.097|閱讀 1059 次
概述:VMProtect是一種很可靠的工具,可以保護應(yīng)用程序代碼免受分析和破解。本文總結(jié)vmp殼基礎(chǔ)原理。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
VMProtect是一種很可靠的工具,可以保護應(yīng)用程序代碼免受分析和破解,但只有在應(yīng)用程序內(nèi)保護機制正確構(gòu)建且沒有可能破壞整個保護的嚴(yán)重錯誤的情況下,才能實現(xiàn)最好的效果。
VMProtect通過在具有非標(biāo)準(zhǔn)體系結(jié)構(gòu)的虛擬機上執(zhí)行代碼來保護代碼,這將使分析和破解軟件變得十分困難。除此之外,VMProtect還可以生成和驗證序列號,限制免費升級等等。
VMProtect正版授權(quán)在線訂購享受最低價,僅售801元起!還不趕緊加入你的訂購清單?>>更多詳情可點擊咨詢購買
1.與傳統(tǒng)的加殼工具不同,不是簡單的把目標(biāo)進(jìn)行壓縮、內(nèi)存解壓運行,而是修改目標(biāo)源碼,讓目標(biāo)的部分指令在vmp創(chuàng)建的虛擬環(huán)境下運行,虛擬環(huán)境中無操作數(shù)比較指令、條件跳轉(zhuǎn)和無條件跳轉(zhuǎn)指令;
2.被修改替換的目標(biāo)指令最終形成的字節(jié)碼有前后相關(guān)性,即你改變其他任意一個字節(jié)會影響到所有被vm虛擬化的指令
3.vmp的虛擬機其實是一個字節(jié)碼解釋器,循環(huán)的讀取指令并執(zhí)行,并且只有一個入口和一個出口
4.虛假跳轉(zhuǎn)和垃圾指令, vmp會使用大量的虛擬跳轉(zhuǎn)和垃圾指令將原有簡單的代碼變得復(fù)雜
5.vmp是基于堆棧的虛擬機,虛擬機指令不是顯示的讀取參數(shù),而是把要使用的參數(shù)壓入堆棧,而后直接從堆棧中讀取
6.vmp指令
1)算數(shù)運算和移位運算
2)堆棧操作
3)系統(tǒng)相關(guān)
4)邏輯運算,這個最復(fù)雜,vmp中只有一個邏輯運算指令nor, 它可以模擬not and or xor 四個邏輯運算指令
7.vmp寄存器輪轉(zhuǎn)
mvp將所有的寄存器都放在一個堆棧的結(jié)構(gòu)vm_context中, 結(jié)構(gòu)中的每一項代碼一個寄存器或臨時變量
在程序運行過程中, vm_context結(jié)構(gòu)中保存的寄存器不是固定的,每當(dāng)執(zhí)行完一個操作或一個指令結(jié)構(gòu)中的項與真實寄存器之間的映射關(guān)系會發(fā)生變化,就像一個齒輪隨機的轉(zhuǎn)動了一下, 轉(zhuǎn)動過后原有的映射關(guān)系全部改變了
8.字節(jié)碼加密和隨機效驗
隨機效驗比較牛B, vmp會在編譯好的字節(jié)碼中加入自己的一些指令(專屬于vmp自動的指令), 每一次執(zhí)行都會對一段代碼隨機生成hash值, 然后與另一個隨機數(shù)相加, vmp要求相加的結(jié)果必須為0, 否則會出錯.
如果您對該加密/解密軟件感興趣,歡迎加入加密/解密QQ交流群:740060302
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@ke049m.cn
文章轉(zhuǎn)載自: