• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    ARMv8-A Return-Oriented Programming實(shí)現(xiàn)方法

    2018-11-30 01:46:56趙利軍
    關(guān)鍵詞:指令

    趙利軍 李 民 彭 誠(chéng)

    (中國(guó)人民解放軍陸軍工程大學(xué)軍事理論創(chuàng)新與作戰(zhàn)實(shí)驗(yàn)中心 江蘇 徐州 221000)

    0 引 言

    ARMv8-A架構(gòu)自2011年提出以來,其產(chǎn)品生態(tài)鏈得到了長(zhǎng)足的發(fā)展。未來幾年將會(huì)有越來越多支持ARMv8-A架構(gòu)的產(chǎn)品投市。2013年蘋果公司的iPhone 5s 采用的A7處理器是第一款正式量產(chǎn)的基于ARMv8架構(gòu)的處理器[1]。2014年AMD、博通和Applied Micro Circuits等公司均推出ARMv8處理器[2-4]。ARM公司預(yù)測(cè)2016年基于ARMv8的新型服務(wù)器將占有5%~10%的市場(chǎng)份額[5]。

    2007年Hova Shacham第一次提出了x86平臺(tái)上的返回導(dǎo)向編程技術(shù)(ROP)[6]。ROP技術(shù)不是通過注入惡意代碼,而是通過復(fù)用動(dòng)態(tài)庫(kù)和可執(zhí)行代碼中的指令序列(gadget)來實(shí)現(xiàn)任意的代碼語(yǔ)義。ROP作為能有效繞開數(shù)據(jù)執(zhí)行保護(hù)技術(shù)的重要手段,引起了研究人員的廣泛關(guān)注,他們先后在各個(gè)平臺(tái)上進(jìn)行了ROP技術(shù)的研究,例如SPARC[7]、Atmel AVR[8]和PowerPC[9]等。

    2010年,Kornau[10]首次在ARM平臺(tái)上實(shí)現(xiàn)的ROP攻擊技術(shù)采用以BX lr指令結(jié)尾的gadget。BX lr指令實(shí)現(xiàn)函數(shù)的返回[11],相當(dāng)于x86上的RET指令。文獻(xiàn)[11]還提出了一個(gè)ARM ROP Gadget自動(dòng)搜索的算法,并且給出了ARM ROP攻擊圖靈完整性的證明。在Kornau研究基礎(chǔ)上,Davi等[12]采用以BLX指令結(jié)尾的gadget實(shí)現(xiàn)了ARM架構(gòu)上的JOP(Jump-Oriented Programming)攻擊。

    文獻(xiàn)[10,12]的討論和技術(shù)實(shí)現(xiàn)均是針對(duì)ARMv7架構(gòu)進(jìn)行的。ARMv7向ARMv8的升級(jí),并不是簡(jiǎn)單的指令集擴(kuò)展及通用寄存器組長(zhǎng)度的擴(kuò)展。ARMv8架構(gòu)為了獲得低功耗高效率的64位計(jì)算優(yōu)勢(shì),引入了一個(gè)全新64位指令集A64。文獻(xiàn)[10,12]針對(duì)ARMv7的ROP解決方法并沒有解決ARMv8 ROP實(shí)現(xiàn)的關(guān)鍵問題:(1) ARMv8 ROP gadget的構(gòu)成及gadget的搜索。ARMv7中用于實(shí)現(xiàn)函數(shù)返回的BX lr指令在A64指令集中已經(jīng)不復(fù)存在。A64指令集中,用于實(shí)現(xiàn)函數(shù)返回的指令為RET {Xm}(當(dāng)Xm省略時(shí)默認(rèn)使用X30)[13-14],ARMv7不存在該條指令。(2) gadget串聯(lián)和ROP shellcode自動(dòng)生成。ARMv8-A上實(shí)現(xiàn)ARMv7的LR寄存器對(duì)應(yīng)功能的寄存器是X30,前者是32位的,后者是64位的。ARMv8-A中64位棧的組織與使用發(fā)生了明顯的變化。ARMv8架構(gòu)函數(shù)的prologue先調(diào)整棧指針,壓入函數(shù)返回地址,再分配局部變量空間[13-14]。ARMv7架構(gòu)函數(shù)的prologue先壓入函數(shù)返回地址,再調(diào)整棧指針,為局部變量分配空間。這些調(diào)整和變化均會(huì)影響gadget串聯(lián)和ROP shellcode自動(dòng)生成方式。本文將討論ARMv8 ROP實(shí)現(xiàn)的原理和方法,并通過實(shí)例說明ARMv8上ROP攻擊的全過程。

    1 ARMv8 ROP 方法

    1.1 ARMv8 ROP基本組成單元

    ARMv8實(shí)現(xiàn)函數(shù)返回的指令RET{Xm}本質(zhì)上是一條無條件間接轉(zhuǎn)移指令,可用Xm來顯式指明跳轉(zhuǎn)地址,Xm省略時(shí),跳轉(zhuǎn)地址由X30寄存器給出。雖然Xm可以為X0-X30中的任意一個(gè),但Linaro ARMv8 Linux函數(shù)返回指令僅使用了Xm省略的情況(使用X30寄存器存放目的地址)[13-14]。該指令對(duì)應(yīng)的二進(jìn)制編碼為d6 5f 03 c0。RET指令前通常有一條LDP/LDR指令用于把保存在棧中的函數(shù)的返回地址讀取到寄存器X30。

    ARMv8 ROP的基本單元是以RET指令結(jié)尾(函數(shù)返回地址通常由X30指定)的指令序列。ARMv8的函數(shù)返回地址通常由X30指定。要讓以RET指令結(jié)尾的gadget串聯(lián)起來的關(guān)鍵是合理控制X30 寄存器值,讓上一個(gè)gadget的末條指令RET的X30值作為下一個(gè)gadget的首指令的地址。本文給出了如下的邏輯結(jié)構(gòu)來描述ARMv8 ROP gadget的構(gòu)成,并將ROP gadget歸結(jié)為三種類型,方便gadget鏈的串聯(lián)和ROP shellcode 的自動(dòng)生成。

    1.1.1 邏輯結(jié)構(gòu)

    針對(duì)ARMv8架構(gòu),本文給出ARMv8 gadget的邏輯結(jié)構(gòu)定義如下:

    typedef struct

    {

    INS_STR GADGET_BODY[ ];

    INS_STR X30_ADJUST;

    INS_STR LAST_INS;

    } gadget_logic_struct;

    ARMv8 gadget的邏輯結(jié)構(gòu)由以下三部分組成:

    (1) GADGET_BODY:執(zhí)行g(shù)adget的主要功能,gadget中除X30_ADJUST和LAST_INS以外的部分;本部分可能為Φ,如控制流gadget。

    (2) X30_ADJUST:影響X30值的指令段,通常是LDP/LDR指令,若存在,一般只出現(xiàn)在gadget倒數(shù)第二條指令上;gadget倒數(shù)第二條指令是LDP/LDR以外的指令,該部分為Φ。

    (3) LAST_INS:gadget的最后一條指令,本文中為RET指令。

    1.1.2 gadget類別

    根據(jù)X30_ADJUST的形態(tài),ARMv8 ROP gadget類型見圖1。

    圖1 ARMv8 ROP gadget類型

    TYPE(a):X30_ADJUST為“l(fā)dp x29,x30,[sp],#offset”格式的指令。該條load register pair(post-indexd)指令,首先從當(dāng)前棧頂依次讀取兩個(gè)64位數(shù)據(jù)到寄存器X29和X30,然后更改棧指針的值為sp+offset。絕大多數(shù)gadget屬于此類型,如{add x0,x0,x1;ldp x29,x30,[sp],#0x20;ret}。

    TYPE(b):X30_ADJUST為“l(fā)dr x30,[sp],#offset”格式的指令。該條load register(post-indexd)指令,從當(dāng)前棧頂讀取一個(gè)64位數(shù)據(jù)到寄存器X30,然后更改棧指針的值為sp+offset,如{ldr x0,[sp],#8;ldr x30,[sp],#8 ;ret}。

    TYPE(c):X30_ADJUST中為Φ。該類gadget在完成特定功能的GADGET_BODY之后,直接使用RET指令進(jìn)行跳轉(zhuǎn)。該類gadget不改變X30的值,X30的值由上一個(gè)gadget決定,如{ ldr x1, [x0, #0x68];ret}。

    1.1.3 gadget搜索算法

    ARMv8 ROP gadget自動(dòng)搜索是從庫(kù)文件和可執(zhí)行文件中搜索以RET指令結(jié)尾的指令序列,并將搜索到的指令序列輸出為本文定義的ARMv8 gadget的邏輯結(jié)構(gòu)格式。算法1給出了自動(dòng)搜索算法遍歷庫(kù)文件或可執(zhí)行文件的整個(gè)代碼段。當(dāng)遇到RET指令時(shí),就將RET指令對(duì)應(yīng)的目標(biāo)碼存放在gadget邏輯結(jié)構(gòu)的LAST_INS中;然后判斷RET的前一條指令,如果為L(zhǎng)DP/LDR指令,就把對(duì)應(yīng)的目標(biāo)碼放入gadget邏輯結(jié)構(gòu)的X30_ADJUST中,否則加入gadget邏輯結(jié)構(gòu)的GADGET_BODY[]中。參數(shù)maxdepth給出了搜索算法的深度,也即gadget對(duì)應(yīng)的指令序列中指令最大條數(shù)。通常maxdepth的值設(shè)為2~5。當(dāng)發(fā)生以下情況時(shí)算法停止搜索:① 當(dāng)遇到返回指令RET、跳轉(zhuǎn)指令BLR或間接調(diào)用指令BR時(shí);② 當(dāng)gadget中的指令的條數(shù)大于搜索深度maxdepth時(shí)。

    算法1ARMv8 gadget自動(dòng)搜索算法

    1 /* textseg_length: the size of the text segment of the libraries or executables; maxdepth: the maximum instruction number for each gadget; input:textseg output:g (gadget_logic_struct sequences)*/

    2: Create Gadget( ){

    3. for (pos=0,pos

    4: if(the instruction at pos is "RET"){

    5: put current instruction insn into g.LAST_INS;

    6: if(the previous instruction is "LDP" or "LDR")

    7: put previous instruction pre_insn into g.X30_ADJUST;

    8: else put previous instruction pre_insn into g. GADGET_BODY[];

    9: for (step.from2 to maxdepth) {

    10: if ( the instruction insn at (pos-step*4) is not ("RET" or "BLR" or "BR")) )

    11: merge current instruction insn into g. GADGET_BODY[];

    12: else break;} } }

    13: set g to the next gadget;

    14: }

    1.1.4 gadget統(tǒng)計(jì)

    Linaro ARMv8 Linux(Linux version 3.6.0-1-Linaro-vexpress64)的/bin和/usr/bin目錄下存在178個(gè)應(yīng)用程序,其所依賴的庫(kù)文件引用統(tǒng)計(jì)如表1所示(僅列出前10)。

    表1 Linaro ARMv8 Linux基本命令的庫(kù)文件引用統(tǒng)計(jì)

    續(xù)表1

    從表1可以看出,所有的應(yīng)用程序都用到了libc.so.6和ld-linux-aarch64.so.1這兩個(gè)庫(kù)文件。 表2給出了這兩個(gè)庫(kù)文件中三類gadget的統(tǒng)計(jì)結(jié)果,可見可用于實(shí)現(xiàn)ARMv8ROP的gadget數(shù)目還是相當(dāng)可觀的。

    表2 gadget統(tǒng)計(jì)結(jié)果

    1.2 ARMv8 ROP方法設(shè)計(jì)

    1.2.1 控制結(jié)構(gòu)的組成

    為了實(shí)現(xiàn)gadget鏈的串聯(lián),本文引入了一個(gè)結(jié)構(gòu)體:控制結(jié)構(gòu)CS(control structure)。CS的組成如圖2所示。

    圖2 CS組成結(jié)構(gòu)

    各部分的作用如下:

    (1) PAR_SEC(GP):參數(shù)字段(parameter section),用于保存gadget所需要的參數(shù)和數(shù)據(jù)。若gadget不需要從堆棧中加載參數(shù)和數(shù)據(jù),該部分為Φ。

    (2) PAD0:X29_REG和PAR_SEC間可能存在的填充字段。

    在市場(chǎng)經(jīng)濟(jì)發(fā)展之時(shí),負(fù)面現(xiàn)象,尤其是環(huán)境污染隨之出現(xiàn)。為了營(yíng)造碧水藍(lán)天的生活環(huán)境,實(shí)現(xiàn)可續(xù)持續(xù)化發(fā)展,在2014年11月12日,國(guó)務(wù)院下發(fā)了《關(guān)于加強(qiáng)環(huán)境監(jiān)管執(zhí)法的通知》,要求全國(guó)各級(jí)地方政府重視環(huán)境執(zhí)法工作,杜絕各種環(huán)境違法現(xiàn)象,著力提高環(huán)境質(zhì)量水平。在2018年5月18日,國(guó)家主席習(xí)近平在全國(guó)生態(tài)環(huán)境保護(hù)大會(huì)上就環(huán)境執(zhí)法工作重要性予以強(qiáng)調(diào),并羅列若干事宜。依據(jù)上述內(nèi)容,可以將環(huán)境執(zhí)法界定為:以黨政政策、法律法規(guī)為基準(zhǔn)的,打擊實(shí)施一切環(huán)境違法犯罪的活動(dòng)。

    (3) X29_REG(X29PAD):用于保存X29的內(nèi)容。TYPE(b)的gadget對(duì)應(yīng)的CS中,此段為Φ。

    (4) X30_REG(GA):用于保存X30的內(nèi)容。上一個(gè)gadget基于該字段的值來調(diào)度本CS對(duì)應(yīng)的gadget。

    (5) PAD1:X30_REG之后可能存在的填充字段。

    1.2.2 ARMv8 ROP的工作原理

    為每個(gè)gadget生成一個(gè)CS對(duì)象,將各gadget的CS對(duì)象前后排列在一起就得到對(duì)應(yīng)的ROP shellcode。ROP shellcode的各gadget在對(duì)應(yīng)的CS對(duì)象控制之下能逐個(gè)得以執(zhí)行。圖3給出了ARMv8 ROP的內(nèi)存布局和工作過程。

    圖3 ARMv8 ROP內(nèi)存布局/框架

    ROP攻擊過程如下:

    Step1_a攻擊者利用應(yīng)用程序的漏洞向內(nèi)存中注入ROP shellcode。

    Step2gadget_0中X30_ADJUST對(duì)應(yīng)的指令將CS0中的X30_REG加載到X30。

    Step3gadget_0的RET指令執(zhí)行,控制流將轉(zhuǎn)向gadget_1。

    Step4后繼gadget將重復(fù)Step2和Step3,直至攻擊完成。

    1.2.3 CS自動(dòng)構(gòu)造算法

    本文的CS自動(dòng)構(gòu)造算法保證了堆棧的LIFO使用特性。該算法適用于運(yùn)行時(shí)ROP shellcode自動(dòng)生成,可避免基于LIFO特性的ROP檢測(cè)工具的檢測(cè)。CS的自動(dòng)構(gòu)造算法見算法2。該算法針對(duì)三種類型的gadget,通過倒序遍歷gadget中的各條指令生成對(duì)應(yīng)的CS控制數(shù)據(jù)。

    算法2CS自動(dòng)構(gòu)造算法

    1: CS cs_constructor(GADGET g, CS cs) {

    2: INSN insn;

    3: if(g. LAST_INS. op is not "RET" ) return(-1);

    4: if (g. X30_ADJUST. op is "ldr" or "ldp" ) {

    5: ONEORPAIR_size=(g. X30_ADJUST. op is "ldr") ? 0x8: 0x10;

    6: if (g. X30_ADJUST. imm > ONEORPAIR_size)

    7: fill cs.PAD1 with 0xA of size(g. X30_ADJUST. imm-ONEORPAIR_size);

    8: else set length of cs. PAD1 to 0;

    9: cs. X30_REG = current gadget address;

    10: if (g. X30_ADJUST. op is "ldr")

    11: set length of cs. X29_REG to 0;

    12: else cs. X29_REG ="AAAAAAAA";}

    13: for ( next insn from tail of g. GADGET_BODY) {

    14: if( insn. op is "ldr" or "ldp") {

    15: ONEORPAIR_size=(g.X30_ADJUST.op is "ldr") ? 0x8: 0x10;

    16: if (insn. imm> ONEORPAIR_size)

    17: fill cs. PAD0 with 0xA of size(insn, imm-ONEORPAIR_size);

    18: else set length of cs. PAD 0 to 0;

    19: fill cs. PAR_SEC with parameter_value; }

    20: }}

    圖4給出了CS自動(dòng)構(gòu)造的一個(gè)實(shí)例。該gadget的完整指令序列為{ldr x0,[sp],#16;add x0,#1;mov x2,x0;ldp x29,x30,[sp],#32;ret}。GADGET_BODY包括前三條指令{ldr x0,[sp],#16;add x0,#1;mov x2,x0};X30_ADJUST對(duì)應(yīng)的指令為{ldp x29,x30,[sp],#32};LAST_INS對(duì)應(yīng)的指令為{ret}。算法處理X30_ADJUST中的LDP指令時(shí),ONEORPAIR_size為16,X30_ADJUST.imm為32,PAD1對(duì)應(yīng)的字段的長(zhǎng)度為16(X30_ADJUST.imm-ONEORPAIR_size),X30_REG字段為該gadget在內(nèi)存中的地址,用8個(gè)A對(duì)X29_REG進(jìn)行填充。算法處理GADGET_BODY中的LDR指令時(shí),ONEORPAIR_size為8,insn.imm為16,PAD0對(duì)應(yīng)的字段的大小為8(insn.imm-ONEORPAIR_size),最后把需要加載到X0中的數(shù)據(jù)保存到PAR_SEC中。

    圖4 CS自動(dòng)構(gòu)造實(shí)例

    2 在Linaro ARMv8 Linux上發(fā)動(dòng)ROP攻擊

    本節(jié)將給出Linaro ARMv8 Linux上實(shí)現(xiàn)的ROP攻擊實(shí)例。該實(shí)例通過劫持控制流使程序去運(yùn)行一段ROP shellcode。該shellcode通過復(fù)用libc.so.6中的system( )函數(shù)打開一個(gè)shell命令行窗口。Linaro是ARM公司授權(quán)商,為ARMv8開發(fā)的工具鏈和快速模型虛擬平臺(tái)。本文所用的Linaro ARMv8 Linux版本號(hào)為L(zhǎng)inux 3.6.0-1-Linaro-vexpress64。

    2.1 gadget鏈

    本例gadget鏈所用的3個(gè)gadget來自libc.so.6或ld-linux-aarch64.so.1庫(kù)文件。gadget(12)和gadget(13)分別從內(nèi)存加載數(shù)據(jù)到寄存器X0和X1;gadget(14)將X0和X1相加,結(jié)果保存到寄存器X0中。gadget(11)中的“l(fā)dp x29,x30,[sp],#0x20”指令將從gadget的CS中加載system函數(shù)的入口地址到X30中,最后的RET指令將轉(zhuǎn)去執(zhí)行system函數(shù)。

    這三個(gè)gadget同時(shí)也是一個(gè)消除NULL字符的decoder。System( )函數(shù)所需要的參數(shù)(字符串“/bin/sh”的起始地址)為0x0000007fb7eb47c0,高位的3個(gè)字節(jié)為NULL,不應(yīng)出現(xiàn)在shellcode代碼串中。

    0x7fb7f4c4e4<+100>: F84027E0 ldr x0,[sp],#8

    0x7fb7f4c4e8<+104>: F84027FE ldr x30,[sp],#8

    0x7fb7f4c4ec<+108>: D65F03C0 ret

    gadget(12)

    0x7fb7b4a8c4<+84>: F84027E1 ldr x1,[sp],#8 0x7fb7b4a8c8<+88>: A8C37BFD ldp x29,x30,[sp],#0x10

    0x7fb7b4a8cc<+92>: D65F03C0 ret

    gadget(13)

    0x7fb75e138<+60>: 8b010000 add x0,x0,x1

    0x7fb75e13c<+64>: A8C17BFD ldp x29,x30,[sp],#0x20

    0x7fb75e140<+68>: D65F03C0 ret

    gadget(14)

    2.2 ROP shellcode

    相應(yīng)的ROP shellcode共126個(gè)字節(jié),內(nèi)容如下:

    charshellcode[]=

    "x41x41x41x41x41x41x41x41x41x41x41x41"

    "x41x41x41x41x41x41x41x41x41x41x41x41"

    "x41x41x41x41x41x41x41x41x41x41x41x41"

    "x41x41x41x41xe4xc4xf4xb7x7fx41x41x41"

    "x41x41x41x41x41x41x41x41x41x41x41x41"

    "x41x41x41x41x41x41x41x41x41x41x41x41"

    "x41x41x41x41x41x41x41x41xfdxedxeexee"

    "x6exeexeexeexc4xa8xb4xb7x7fx11x10x11"

    "x11x11x12x11x11x41x41x41x41x41x41x41"

    "x38x14x5exb7x7fx41x41x41x41x41x41x41"

    "x44x46xedxb7x7fx00”;

    圖5給出ROP shellcode在二進(jìn)制代碼查看工具中看到的結(jié)果。沒有用到的閑置內(nèi)存全部用字符A填充。

    圖5 ROP shellcode實(shí)例數(shù)據(jù)

    2.3 實(shí)現(xiàn)原理

    ROP shellcode對(duì)應(yīng)的內(nèi)存布局及工作原理如圖6所示。左側(cè)給出ROP的內(nèi)存安排和內(nèi)存地址的后12位,右側(cè)的虛線代表指令序列的執(zhí)行順序。

    圖6 ROP攻擊實(shí)例原理圖

    (1) 漏洞利用和控制流劫持:假設(shè)通過一次漏洞利用,本實(shí)例已經(jīng)用gadget(12)的首地址0x7fb7b4 a8c4覆蓋了程序保存在0x7ffffffb88處的正常的返回地址,這樣當(dāng)程序返回時(shí),將會(huì)跳轉(zhuǎn)到gadget(12)執(zhí)行。

    (2) gadget(12):根據(jù)1.1.2節(jié)對(duì)gadget類別的介紹,gadget(12)屬于TYPE(b)類型,即LAST_INS為RET指令,X30_ADJUST為ldr x30,[sp],#8。

    GADGET_BODY[]中存放的是ldr x0,[sp],#8指令。依據(jù)1.2.3節(jié)CS自動(dòng)構(gòu)造算法,其生成的控制結(jié)構(gòu)對(duì)應(yīng)圖6中的0x7ffffffbc0-0x7ffffffbd0內(nèi)存區(qū)域,X30_REG的值為0x7fb7b4a8c4,PAR_SEC的值為0xeeeeee6eeeeeedfd。該gadget的功能為從當(dāng)前棧頂取出兩個(gè)64位數(shù)據(jù)依次放入寄存器X0(值為0xeeeeee6eeeeeedfd)和X30(值為0x7fb7b4a8c4,gadget(10)首地址)。

    (3) gadget(13):根據(jù)1.1.2節(jié)對(duì)gadget類別的介紹,gadget(13)屬于TYPE(a)類型,即LAST_INS為RET指令,X30_ADJUST為ldp x29,x30,[sp],#0x10,GADGET_BODY[]中存放的是ldr x1,[sp],#8 指令。依據(jù)1.2.3 CS自動(dòng)構(gòu)造算法,其生成的控制結(jié)構(gòu)對(duì)應(yīng)圖6中的0x7ffffffbd0-0x7ffffffbe0內(nèi)存區(qū)域,X30_REG的值為為0x7fb75e138。本文使用8個(gè)字符“A”填充X29_REG,PAR_SEC的值為0x11111211111111011。該gadget的功能為從當(dāng)前棧頂讀取一個(gè)64位數(shù)據(jù)放入寄存器X1(值為0x11111211111111011),sp值增加8個(gè)字節(jié);然后從當(dāng)前棧頂讀取兩個(gè)數(shù)據(jù)依次放入寄存器X29(8個(gè)A)和X30(值為0x7fb75e138,gadget(14)首址),sp值增加16個(gè)字節(jié)。

    (4) gadget(14) :根據(jù)1.1.2節(jié)對(duì)gadget類別的介紹,gadget(14)屬于TYPE(a)類型,即LAST_INS為RET指令,X30_ADJUST為ldp x29,x30,[sp],#0x20,GADGET_BODY[]中存放的是add x0,x0,x1 指令。依據(jù)1.2.3 CS自動(dòng)構(gòu)造算法,其生成的控制結(jié)構(gòu)對(duì)應(yīng)圖6中的0x7ffffffbe8-0x7ffffffbf0內(nèi)存區(qū)域。使用16個(gè)字符“A”填充PAD1,X30_REG的值為為0x7fb7ed4644,使用8個(gè)字符“A”填充X29_REG。該gadget的第一條指令將X0與X1相加(0xeeeeee6eeeeeedfd+0x11111211111111011=0x0000007fb7eb47c0(該地址處存放著字符串“/bin/sh”); 第二條指令然后將0x7ffffffbe8處的8個(gè)“A”加載到X29中,0x7ffffffbf0處的system系統(tǒng)調(diào)用的地址加載到X30寄存器中。通過RET指令使控制流轉(zhuǎn)去0x7fb7ed4644處執(zhí)行(system代碼的入口地址為0x7fb7ed4644)。 程序執(zhí)行system系統(tǒng)調(diào)用完成攻擊。

    3 結(jié) 語(yǔ)

    本文提出了一個(gè)ARMv8上實(shí)現(xiàn)ROP的框架和方法,在給出ROP gadget邏輯結(jié)構(gòu)定義和分類方法的基礎(chǔ)上,實(shí)現(xiàn)了gadget自動(dòng)搜索與ARMv8 ROP控制結(jié)構(gòu)自動(dòng)構(gòu)造。本文的ROP方法維持了堆棧的LIFO使用特性,適用于運(yùn)行時(shí)ROP shellcode的自動(dòng)生成,可避免基于LIFO特性的ROP檢測(cè)工具的檢測(cè)。目前,ROPdefender、DROP、ROPecker等工具雖然尚不支持ARMv8架構(gòu)上ROP的檢測(cè)。ROP方法普遍存在頻繁使用RET的特征,上述工具經(jīng)平臺(tái)擴(kuò)展后將可以實(shí)現(xiàn)對(duì)本文ROP方法的檢測(cè)。下一步工作將進(jìn)行ARMv8 JOP技術(shù)的研究,使其能夠有效繞過檢測(cè)RET指令特征的防御工具。

    猜你喜歡
    指令
    聽我指令:大催眠術(shù)
    ARINC661顯控指令快速驗(yàn)證方法
    LED照明產(chǎn)品歐盟ErP指令要求解讀
    殺毒軟件中指令虛擬機(jī)的脆弱性分析
    巧用G10指令實(shí)現(xiàn)橢圓輪廓零件倒圓角
    中斷與跳轉(zhuǎn)操作對(duì)指令串的影響
    科技傳播(2015年20期)2015-03-25 08:20:30
    基于匯編指令分布的惡意代碼檢測(cè)算法研究
    一種基于滑窗的余度指令判別算法
    歐盟修訂電氣及電子設(shè)備等產(chǎn)品安全規(guī)定
    家電科技(2014年5期)2014-04-16 03:11:28
    MAC指令推動(dòng)制冷劑行業(yè)發(fā)展
    汽車零部件(2014年2期)2014-03-11 17:46:27
    在线 av 中文字幕| 超碰成人久久| www日本在线高清视频| 国产成人啪精品午夜网站| 一区二区三区激情视频| 最近的中文字幕免费完整| 王馨瑶露胸无遮挡在线观看| 99九九在线精品视频| 王馨瑶露胸无遮挡在线观看| 天堂8中文在线网| av国产精品久久久久影院| 午夜免费鲁丝| av卡一久久| 亚洲国产欧美网| av卡一久久| 91精品伊人久久大香线蕉| 亚洲av电影在线观看一区二区三区| 黄色怎么调成土黄色| 亚洲国产欧美网| 水蜜桃什么品种好| 亚洲精品国产区一区二| 18禁观看日本| 欧美97在线视频| a级片在线免费高清观看视频| 精品酒店卫生间| 天堂中文最新版在线下载| 丝袜人妻中文字幕| 人人妻人人澡人人看| 9色porny在线观看| 如何舔出高潮| 精品人妻熟女毛片av久久网站| 久久99精品国语久久久| 久久精品久久精品一区二区三区| 999久久久国产精品视频| 精品人妻熟女毛片av久久网站| 国产黄频视频在线观看| 免费观看性生交大片5| 激情视频va一区二区三区| 国产精品国产av在线观看| 美女大奶头黄色视频| 亚洲综合色网址| 老司机亚洲免费影院| 天天影视国产精品| 欧美在线一区亚洲| 搡老乐熟女国产| 最近的中文字幕免费完整| 午夜免费观看性视频| 男女下面插进去视频免费观看| 中文字幕色久视频| 国产精品久久久久成人av| 日本91视频免费播放| 精品国产一区二区三区久久久樱花| 国产精品秋霞免费鲁丝片| 国产免费视频播放在线视频| 亚洲成人免费av在线播放| 99精国产麻豆久久婷婷| 99热网站在线观看| 午夜91福利影院| 日日啪夜夜爽| 国产精品一区二区在线观看99| 成人毛片60女人毛片免费| 精品国产超薄肉色丝袜足j| 亚洲国产欧美网| 丝袜脚勾引网站| 欧美亚洲日本最大视频资源| 99久久人妻综合| 亚洲国产看品久久| 欧美日本中文国产一区发布| 大话2 男鬼变身卡| 日韩精品有码人妻一区| 中文字幕最新亚洲高清| 久久精品国产综合久久久| 最近的中文字幕免费完整| 黑人巨大精品欧美一区二区蜜桃| 男女无遮挡免费网站观看| 国产深夜福利视频在线观看| 黄色 视频免费看| 国产亚洲av高清不卡| 亚洲精品乱久久久久久| 各种免费的搞黄视频| 亚洲av成人精品一二三区| 国产亚洲午夜精品一区二区久久| 久久青草综合色| 亚洲欧美一区二区三区久久| 日韩中文字幕欧美一区二区 | 五月开心婷婷网| 精品人妻熟女毛片av久久网站| 免费观看人在逋| 亚洲人成电影观看| 爱豆传媒免费全集在线观看| 国产av国产精品国产| 国产免费一区二区三区四区乱码| 一级黄片播放器| 国产野战对白在线观看| 日本欧美视频一区| 亚洲人成网站在线观看播放| 纵有疾风起免费观看全集完整版| 9色porny在线观看| 精品亚洲乱码少妇综合久久| 欧美在线一区亚洲| 久久久久久久精品精品| 精品人妻一区二区三区麻豆| 亚洲一区二区三区欧美精品| 久久国产亚洲av麻豆专区| 99久久人妻综合| 亚洲第一区二区三区不卡| 高清av免费在线| 日韩 亚洲 欧美在线| 久久毛片免费看一区二区三区| 欧美日韩成人在线一区二区| 美女福利国产在线| 免费黄频网站在线观看国产| 男女边摸边吃奶| 成人漫画全彩无遮挡| 婷婷色av中文字幕| 午夜福利在线免费观看网站| 国产成人欧美在线观看 | 国产日韩欧美在线精品| 欧美亚洲 丝袜 人妻 在线| 黄片播放在线免费| 精品人妻一区二区三区麻豆| 亚洲av国产av综合av卡| 卡戴珊不雅视频在线播放| 精品亚洲乱码少妇综合久久| 久久免费观看电影| 日日摸夜夜添夜夜爱| 亚洲伊人色综图| 高清黄色对白视频在线免费看| 亚洲精品国产色婷婷电影| 免费看av在线观看网站| 精品国产露脸久久av麻豆| 亚洲综合色网址| 国产乱来视频区| 国产在线免费精品| 日本猛色少妇xxxxx猛交久久| 亚洲欧美激情在线| 午夜福利在线免费观看网站| 熟女少妇亚洲综合色aaa.| 国产日韩欧美视频二区| 国产精品一区二区在线观看99| 国产成人欧美在线观看 | 亚洲精华国产精华液的使用体验| 欧美激情极品国产一区二区三区| 免费观看av网站的网址| 日韩人妻精品一区2区三区| av免费观看日本| 少妇人妻久久综合中文| 日日爽夜夜爽网站| 侵犯人妻中文字幕一二三四区| 日韩制服丝袜自拍偷拍| 人人妻人人爽人人添夜夜欢视频| av.在线天堂| 亚洲国产av影院在线观看| 青青草视频在线视频观看| 无限看片的www在线观看| 国产爽快片一区二区三区| 少妇被粗大的猛进出69影院| 亚洲欧美一区二区三区黑人| 久久久久精品久久久久真实原创| 最近最新中文字幕免费大全7| 国产高清国产精品国产三级| 精品卡一卡二卡四卡免费| 韩国av在线不卡| 国产免费又黄又爽又色| 人体艺术视频欧美日本| av免费观看日本| 久久ye,这里只有精品| 我要看黄色一级片免费的| 飞空精品影院首页| 国产xxxxx性猛交| 亚洲精品美女久久av网站| 欧美日韩成人在线一区二区| 亚洲一卡2卡3卡4卡5卡精品中文| 一边亲一边摸免费视频| 我的亚洲天堂| www日本在线高清视频| 久久久久久免费高清国产稀缺| a级毛片在线看网站| 最黄视频免费看| 国产精品一区二区在线不卡| 丰满迷人的少妇在线观看| 日日摸夜夜添夜夜爱| 韩国高清视频一区二区三区| 国产精品久久久人人做人人爽| 国产伦人伦偷精品视频| 日韩一卡2卡3卡4卡2021年| 在线观看免费高清a一片| 国产无遮挡羞羞视频在线观看| 国产av一区二区精品久久| 人成视频在线观看免费观看| 国产一区亚洲一区在线观看| 亚洲综合精品二区| 人人妻,人人澡人人爽秒播 | 亚洲成人一二三区av| 国产一卡二卡三卡精品 | av国产精品久久久久影院| 欧美av亚洲av综合av国产av | 国产深夜福利视频在线观看| 一区二区三区精品91| 国产免费一区二区三区四区乱码| 亚洲,欧美,日韩| 色吧在线观看| 国产精品久久久久久精品古装| 中文字幕另类日韩欧美亚洲嫩草| 久久久久精品国产欧美久久久 | 久久精品国产综合久久久| 赤兔流量卡办理| 日韩精品有码人妻一区| 天堂俺去俺来也www色官网| 久久国产精品大桥未久av| 欧美少妇被猛烈插入视频| 熟妇人妻不卡中文字幕| 麻豆av在线久日| netflix在线观看网站| 精品人妻在线不人妻| 视频区图区小说| 狂野欧美激情性bbbbbb| 免费观看人在逋| 91老司机精品| 亚洲国产看品久久| 国产极品粉嫩免费观看在线| 老司机在亚洲福利影院| 叶爱在线成人免费视频播放| av天堂久久9| 丁香六月天网| 日韩伦理黄色片| 国产精品免费视频内射| 亚洲成人av在线免费| 国产视频首页在线观看| 天天躁狠狠躁夜夜躁狠狠躁| 又大又爽又粗| 一边摸一边抽搐一进一出视频| 亚洲精品美女久久av网站| 国产男女内射视频| 天天躁狠狠躁夜夜躁狠狠躁| 日韩精品有码人妻一区| 秋霞在线观看毛片| 亚洲七黄色美女视频| 国产av国产精品国产| 午夜免费观看性视频| 精品久久久久久电影网| 午夜精品国产一区二区电影| 成人手机av| 国产精品嫩草影院av在线观看| 老汉色av国产亚洲站长工具| 男女高潮啪啪啪动态图| 巨乳人妻的诱惑在线观看| 欧美人与性动交α欧美精品济南到| 老司机亚洲免费影院| 女性生殖器流出的白浆| 日本av手机在线免费观看| 久久狼人影院| 国产一区亚洲一区在线观看| av在线app专区| 青草久久国产| 亚洲精品成人av观看孕妇| 大陆偷拍与自拍| 国产成人av激情在线播放| 成年动漫av网址| 亚洲欧洲国产日韩| 欧美成人精品欧美一级黄| av网站免费在线观看视频| 嫩草影院入口| 久久鲁丝午夜福利片| 男女高潮啪啪啪动态图| 一区福利在线观看| 亚洲综合色网址| 老熟女久久久| 亚洲欧洲国产日韩| 18禁观看日本| av福利片在线| 欧美日韩亚洲高清精品| 亚洲av国产av综合av卡| 欧美国产精品va在线观看不卡| 五月开心婷婷网| 在线观看国产h片| 午夜影院在线不卡| 国产成人欧美在线观看 | 在线天堂最新版资源| 国精品久久久久久国模美| 另类亚洲欧美激情| 国产精品三级大全| 久久婷婷青草| 高清av免费在线| 涩涩av久久男人的天堂| 国产成人91sexporn| 婷婷色av中文字幕| 亚洲激情五月婷婷啪啪| av女优亚洲男人天堂| 欧美日韩亚洲综合一区二区三区_| 久久青草综合色| 亚洲精品一二三| 中文精品一卡2卡3卡4更新| 亚洲av成人不卡在线观看播放网 | 亚洲一区二区三区欧美精品| 日韩 亚洲 欧美在线| 成年美女黄网站色视频大全免费| 看免费av毛片| 捣出白浆h1v1| 日韩成人av中文字幕在线观看| 欧美变态另类bdsm刘玥| 国产男人的电影天堂91| 国产xxxxx性猛交| 日本vs欧美在线观看视频| 中文字幕亚洲精品专区| 亚洲熟女精品中文字幕| 亚洲精品在线美女| 91国产中文字幕| 国产精品一区二区精品视频观看| 美女大奶头黄色视频| 不卡av一区二区三区| 亚洲成人av在线免费| 久久 成人 亚洲| 人人妻人人爽人人添夜夜欢视频| 精品第一国产精品| 成人午夜精彩视频在线观看| 夫妻午夜视频| 国产午夜精品一二区理论片| 一边亲一边摸免费视频| 秋霞伦理黄片| 午夜久久久在线观看| 天天躁狠狠躁夜夜躁狠狠躁| 可以免费在线观看a视频的电影网站 | 1024香蕉在线观看| www.精华液| 日韩 欧美 亚洲 中文字幕| 国产成人免费观看mmmm| 午夜福利视频在线观看免费| 女人精品久久久久毛片| 丝袜喷水一区| 少妇的丰满在线观看| 伊人久久国产一区二区| 欧美 日韩 精品 国产| 男女免费视频国产| 美女国产高潮福利片在线看| 大话2 男鬼变身卡| 国产精品久久久久久精品电影小说| 亚洲第一区二区三区不卡| 精品久久久精品久久久| 久久人妻熟女aⅴ| 国产在视频线精品| 精品国产乱码久久久久久男人| 男男h啪啪无遮挡| 黄色视频不卡| 黄色毛片三级朝国网站| 国产成人精品在线电影| 99久久99久久久精品蜜桃| videosex国产| 丰满少妇做爰视频| 国产伦人伦偷精品视频| 成年人午夜在线观看视频| 叶爱在线成人免费视频播放| 免费在线观看视频国产中文字幕亚洲 | 精品亚洲乱码少妇综合久久| 桃花免费在线播放| 在线观看一区二区三区激情| 日韩中文字幕视频在线看片| 国产淫语在线视频| www.熟女人妻精品国产| 免费在线观看完整版高清| 青春草亚洲视频在线观看| 赤兔流量卡办理| 久久久久精品国产欧美久久久 | 亚洲精品在线美女| 69精品国产乱码久久久| 九九爱精品视频在线观看| 日韩精品有码人妻一区| 极品少妇高潮喷水抽搐| 国产成人91sexporn| 十八禁高潮呻吟视频| 精品一区二区免费观看| 国产精品麻豆人妻色哟哟久久| 成人国产麻豆网| 久久人人97超碰香蕉20202| 人人妻人人澡人人看| 韩国精品一区二区三区| 中国三级夫妇交换| 男女无遮挡免费网站观看| 一边亲一边摸免费视频| 国产不卡av网站在线观看| av天堂久久9| 欧美激情 高清一区二区三区| 国产高清国产精品国产三级| 99国产精品免费福利视频| 青青草视频在线视频观看| 久久精品国产亚洲av涩爱| 国产99久久九九免费精品| 老汉色av国产亚洲站长工具| 99久久综合免费| 国产精品一区二区在线观看99| netflix在线观看网站| 99国产综合亚洲精品| 一本大道久久a久久精品| 肉色欧美久久久久久久蜜桃| 欧美日韩精品网址| 又大又爽又粗| 飞空精品影院首页| 日本vs欧美在线观看视频| 国产亚洲av片在线观看秒播厂| 亚洲精品乱久久久久久| 精品人妻在线不人妻| 国产高清国产精品国产三级| 捣出白浆h1v1| 9191精品国产免费久久| 最近最新中文字幕大全免费视频 | 国产精品国产av在线观看| 在线观看国产h片| 国产精品二区激情视频| 久久韩国三级中文字幕| av.在线天堂| 曰老女人黄片| 日韩大码丰满熟妇| 国产精品久久久久久久久免| 日韩一卡2卡3卡4卡2021年| 免费黄频网站在线观看国产| 国产精品三级大全| 男女床上黄色一级片免费看| 国产成人a∨麻豆精品| 国产av码专区亚洲av| 亚洲四区av| 永久免费av网站大全| 97精品久久久久久久久久精品| 91国产中文字幕| 三上悠亚av全集在线观看| 菩萨蛮人人尽说江南好唐韦庄| av在线老鸭窝| 夫妻午夜视频| 老汉色av国产亚洲站长工具| 99九九在线精品视频| 亚洲七黄色美女视频| 狂野欧美激情性bbbbbb| 哪个播放器可以免费观看大片| 纯流量卡能插随身wifi吗| 色婷婷av一区二区三区视频| 一区福利在线观看| 我的亚洲天堂| 国产av精品麻豆| 亚洲精品日本国产第一区| 美女大奶头黄色视频| 久久久精品区二区三区| 亚洲国产av新网站| 成年动漫av网址| 国产日韩一区二区三区精品不卡| videosex国产| a级毛片黄视频| 欧美日韩成人在线一区二区| 久久人人97超碰香蕉20202| 少妇的丰满在线观看| 成人午夜精彩视频在线观看| 久久精品久久精品一区二区三区| 精品国产乱码久久久久久男人| 亚洲欧美中文字幕日韩二区| 成人手机av| 韩国精品一区二区三区| 欧美日韩亚洲国产一区二区在线观看 | 天天影视国产精品| 久久午夜综合久久蜜桃| 午夜福利免费观看在线| 亚洲精品日本国产第一区| 欧美亚洲 丝袜 人妻 在线| 国产欧美日韩一区二区三区在线| 激情五月婷婷亚洲| 久久亚洲国产成人精品v| 久久97久久精品| 香蕉丝袜av| 欧美日韩av久久| 街头女战士在线观看网站| 免费黄网站久久成人精品| 色吧在线观看| 免费看不卡的av| 久久99热这里只频精品6学生| 黑丝袜美女国产一区| 丝袜脚勾引网站| 制服诱惑二区| 丝袜喷水一区| 成人漫画全彩无遮挡| 色94色欧美一区二区| 在现免费观看毛片| 欧美日韩成人在线一区二区| 亚洲国产精品国产精品| www.精华液| 亚洲精品美女久久av网站| 最近手机中文字幕大全| 免费高清在线观看视频在线观看| 乱人伦中国视频| 国产男女内射视频| 国产欧美亚洲国产| 欧美人与性动交α欧美软件| 大香蕉久久成人网| 亚洲精品一区蜜桃| 国产精品欧美亚洲77777| 在线天堂中文资源库| 国语对白做爰xxxⅹ性视频网站| 一级片免费观看大全| 悠悠久久av| 最近最新中文字幕免费大全7| 热99久久久久精品小说推荐| 色播在线永久视频| 亚洲国产欧美一区二区综合| 国产精品蜜桃在线观看| 在线观看三级黄色| 精品人妻熟女毛片av久久网站| 亚洲精品国产av成人精品| 又大又爽又粗| 极品少妇高潮喷水抽搐| 搡老乐熟女国产| 波野结衣二区三区在线| 少妇人妻精品综合一区二区| 日韩精品有码人妻一区| 午夜免费观看性视频| 中文字幕av电影在线播放| 亚洲一码二码三码区别大吗| 如何舔出高潮| 欧美日韩亚洲国产一区二区在线观看 | 日韩一区二区视频免费看| 人人妻人人添人人爽欧美一区卜| 男女之事视频高清在线观看 | 亚洲成人免费av在线播放| 欧美精品av麻豆av| 色网站视频免费| 国产亚洲av高清不卡| 国产一区二区在线观看av| 赤兔流量卡办理| 色播在线永久视频| 这个男人来自地球电影免费观看 | 亚洲国产中文字幕在线视频| 亚洲中文av在线| 欧美日韩精品网址| 少妇人妻 视频| 一二三四在线观看免费中文在| 日本一区二区免费在线视频| 在线观看免费视频网站a站| 亚洲精品av麻豆狂野| 人成视频在线观看免费观看| 狠狠精品人妻久久久久久综合| 午夜久久久在线观看| 五月开心婷婷网| 国产精品99久久99久久久不卡 | 波多野结衣av一区二区av| 成人影院久久| 国产有黄有色有爽视频| 一区二区三区激情视频| 成年女人毛片免费观看观看9 | 精品免费久久久久久久清纯 | 欧美最新免费一区二区三区| 一边摸一边做爽爽视频免费| 最新在线观看一区二区三区 | 欧美最新免费一区二区三区| 日韩一区二区三区影片| 亚洲精品乱久久久久久| 不卡视频在线观看欧美| www日本在线高清视频| 99精品久久久久人妻精品| 在线观看免费视频网站a站| 男男h啪啪无遮挡| 国产黄色免费在线视频| videos熟女内射| 国产成人av激情在线播放| 男女免费视频国产| 999久久久国产精品视频| 久久久精品94久久精品| 亚洲人成77777在线视频| 亚洲欧美日韩另类电影网站| 七月丁香在线播放| 91精品三级在线观看| 免费日韩欧美在线观看| 国产欧美日韩综合在线一区二区| 两个人免费观看高清视频| 99久久99久久久精品蜜桃| 在线观看免费日韩欧美大片| 天天躁狠狠躁夜夜躁狠狠躁| av在线播放精品| 母亲3免费完整高清在线观看| 99久久人妻综合| 国产一区二区 视频在线| 亚洲七黄色美女视频| 久久久久久久国产电影| 精品一区在线观看国产| 你懂的网址亚洲精品在线观看| 黄色 视频免费看| 国产精品欧美亚洲77777| 黑丝袜美女国产一区| 免费看av在线观看网站| 日本猛色少妇xxxxx猛交久久| 欧美最新免费一区二区三区| 亚洲精品在线美女| 免费久久久久久久精品成人欧美视频| 90打野战视频偷拍视频| 亚洲精品在线美女| 美女扒开内裤让男人捅视频| 久久精品人人爽人人爽视色| 一区二区三区激情视频| 大片电影免费在线观看免费| 波野结衣二区三区在线| 亚洲成人一二三区av| 欧美中文综合在线视频| 夫妻性生交免费视频一级片| 超碰97精品在线观看| 高清av免费在线| 色网站视频免费| 美女视频免费永久观看网站| 黑人猛操日本美女一级片| 精品国产乱码久久久久久男人| 女人被躁到高潮嗷嗷叫费观| av一本久久久久| 制服丝袜香蕉在线| 亚洲av成人不卡在线观看播放网 | www.熟女人妻精品国产| 免费观看av网站的网址| 久久人人97超碰香蕉20202| 欧美久久黑人一区二区| 欧美精品一区二区大全| 国产日韩欧美亚洲二区| 国产av国产精品国产| 免费高清在线观看视频在线观看|