色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

什么是虛擬機保護技術

jf_78858299 ? 來源:看雪學苑 ? 作者:東方容克 ? 2023-02-14 11:31 ? 次閱讀

****虛擬機概覽

所謂虛擬機保護技術,是指將代碼翻譯為機器和人都無法識別的一串偽代碼字節(jié)流;在具體執(zhí)行時再對這些偽代碼進行一一翻譯解釋,逐步還原為原始代碼并執(zhí)行。

這段用于翻譯偽代碼并負責具體執(zhí)行的子程序就叫作虛擬機VM(好似一個抽象的CPU)。它以一個函數(shù)的形式存在,函數(shù)的參數(shù)就是字節(jié)碼的內存地址。

將虛擬機應用到商業(yè)中的保護殼現(xiàn)有三款:Vmprotect,themida和 execrypt。

**** 虛擬機架構

我們知道,代碼中的指令多種多樣,組織形式也千變萬化;虛擬機不可能針對每一種具體情況都進行翻譯處理。必須對所有可能遇到的指令先進行抽象歸類,然后分解為若干簡單的小指令,再交由各個專門的子程序(handler)去處理。

學過編譯原理的同學應該都知道三元式代碼吧,也叫做3地址代碼(three adress code)。即不論多么復雜的賦值公式,都可以分解為數(shù)個3地址代碼式序列。(什么是3地址代碼,1段3地址代碼只完成1次運算,譬如1次二目運算、1次比較,或者1次分支跳轉運算。)

與此類似,不論多么復雜的指令,都可以分解為一串不可再分割的原子指令序列。

虛擬機(CPU)的體系架構可分為3種,基于堆棧的(Stack based),基于寄存器的(Register based)和3地址機器。我們只講述基于堆棧的虛擬機架構(Stack based);這種架構的虛擬機需要頻繁操作堆棧,其使用的虛擬寄存器(虛擬的eax、ebx等等)保存在堆棧中;每個原子指令的handler都需要push、pop。

現(xiàn)在的CPU都有大量的寄存器,堆棧一般只是在函數(shù)傳遞參數(shù)時使用(譬如PC機用的x86系列CPU)。但也有一些CPU只操作內存,沒有堆棧,也沒有寄存器。使用這種CPU的機器稱之為3地址機器。

基于堆棧的CPU或虛擬機沒有臨時變量、寄存器的概念,所有的東西都放入堆棧。由于指令中不需要指定操作數(shù),所以其指令相對基于寄存器的要短。也因此相對簡單,在嵌入式系統(tǒng)中運用較多。用于保護代碼,我們也選擇這種。

舉例,譬如指令add,基于堆棧的CPU首先從堆棧里Pop兩個數(shù),然后將兩數(shù)相加,再把和Push到堆棧。Add指令只占用1個字節(jié)。而基于寄存器的CPU對應指令為 add Reg1,Reg2,需要3個字節(jié)。請仔細想象一下沒有寄存器的CPU,它的指令是怎樣的,該會是多么簡潔。當然,指令簡潔帶來的缺點就是效率低下。

我們這里談的虛擬機保護技術,就是把基于寄存器的CPU代碼,改造成基于堆棧的CPU的偽代碼。然后再由基于堆棧的虛擬機(CPU)對偽代碼解釋執(zhí)行。

**** 指令系統(tǒng)

關鍵在于設計一個虛擬的基于堆棧的虛擬機(CPU)的指令系統(tǒng)。這個指令系統(tǒng)越簡潔,復用性越高越好。

還是以add 指令為例。X86系列CPU的add指令有許多格式,譬如:add reg,imm 、add reg,reg、add reg,mem、add mem,reg等等。而基于堆棧的虛擬機CPU則沒有這么多花樣,就一個單單的add指令,參數(shù)和返回都是在堆棧里。

我們需要為我們的虛擬機CPU模擬實現(xiàn)這樣的add命令:

圖片

而原有的add命令的參數(shù),我們需要翻譯為 push 命令 。根據(jù)push 的對象不同,需要不同的實現(xiàn):

圖片

有Push指令了,也得有Pop指令:

圖片

基于堆棧的虛擬機指令系統(tǒng)就是這樣簡單的:單字節(jié)的動作指令(譬如add、dec),以及各式各樣的push、pop等堆棧操作指令。沒有復雜的寄存器與內存操作。我們需要把x86的CPU指令翻譯成虛擬機CPU的指令,譬如:

圖片

Call指令相對麻煩一點,因為Call的函數(shù)未必是虛擬機的偽代碼了。所以碰到Call指令,就要退出虛擬機,交由真實的CPU去處理了。代碼類似下面:

圖片

圖片

其余,要注意標志位的處理、不可模擬指令,以及指令的優(yōu)化。還有異常處理,這里就不展開了。

