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