[發明專利]一種通用CPU自解釋指令執行的虛擬機實現方法在審
| 申請號: | 202011438223.8 | 申請日: | 2020-12-11 |
| 公開(公告)號: | CN112540828A | 公開(公告)日: | 2021-03-23 |
| 發明(設計)人: | 劉柏江 | 申請(專利權)人: | 成都云鈾子網絡科技有限公司 |
| 主分類號: | G06F9/455 | 分類號: | G06F9/455 |
| 代理公司: | 成都聚蓉眾享知識產權代理有限公司 51291 | 代理人: | 張輝 |
| 地址: | 610000 四川省成都市高新*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 通用 cpu 解釋 指令 執行 虛擬機 實現 方法 | ||
本發明公開一種通用CPU自解釋指令執行的虛擬機實現方法,步驟10、CPU指令集分類:將目標二進制代碼分類為硬件指令和軟件指令并分別進行編碼,如目標二進制代碼為硬件指令,進入步驟20,如目標二進制代碼為軟件指令,進入步驟30;步驟20、硬件指令處理:保持硬件指令類型不變,對其進行寄存器映射替換,然后將其用于CPU自解釋執行,進入步驟40;步驟30、軟件指令處理:將軟件指令拆分成自定義的編碼格式,在執行過程中利用軟件代碼模擬其對應的功能,進入步驟40;步驟40、虛擬機:調取當前CPU對等的寄存器上下文、步驟20中處理完成的硬件指令和步驟30中處理完成的軟件指令并進行組合。本發明能快速準確的實現CPU自解釋指令執行的虛擬機化。
技術領域
本發明屬于軟件安全領域,具體涉及一種通用CPU自解釋指令執行的虛擬機實現方法。
背景技術
在軟件安全領域,代碼保護效果最好的形式即為虛擬機代碼保護。這種方案由于存在私有的指令編碼和CPU解釋器,所以可以很好的保護目標代碼不被逆向工程。在Windows平臺,由于只需要考慮x86/x64架構,因此實現自定義的虛擬機相對容易,典型的產品如VMProtect。而在移動平臺比如iOS/Android,需要考慮x86/x64/arm/arm64/arm64e等一系列架構,因此需要設計一種相對通用的虛擬機實現方案。
發明內容
本發明所要解決的技術問題便是針對上述現有技術的不足,提供一種通用CPU自解釋指令執行的虛擬機實現方法,能快速準確的實現CPU自解釋指令執行的虛擬機化。
本發明所采用的技術方案是:一種通用CPU自解釋指令執行的虛擬機實現方法,包括以下步驟:
步驟10、CPU指令集分類:將目標二進制代碼分類為硬件指令和軟件指令并分別進行編碼,如目標二進制代碼為硬件指令,進入步驟20,如目標二進制代碼為軟件指令,進入步驟30;
步驟20、硬件指令處理:保持硬件指令類型不變,對其進行寄存器映射替換,然后將其用于CPU自解釋執行,進入步驟40;
步驟30、軟件指令處理:將軟件指令拆分成自定義的編碼格式,在執行過程中利用軟件代碼模擬其對應的功能,進入步驟40;
步驟40、虛擬機:調取當前CPU對等的寄存器上下文、步驟20中處理完成的硬件指令和步驟30中處理完成的軟件指令并進行組合,得到所述的虛擬機。
其中一個實施例中,步驟10中,所述的軟件指令包括斷點指令、結束指令和PC依賴指令。
其中一個實施例中,步驟10中,將所述的目標二進制代碼按照邏輯控制指令、普通指令和依賴PC的普通指令進行分類。
其中一個實施例中,步驟20中,所述寄存器映射替換方式具體如下:
將特殊寄存器替換為普通寄存器。
本發明的有益效果在于:
1、可以快速的實現出一個完備的虛擬機;
2、可以快速遷移至不同計算機體系架構。
附圖說明
圖1為本發明虛擬機實現原理圖。
具體實施方式
下面將結合附圖及具體實施例對本發明作進一步詳細說明。
如圖1所示,本發明公開了一種通用CPU自解釋指令執行的虛擬機實現方法,包括以下步驟:
步驟10、CPU指令集分類:將目標二進制代碼分類為硬件指令和軟件指令并分別進行編碼,如目標二進制代碼為硬件指令,進入步驟20,如目標二進制代碼為軟件指令,進入步驟30;
步驟20、硬件指令處理:保持硬件指令類型不變,對其進行寄存器映射替換,然后將其用于CPU自解釋執行,進入步驟40;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于成都云鈾子網絡科技有限公司,未經成都云鈾子網絡科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011438223.8/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種基于距離變換的中藥丸視覺引導定位方法
- 下一篇:一種炭基肥改良劑及工藝