VStartVM是虛擬機的入口,負責保存運行環(huán)境(各個寄存器的值)、以及初始化堆棧(虛擬機使用的變量全部在堆棧中)。

Bytecode是偽代碼;VMDispatcher對偽代碼逐個閱讀處理,然后分發(fā)給下面的各個子程序(Handler)。

加殼程序先把已知的X86指令解釋成了字節(jié)碼,放在PE文件中,然后將原處代碼刪掉,改成類似的代碼進入虛擬機執(zhí)行循環(huán)。

圖片

VStartVM初始化后,堆棧情形如下:

圖片

edi指向VMcontext;esi指向偽代碼的地址;ebp指向真實堆棧的棧頂; 這三個寄存器在VM內不要再改了。

VMContext是虛擬機VM使用的虛擬環(huán)境結構:

圖片

VM之所以使用堆棧保存自己的寄存器結構,是考慮到多線程程序的兼容。

大家都知道脫殼時的堆棧平衡原理吧。同樣的,虛擬機在執(zhí)行翻譯后的程序代碼時,也不可以隨便變動原來的堆棧地址。還需經(jīng)常檢查在堆棧中的VMcontext結構不被沖掉。

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 機器
    +關注

    關注

    0

    文章

    784

    瀏覽量

    40778
  • 代碼
    +關注

    關注

    30

    文章

    4823

    瀏覽量

    68896
  • 虛擬機
    +關注

    關注

    1

    文章

    931

    瀏覽量

    28359
