VMProtect是一種很可靠的工具,可以保護應用程式代碼免受分析和破解。本文總結vmp殼基礎原理。
VMProtect是一種很可靠的工具,可以保護應用程式代碼免受分析和破解,但隻有在應用程式内保護機制正确建構且沒有可能破壞整個保護的嚴重錯誤的情況下,才能實作最好的效果。
VMProtect通過在具有非标準體系結構的虛拟機上執行代碼來保護代碼,這将使分析和破解軟體變得十分困難。除此之外,VMProtect還可以生成和驗證序列号,限制免費更新等等。
下載下傳VMProtect最新版【慧都網】
VMProtect正版授權線上訂購享受最低價,僅售801元起!還不趕緊加入你的訂購清單?>>更多詳情可點選咨詢購買
1.與傳統的加殼工具不同,不是簡單的把目标進行壓縮、記憶體解壓運作,而是修改目标源碼,讓目标的部分指令在vmp建立的虛拟環境下運作,虛拟環境中無操作數比較指令、條件跳轉和無條件跳轉指令;
2.被修改替換的目标指令最終形成的位元組碼有前後相關性,即你改變其他任意一個位元組會影響到所有被vm虛拟化的指令
3.vmp的虛拟機其實是一個位元組碼解釋器,循環的讀取指令并執行,并且隻有一個入口和一個出口
4.虛假跳轉和垃圾指令, vmp會使用大量的虛拟跳轉和垃圾指令将原有簡單的代碼變得複雜
5.vmp是基于堆棧的虛拟機,虛拟機指令不是顯示的讀取參數,而是把要使用的參數壓入堆棧,而後直接從堆棧中讀取
6.vmp指令
1)算數運算和移位運算
2)堆棧操作
3)系統相關
4)邏輯運算,這個最複雜,vmp中隻有一個邏輯運算指令nor, 它可以模拟not and or xor 四個邏輯運算指令
7.vmp寄存器輪轉
mvp将所有的寄存器都放在一個堆棧的結構vm_context中, 結構中的每一項代碼一個寄存器或臨時變量
在程式運作過程中, vm_context結構中儲存的寄存器不是固定的,每當執行完一個操作或一個指令結構中的項與真實寄存器之間的映射關系會發生變化,就像一個齒輪随機的轉動了一下, 轉動過後原有的映射關系全部改變了
8.位元組碼加密和随機效驗
随機效驗比較牛B, vmp會在編譯好的位元組碼中加入自己的一些指令(專屬于vmp自動的指令), 每一次執行都會對一段代碼随機生成hash值, 然後與另一個随機數相加, vmp要求相加的結果必須為0, 否則會出錯.
如果您對該加密/解密軟體感興趣,歡迎加入加密/解密QQ交流群:740060302