收藏 人收藏

    評論

    相關推薦

    什么是虛擬機虛擬機真的那么好用嗎?

    在日新月異的科技世界中,虛擬技術如同一座橋梁,連接著現(xiàn)實與數(shù)字的鴻溝,為我們打開了全新的計算維度。虛擬機,這一概念,自其誕生以來,就以其獨特的魅力和強大的功能,深深地影響了軟件開發(fā)、系統(tǒng)測試和云
    的頭像 發(fā)表于 07-06 08:05 ?463次閱讀
    什么是<b class='flag-5'>虛擬機</b>?<b class='flag-5'>虛擬機</b>真的那么好用嗎?

    有關虛擬機虛擬技術的幾點詮注

    虛擬機虛擬技術給計算機應用注入了新的研究與開發(fā)點,同時也存在諸多不利因素。本文綜述了虛擬機虛擬
    發(fā)表于 06-22 18:04 ?36次下載

    虛擬機虛擬技術

    虛擬機虛擬技術給計算機應用注入了新的研究與開發(fā)點,同時也存在諸多不利因素。本文綜述了虛擬機虛擬
    發(fā)表于 09-07 10:15 ?13次下載

    基于虛擬機技術的DSC仿真系統(tǒng)設計

    提出了基于虛擬機技術的DCS仿真系統(tǒng)的實現(xiàn)方式,描述了虛擬控制器的具體實現(xiàn)方法及虛擬機技術的其他應用。
    發(fā)表于 12-03 17:26 ?26次下載
    基于<b class='flag-5'>虛擬機</b><b class='flag-5'>技術</b>的DSC仿真系統(tǒng)設計

    基于虛擬機技術的DCS仿真系統(tǒng)設計與實現(xiàn)

    提出了基于虛擬機技術的DCS仿真系統(tǒng)的實現(xiàn)方式,描述了虛擬控制器的具體實現(xiàn)方法及虛擬機技術的其他應用。
    發(fā)表于 01-16 15:04 ?2218次閱讀
    基于<b class='flag-5'>虛擬機</b><b class='flag-5'>技術</b>的DCS仿真系統(tǒng)設計與實現(xiàn)

    虛擬機軟件保護方法

    軟件核心算法防逆向保護,是軟件研發(fā)乃至軟件產(chǎn)業(yè)發(fā)展的迫切需求,也是當前軟件安全研究領域的熱點之一.虛擬機軟件保護作為一種保護強度高、商業(yè)應用廣的技術
    發(fā)表于 01-31 16:31 ?0次下載

    虛擬機:QEMU虛擬機和主機無線網(wǎng)絡通訊設置

    虛擬機:QEMU虛擬機和主機無線網(wǎng)絡通訊設置
    的頭像 發(fā)表于 06-22 10:19 ?5485次閱讀
    <b class='flag-5'>虛擬機</b>:QEMU<b class='flag-5'>虛擬機</b>和主機無線網(wǎng)絡通訊設置

    基于復制技術虛擬機容災方案

    現(xiàn)在各個大企業(yè)的計算虛擬化程度都很高了,因此,很多關鍵的業(yè)務,如Oracle數(shù)據(jù)庫都跑在虛擬機上,特別是VMware虛擬機上。但是,虛擬機上的數(shù)據(jù)
    的頭像 發(fā)表于 10-21 11:29 ?3596次閱讀
    基于復制<b class='flag-5'>技術</b>的<b class='flag-5'>虛擬機</b>容災方案

    KVM虛擬機管理和基本使用

    KVM — 全稱是基于內核的虛擬機(Kernel-based Virtual Machine)是一個開源軟件,基于內核的虛擬技術,實際是嵌入系統(tǒng)的一個虛擬化模塊,通過優(yōu)化內核來使用
    的頭像 發(fā)表于 02-07 09:20 ?1336次閱讀

    虛擬機技術合集1

    惡意代碼編寫者經(jīng)常使用反虛擬機技術逃避分析,這種技術可以檢測自己是否運行在虛擬機中。如果惡意代碼探測到自己在虛擬機中運行,它會執(zhí)行與其本身行
    的頭像 發(fā)表于 02-14 13:45 ?1301次閱讀

    虛擬機技術合集2

    惡意代碼編寫者經(jīng)常使用反虛擬機技術逃避分析,這種技術可以檢測自己是否運行在虛擬機中。如果惡意代碼探測到自己在虛擬機中運行,它會執(zhí)行與其本身行
    的頭像 發(fā)表于 02-14 13:45 ?706次閱讀
    反<b class='flag-5'>虛擬機</b><b class='flag-5'>技術</b>合集2

    虛擬機技術合集3

    惡意代碼編寫者經(jīng)常使用反虛擬機技術逃避分析,這種技術可以檢測自己是否運行在虛擬機中。如果惡意代碼探測到自己在虛擬機中運行,它會執(zhí)行與其本身行
    的頭像 發(fā)表于 02-14 13:45 ?679次閱讀
    反<b class='flag-5'>虛擬機</b><b class='flag-5'>技術</b>合集3

    虛擬機技術合集4

    惡意代碼編寫者經(jīng)常使用反虛擬機技術逃避分析,這種技術可以檢測自己是否運行在虛擬機中。如果惡意代碼探測到自己在虛擬機中運行,它會執(zhí)行與其本身行
    的頭像 發(fā)表于 02-14 13:46 ?1073次閱讀
    反<b class='flag-5'>虛擬機</b><b class='flag-5'>技術</b>合集4

    Docker與虛擬機的區(qū)別

    Docker和虛擬機是兩種不同的虛擬技術,它們在實現(xiàn)方式、資源消耗、運行性能等方面存在許多差異。本文將會詳細介紹它們的區(qū)別。 一、實現(xiàn)方式 1.1 虛擬機
    的頭像 發(fā)表于 11-23 09:37 ?9871次閱讀

    虛擬機ubuntu怎么聯(lián)網(wǎng)

    虛擬機ubuntu怎么聯(lián)網(wǎng)? 虛擬機(Virtual Machine)是運行在物理(Host Machine)上的虛擬操作系統(tǒng)環(huán)境。在虛擬機
    的頭像 發(fā)表于 12-27 16:51 ?1026次閱讀
    主站蜘蛛池模板: 国拍自产精品福利区 | 日本久久中文字幕精品 | 99久久99 | 久久亚洲国产精品亚洲 | 国产99久久九九精品无码不卡 | 十分钟免费看完整视频 | 天天狠狠弄夜夜狠狠躁·太爽了 | 国产Av男人的天堂精品良久 | 亚洲精品国产品国语在线试看 | 2023国产精品一卡2卡三卡4卡 | 国产成人久久精品激情 | 亚州精品永久观看视频 | 三级黄在线 | 男人舔女人的阴部黄色骚虎视频 | 国产亚洲精品AV片在线观看播放 | 久久AAAA片一区二区 | 六月婷婷国产精品综合 | 国产精品爽爽久久久久久蜜桃 | 欧美人与善交大片 | 日本精品卡一卡2卡3卡四卡三卡 | 国产精品久久久久久无码专区 | 快播理论片 | 爱穿丝袜的麻麻3d漫画acg | 美女医生深夜在家裸睡惨死 | 欧美深深色噜噜狠狠yyy | 亚洲日本欧美产综合在线 | xxxx18动漫 | 国产在线精彩亚洲 | 久久热在线视频精品 | 做你的爱人BD日本 | 3344永久在线观看视频免费 | 強姧伦久久久久久久久 | 全彩黄漫火影忍者纲手无遮挡 | 亚洲国产成人在线 | 69亞洲亂人倫AV精品發布 | 老王午夜69精品影院 | 中文字幕无码亚洲视频 | 成人区在线观看免费视频 | 蜜桃麻豆WWW久久囤产精品免费 | 亚洲一在线 | 中文字幕国产视频 |