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

    分存技術(shù)在代碼混淆中的研究

    2015-12-20 06:57:48楊秋翔陳夠喜牛文瑞
    關(guān)鍵詞:程序代碼控制流謂詞

    楊秋翔,王 蕊,陳夠喜,牛文瑞

    (中北大學(xué) 計(jì)算機(jī)與控制工程學(xué)院,山西 太原030051)

    0 引 言

    近年來(lái),軟件破解者不斷運(yùn)用逆向工程技術(shù)對(duì)軟件代碼進(jìn)行靜態(tài)分析、動(dòng)態(tài)跟蹤等攻擊。代碼混淆技術(shù)[1-2]通過(guò)代碼變換來(lái)降低程序的可理解性,使代碼更難于被靜態(tài)分析,增加了軟件被篡改或非法復(fù)用的難度。其中,代碼控制流混淆是當(dāng)前代碼混淆技術(shù)中的研究熱點(diǎn)。目前,存在著許多種代碼控制流混淆變換[3-4],但都由于變換形式過(guò)于單一,很容易被逆向工程所過(guò)濾。針對(duì)這種情況,文獻(xiàn)[5]提出不透明謂詞變換和降級(jí)高級(jí)控制結(jié)構(gòu)變換,加大了反編譯及逆向工程的難度;文獻(xiàn) [6]提出插入垃圾代碼的改進(jìn)的控制變換,增加了防止破解者靜態(tài)分析的能力;文獻(xiàn) [7]提出混沌不透明謂詞變換,盡可能地防止破解者對(duì)代碼進(jìn)行靜態(tài)攻擊。但是這些變換最終無(wú)法確定代碼的混淆強(qiáng)度是否足夠抵抗攻擊,并且無(wú)法動(dòng)態(tài)地檢驗(yàn)破解者的非法操作。

    針對(duì)混淆強(qiáng)度和動(dòng)態(tài)檢驗(yàn)非法操作的問題,本文在現(xiàn)有的代碼控制流混淆變換的基礎(chǔ)上,提出了一種基于分存技術(shù)的代碼控制流混淆方法。該方法將分存技術(shù)與常規(guī)控制變換相結(jié)合,并應(yīng)用于軟件的注冊(cè)驗(yàn)證機(jī)制,改變了代碼的控制流結(jié)構(gòu),增加了破解者攻擊軟件的難度,具有足夠的混淆強(qiáng)度,能夠隨時(shí)檢驗(yàn)破解者的非法操作,成本較低且易于實(shí)現(xiàn),在一定程度上實(shí)現(xiàn)了對(duì)代碼的安全保護(hù)。

    1 相關(guān)定義

    定義1 Bernstein多項(xiàng)式。設(shè)f(x)∈C [0,1],n∈Z+,則Bernstein多項(xiàng)式函數(shù)Bn(x)定義為

    定義2 不透明謂詞。設(shè)i∈ {1,2,…,n},-Pi,當(dāng)程序中點(diǎn)p 上的輸出在混淆程序之前就已確定時(shí),稱謂詞Pi在點(diǎn)p 上是不透明謂詞。如果Pi的輸出一直為真,就記作 (Pi)T;如果Pi的輸出一直為假,就記作 (Pi)F;如果Pi的輸出時(shí)為真時(shí)為假,就記作 (Pi)?。

    定義3 偏好關(guān)系。設(shè)非空集合M= {mi,i=1,2,…,n}是定義于RN+上的抵抗破解者逆向工程的所有可選方法的集合,如果對(duì)于M 中的任意兩種方法存在關(guān)系:m1m2,就可認(rèn)為用戶對(duì)方法m1的評(píng)估偏好于方法m2。

    假設(shè)軟件破解者對(duì)程序?qū)嵤┕?,用戶分別用方法m1和m2進(jìn)行代碼保護(hù)。在理想條件下,任何代碼都可以被逆向工程所攻擊,因此可將獲得逆向工程所需的難度系數(shù)記為s(m1)與s(m2)。若s(m1)>s(m2),則說(shuō)明使用方法m1保護(hù)代碼更難被逆向分析,即s(mi)可表示為當(dāng)用戶使用方法mi保護(hù)代碼時(shí)破解者的攻擊復(fù)雜度。由于偏好的方法能夠造成破解者的攻擊復(fù)雜度加倍,所以s(·)就能夠反映出偏好關(guān)系,于是用戶更偏好的方法總能被s(·)賦一個(gè)更高的值,即m1m2s(m1)≥s(m2)。

    2 基于分存技術(shù)的代碼控制流混淆方法

    2.1 分存技術(shù)

    分存技術(shù)是將一個(gè)單載體分解為若干個(gè)多載體再進(jìn)行傳輸或存儲(chǔ)的過(guò)程,用來(lái)增強(qiáng)載體信息的安全性。已有的實(shí)現(xiàn)分存技術(shù)的方法包括基于Lagrange插值、基于Bernstein多項(xiàng)式和基于中國(guó)剩余定理。由于利用基于Bernstein多項(xiàng)式的分存技術(shù)對(duì)載體進(jìn)行分存可以實(shí)現(xiàn)從離散到連續(xù)的推廣,所以本文采取Bernstein多項(xiàng)式把軟件密鑰分解為若干個(gè)加密算法不同的密鑰段,進(jìn)而在軟件程序中實(shí)現(xiàn)分存,以便增加代碼的安全性。

    由定義1可推導(dǎo)為

    設(shè)∑:f=f(u,r)為一參數(shù)曲面,f(u,r)= {fi,j︱i=0,…,n1,j=0,…,n2}, (u,r)D∈R2,對(duì)式(1)Bn(x)進(jìn)行擴(kuò)展,可得二維乘積型Bernstein多項(xiàng)式函數(shù)為

    根據(jù)式 (2)可知二維乘積型Bernstein多項(xiàng)式函數(shù)可構(gòu)成Bézier曲面,即兩組Bernstein多項(xiàng)式函數(shù)在D= [0,1]× [0,1]上可構(gòu)成n1×n2次Bernstein-Bézier曲面為

    利用基于Bernstein多項(xiàng)式的方法對(duì)載體進(jìn)行分存,把軟件的密鑰按照定義1分解為不同加密算法的若干密鑰段,進(jìn)而推導(dǎo)出式 (1)、式 (2),再根據(jù)用戶與若干密鑰段間的映射關(guān)系函數(shù),運(yùn)用式 (3)構(gòu)造出多個(gè)不同的Bernstein-Bézier曲面參數(shù)方程,進(jìn)而把這些曲面參數(shù)方程看作驗(yàn)證函數(shù),最終將它們隱藏在程序代碼中實(shí)現(xiàn)分存技術(shù)。

    由于構(gòu)造出了多個(gè)互不相同且個(gè)數(shù)未知的驗(yàn)證函數(shù),所以通過(guò)任意一個(gè)驗(yàn)證函數(shù)的驗(yàn)證都只是判斷用戶是否合法的必要條件,不是充分條件,真正合法的密鑰需要通過(guò)所有驗(yàn)證函數(shù)的驗(yàn)證。即使破解者攻擊了驗(yàn)證函數(shù)中的任意幾個(gè),也無(wú)法確定其總共的個(gè)數(shù),也無(wú)法求得密鑰中任何一段的內(nèi)容。即使破解者攻擊了所有的驗(yàn)證函數(shù),也必須具有一定深度的數(shù)學(xué)功底才能求得密鑰。同時(shí)為了保護(hù)驗(yàn)證函數(shù),可對(duì)其使用不同的加密算法來(lái)增強(qiáng)加密強(qiáng)度,盡可能地防止破解者通過(guò)驗(yàn)證函數(shù)破解密鑰。

    2.2 改進(jìn)的代碼控制流混淆方法

    代碼控制流混淆是在軟件發(fā)布前對(duì)程序代碼的控制流程進(jìn)行變換的過(guò)程,該變換在不改變程序執(zhí)行結(jié)果的前提下,盡可能地使得控制流復(fù)雜化,降低程序的可讀性,模糊程序的邏輯關(guān)系,提高程序的抗攻擊能力?,F(xiàn)有常用的代碼控制流混淆方法有插入垃圾代碼、使用不透明謂詞、擴(kuò)展分支跳轉(zhuǎn)和循環(huán)條件等[8]。

    本文改進(jìn)的代碼控制流混淆方法的思想是:將分存技術(shù)應(yīng)用于代碼控制流混淆,使構(gòu)造出的多個(gè)互不相同的驗(yàn)證函數(shù)分別與不透明謂詞和分支函數(shù)相結(jié)合,共同插入到程序代碼中。由于程序的跳轉(zhuǎn)表恢復(fù)機(jī)制是根據(jù)分支函數(shù)的判斷條件來(lái)控制跳轉(zhuǎn)的目的地址的,所以本文將在順序執(zhí)行語(yǔ)句塊中構(gòu)造出多個(gè)分支控制流,利用跳轉(zhuǎn)地址的重定向來(lái)混淆跳轉(zhuǎn)表恢復(fù)機(jī)制,使得原有的順序流程變?yōu)檫x擇分支,更好地改變程序代碼的控制流結(jié)構(gòu)且不影響其執(zhí)行過(guò)程,能夠加大混淆的強(qiáng)度,阻礙軟件破解者獲得準(zhǔn)確程序代碼的信息,還可以動(dòng)態(tài)地驗(yàn)證非法性操作。

    (1)驗(yàn)證函數(shù)與不透明謂詞的結(jié)合

    由于驗(yàn)證函數(shù)和不透明謂詞都可以通過(guò)布爾值確定程序代碼的控制流方向,于是可以將其共同作為判斷條件插入順序執(zhí)行語(yǔ)句塊,構(gòu)造出偽分支控制流。根據(jù)定義2在程序中點(diǎn)p 上分別插入永真不透明謂詞 (Pi)T和永假不透明謂詞 (Pi)F,設(shè)j∈ {1,2,…,n},驗(yàn)證函數(shù)的表達(dá)式為Fj,具體的插入情況如圖1、圖2所示。

    圖1 順序執(zhí)行塊中插入驗(yàn)證函數(shù)與永真不透明謂詞

    圖2 順序執(zhí)行塊中插入驗(yàn)證函數(shù)與永假不透明謂詞

    圖1表示在順序語(yǔ)句A 和B中間插入的判斷條件是永真不透明謂詞和驗(yàn)證函數(shù)表達(dá)式相與的運(yùn)算,即插入之后的表達(dá)式為 (Pi)T&&Fj,并且構(gòu)造出了兩個(gè)分支控制流。假定A 通過(guò)了Fj的驗(yàn)證,則和 (Pi)T相與后的結(jié)果依舊為真,而反之若未能通過(guò)驗(yàn)證,則和 (Pi)T相與后的結(jié)果依舊為假。將B放在分支結(jié)構(gòu)為真的部分,為假的部分放入不會(huì)被真正執(zhí)行的任意代碼,使得插入判斷條件后不改變程序真正的執(zhí)行過(guò)程。

    圖2表示在A 和B中間插入的判斷條件是永假不透明謂詞和驗(yàn)證函數(shù)表達(dá)式相或的運(yùn)算,即插入之后的表達(dá)式為,同樣構(gòu)造出了兩個(gè)分支控制流。假定A 通過(guò)了Fj的驗(yàn)證,則和 (Pi)F相或后的結(jié)果依舊為真,而反之若未能通過(guò)驗(yàn)證,則和 (Pi)F相或后的結(jié)果依舊為假。將B放在分支結(jié)構(gòu)為假的部分,為真的部分放入不會(huì)被真正執(zhí)行的任意代碼,同樣使得插入判斷條件后不改變程序真正的執(zhí)行過(guò)程。

    (2)驗(yàn)證函數(shù)與分支函數(shù)的結(jié)合

    基于分支函數(shù)的代碼控制流混淆思想是將程序代碼中的直接跳轉(zhuǎn)語(yǔ)句構(gòu)造為對(duì)分支函數(shù)的調(diào)用,使用分支函數(shù)替代直接跳轉(zhuǎn),并且返回條件跳轉(zhuǎn)語(yǔ)句的目的地址[9]。將驗(yàn)證函數(shù)與分支函數(shù)相結(jié)合,進(jìn)一步擴(kuò)展成用驗(yàn)證分支函數(shù)替代直接跳轉(zhuǎn)語(yǔ)句,實(shí)現(xiàn)程序代碼的控制流混淆,具體的插入情況如圖3所示。

    圖3表示在順序結(jié)構(gòu)的分支跳轉(zhuǎn)中插入驗(yàn)證分支函數(shù),利用驗(yàn)證分支函數(shù)來(lái)驗(yàn)證并修改分支調(diào)用函數(shù)的目的地址,最終返回程序真正的目的地址,不改變程序的執(zhí)行過(guò)程。

    圖3 直接跳轉(zhuǎn)結(jié)構(gòu)中插入驗(yàn)證分支函數(shù)

    驗(yàn)證分支函數(shù)采用多重重定向結(jié)構(gòu),如圖4 所示,構(gòu)造出n個(gè)分支函數(shù),其中含有1個(gè)正確的調(diào)用分支和n-1個(gè)設(shè)置了虛假函數(shù)返回地址的偽調(diào)用分支,于是跳轉(zhuǎn)表恢復(fù)機(jī)制將產(chǎn)生一個(gè)包含大量虛假目的地址的跳轉(zhuǎn)表,使得軟件破解者無(wú)法正確定位程序代碼真正的目的地址。由于在調(diào)用驗(yàn)證分支函數(shù)后,系統(tǒng)會(huì)根據(jù)跳轉(zhuǎn)表恢復(fù)機(jī)制中的跳轉(zhuǎn)目的地址執(zhí)行被調(diào)函數(shù),并立即把被調(diào)函數(shù)的返回地址壓棧,再返回調(diào)用函數(shù)處繼續(xù)順序執(zhí)行下一條語(yǔ)句,所以在調(diào)用函數(shù)后加入若干垃圾代碼以及多個(gè)驗(yàn)證函數(shù),一方面能夠使得破解者進(jìn)入大量的混淆代碼中,返回到調(diào)用函數(shù)處的下一條語(yǔ)句中的虛假目的地址,造成對(duì)程序的理解錯(cuò)誤;另一方面能夠在返回真正正確的目的地址之前,檢測(cè)程序是否被攻擊,一旦被攻擊,驗(yàn)證分支函數(shù)將返回錯(cuò)誤的目的地址,響應(yīng)程序運(yùn)行異常。

    圖4 驗(yàn)證分支函數(shù)多重重定向結(jié)構(gòu)

    綜上所述,程序代碼的控制流依賴于分支函數(shù)內(nèi)部對(duì)判斷條件的控制變量的修改,擴(kuò)展分支函數(shù)是利用間接控制分支跳轉(zhuǎn)來(lái)加大條件結(jié)構(gòu)的復(fù)雜度,達(dá)到混淆代碼的效果。為了隱藏跳轉(zhuǎn)的實(shí)際目的地址,使分支函數(shù)的真出口為條件跳轉(zhuǎn)的目的地址,假出口為使其跳轉(zhuǎn)到原程序接下來(lái)的下一條語(yǔ)句,并保證原程序模塊間的相對(duì)執(zhí)行順序和功能不變。通過(guò)重構(gòu)控制結(jié)構(gòu),能夠有效地提高軟件抵抗攻擊的能力,達(dá)到更深一層次的代碼保護(hù)。

    3 實(shí)驗(yàn)分析與驗(yàn)證

    代碼混淆的目的是保證軟件代碼的安全性,使代碼更難于被靜態(tài)分析或逆向工程。在實(shí)際應(yīng)用中,許可注冊(cè)驗(yàn)證模塊屬于軟件代碼的敏感環(huán)節(jié),為了防止攻擊者破解注冊(cè)機(jī),進(jìn)而對(duì)關(guān)鍵代碼進(jìn)行篡改或非法復(fù)用,應(yīng)對(duì)注冊(cè)碼驗(yàn)證過(guò)程實(shí)施有效的防范措施,于是選用基于分存技術(shù)的代碼控制流混淆方法。設(shè)用戶碼為u,注冊(cè)碼為rj,注冊(cè)機(jī)為fj,驗(yàn)證函數(shù)為Fj,j∈ {1,2,…,n},具體操作的一般步驟如下:

    (1)將軟件密鑰r分存成若干段rj;

    (2)構(gòu)造不同的f映射關(guān)系,使得:rj=fj(u);

    (3)構(gòu)造曲面參數(shù)方程Fj(u,rj),使得:Fj=fj-1;

    (4)將Fj結(jié)合常規(guī)控制流混淆方法插入軟件代碼,使代碼達(dá)到足夠的混淆強(qiáng)度。

    本文提出的基于分存技術(shù)的代碼控制流混淆方法能夠混淆軟件代碼的控制流程,增加破解者攻擊代碼的難度,動(dòng)態(tài)地保證注冊(cè)碼驗(yàn)證的安全性,有效地保護(hù)代碼的安全。具體可從如下幾方面驗(yàn)證:

    首先,結(jié)合上文提到的兩種控制變換方法,對(duì)一段小程序進(jìn)行控制流混淆變換,用反匯編工具Ollydbg2.01b對(duì)其進(jìn)行反匯編分析,結(jié)果如圖5、圖6所示。

    圖5 原始程序的反匯編指令

    圖6 控制變換后程序的反匯編指令

    由圖5和圖6中可以看出:將舉例小程序中的直接跳轉(zhuǎn)和循環(huán)函數(shù)的結(jié)構(gòu)改造成了調(diào)用復(fù)雜的多分支函數(shù)的結(jié)構(gòu),利用不透明謂詞,在代碼中加入了不會(huì)被程序執(zhí)行的混淆跳轉(zhuǎn),導(dǎo)致變換后的代碼出現(xiàn)了與原始代碼結(jié)合的難以分析的垃圾代碼,造成了反匯編結(jié)果的錯(cuò)誤,擾亂了代碼的控制流結(jié)構(gòu)。由于最終提升了破解者恢復(fù)出原有程序控制流結(jié)構(gòu)的難度,所以能夠證明這個(gè)方法起到了混淆代碼的作用。

    其次,由于對(duì)于軟件代碼沒有絕對(duì)安全的保護(hù)措施,只要破解軟件的難度大于獲得合法軟件的代價(jià)時(shí),就可認(rèn)為該措施是合理安全的,于是從攻擊者破解軟件的復(fù)雜程度的角度出發(fā),采用將加入分存技術(shù)后的控制變換與原始的控制變換的攻擊復(fù)雜度作對(duì)比的方法,判斷本文改進(jìn)方法的混淆強(qiáng)度是否足夠抵抗攻擊,進(jìn)而驗(yàn)證改進(jìn)方法的正確性和有效性。

    以Matlab 8.0為實(shí)驗(yàn)平臺(tái),選取10個(gè)程序代碼段,比較攻擊者欲想成功破解經(jīng)過(guò)兩種方法處理的軟件所需的攻擊復(fù)雜度,實(shí)驗(yàn)結(jié)果如圖7所示,K 表示千行。

    圖7 兩種方法處理的抗攻擊性比較

    從圖7中的曲線趨勢(shì)可以看出:隨著程序代碼的行數(shù)增加,會(huì)隱藏更多個(gè)不確定的Fj,經(jīng)過(guò)它們?cè)诔绦騼?nèi)部不斷地驗(yàn)證安全性和混淆控制流,會(huì)導(dǎo)致破解者攻擊Fj的攻擊范圍逐漸擴(kuò)大,以至于攻擊程序代碼的難度相應(yīng)增大,即開發(fā)者使用基于分存技術(shù)的代碼控制流混淆方法導(dǎo)致的攻擊者所需攻擊復(fù)雜度的倍數(shù)大于使用原始的代碼控制流混淆方法。同時(shí),把改進(jìn)方法看作方法m1,原始方法看作方法m2,從實(shí)驗(yàn)結(jié)果可以得出:s(m1)>s(m2),根據(jù)定義3足以說(shuō)明m1與m2滿足關(guān)系:m1m2,即改進(jìn)方法是偏好于原始方法的。經(jīng)過(guò)計(jì)算得出,當(dāng)程序代碼為106行時(shí),使用改進(jìn)的方法進(jìn)行代碼保護(hù)效果更優(yōu),破解者的攻擊將高達(dá)10倍于軟件代碼的保護(hù)能力才能夠破解成功[10]。改進(jìn)方法在一定程度上抵抗攻擊性強(qiáng),更適用于大型軟件代碼的保護(hù)。

    最后,由于構(gòu)造的驗(yàn)證函數(shù)Fj的個(gè)數(shù)未知,并且可以存在于代碼中的任何位置,所以不易被攻擊者發(fā)現(xiàn),隱蔽性較強(qiáng),使得攻擊者根本無(wú)法完全了解注冊(cè)機(jī)f的映射關(guān)系。將密鑰r以密文的形式寫入一個(gè)自定義格式的數(shù)據(jù)文件,注冊(cè)登錄時(shí)使用F1進(jìn)行驗(yàn)證,如果驗(yàn)證通過(guò)就顯示注冊(cè)成功。將其它的Fj-1隱藏在程序中或與不透明謂詞和分支函數(shù)相結(jié)合,每當(dāng)程序順序執(zhí)行到該處或者用戶后續(xù)執(zhí)行特定的操作的時(shí)候才會(huì)被調(diào)用。但是一旦任意一個(gè)F 驗(yàn)證到r非法,程序就會(huì)清除r并將軟件初始化,恢復(fù)為未注冊(cè)狀態(tài),實(shí)現(xiàn)動(dòng)態(tài)地判斷非法操作,時(shí)刻驗(yàn)證安全性,以便保護(hù)代碼的安全。綜上所述,基于分存技術(shù)的代碼控制流混淆方法是一種可行有效的代碼保護(hù)方法。

    4 結(jié)束語(yǔ)

    因?yàn)榇a混淆技術(shù)只要能夠有效地延緩被靜態(tài)分析及逆向工程就達(dá)到了保護(hù)代碼的目的,所以隨著研究的深入,會(huì)被更加廣泛地應(yīng)用。本文用基于分存技術(shù)的代碼控制流混淆方法對(duì)軟件代碼的薄弱環(huán)節(jié)注冊(cè)碼驗(yàn)證進(jìn)行保護(hù),與采用原始方法相比,具有更好的混淆效果,增大了破解者的攻擊復(fù)雜度,增加了軟件的抗攻擊能力,在一定條件下保證了程序抵抗逆向工程的能力。不過(guò)本方法更適合于大型軟件代碼的保護(hù),需要在日后進(jìn)一步研究更全面性的保護(hù)并考慮開銷問題。

    [1]ZHAO Yujie,TANG Zhanyong,WANG Ni,et al.Evaluation of code obfuscating transformation [J].Journal of Software,2012,23 (3):700-711 (in Chinese). [趙玉潔,湯戰(zhàn)勇,王妮,等.代碼混淆算法有效性評(píng)估 [J].軟件學(xué)報(bào),2012,23 (3):700-711.]

    [2]XU Changzheng,DU Yujie,CHEN Yan,et al.Research of code obfuscation and its efficiency [J].Application Research of Computers,2009,26 (9):3502-3505 (in Chinese).[徐長(zhǎng)征,杜玉杰,陳巖,等.代碼迷惑及其有效性研究 [J].計(jì)算機(jī)應(yīng)用研究,2009,26 (9):3502-3505.]

    [3]Hang JC.Research and implementation of a code obfuscation algorithm based on control flow flattening [D].Xi’an:Northwest University,2010.

    [4]YANG Le,ZENG Fanxing,HE Huojiao,et al.Research of obfuscating algorithms based on the garbage code [J].Microelectronics & Computer,2011,28 (4):127-130 (in Chinese).[楊樂,曾凡興,何火嬌,等.一種基于垃圾代碼的混淆算 法 研 究 [J].微 電 子 學(xué) 與 計(jì) 算 機(jī),2011,28 (4):127-130.]

    [5]FU Jianjing.Application of transformation techniques for code obstructing to software protection [J].Computer Applications and Software,2008,25 (4):103-105 (in Chinese). [付 劍晶.代碼干擾變換在軟件保護(hù)中的使用 [J].計(jì)算機(jī)應(yīng)用與軟件,2008,25 (4):103-105.]

    [6]JIANG Hua,LIU Yong,WANG Xin.Code confusion technology research based on control flow [J].Application Research of Computers,2013,30 (3):897-899 (in Chinese).[蔣華,劉勇,王鑫.基于控制流的代碼混淆技術(shù)研究 [J].計(jì)算機(jī)應(yīng)用研究,2013,30 (3):897-899.]

    [7]SU Qing,WU Weimin,LI Zhongliang,et al.Research and application of chaos opaque predicate in code obfuscation [J].Computer Science,2013,40 (6):155-159 (in Chinese).[蘇慶,吳偉民,李忠良,等.混沌不透明謂詞在代碼混淆中的研究與應(yīng)用 [J].計(jì)算機(jī)科學(xué),2013,40 (6):155-159.]

    [8]WANG Chaokun,F(xiàn)U Junning,WANG Jianmin,et al.Survey of software tamper proofing technique [J].Journal of Computer Research and Development,2011,48 (6):923-933(in Chinese).[王朝坤,付軍寧,王建民,等.軟件防篡改技術(shù)綜述 [J].計(jì)算機(jī)研究與發(fā)展,2011,48 (6):923-933.]

    [9]SHANG Tao,GU Dawu.Research on resistance to disassembly of software [J].Application Research of Computers,2009,26 (12):4553-4557 (in Chinese).[尚濤,谷大武.軟件防反匯編技術(shù)研究 [J].計(jì)算機(jī)應(yīng)用研究,2009,26 (12):4553-4557.]

    [10]WANG Rui,YANG Qiuxiang,CHEN Gouxi,et al.Software protection game model based on divided-storage strategy[J].Journal of Computer Applications,2013,33 (9):2525-2528 (in Chinese). [王蕊,楊秋翔,陳夠喜,等.基于分存策略的軟件保護(hù)博弈模型 [J].計(jì)算機(jī)應(yīng)用,2013,33 (9):2525-2528.]

    猜你喜歡
    程序代碼控制流謂詞
    抵御控制流分析的Python 程序混淆算法
    工控系統(tǒng)中PLC安全漏洞及控制流完整性研究
    電子科技(2021年2期)2021-01-08 02:25:58
    被遮蔽的邏輯謂詞
    ——論胡好對(duì)邏輯謂詞的誤讀
    抵御控制流分析的程序混淆算法
    黨項(xiàng)語(yǔ)謂詞前綴的分裂式
    西夏研究(2020年2期)2020-06-01 05:19:12
    計(jì)算機(jī)網(wǎng)絡(luò)信息安全未來(lái)發(fā)展趨勢(shì)
    基于圖元裝接模式由程序流程圖自動(dòng)生成源代碼
    軟件工程(2016年11期)2017-01-17 16:56:57
    也談“語(yǔ)言是存在的家”——從語(yǔ)言的主詞與謂詞看存在的殊相與共相
    基于控制流隱藏的代碼迷惑
    嵌入式系統(tǒng)中程序的優(yōu)化策略
    新媒體研究(2009年4期)2009-03-14 06:59:48
    牟定县| 新化县| 涞水县| 勃利县| 闵行区| 额济纳旗| 弥渡县| 文安县| 衢州市| 武平县| 汝阳县| 永宁县| 宁都县| 汕头市| 远安县| 河北区| 鄂尔多斯市| 孟连| 成安县| 六安市| 甘泉县| 延川县| 固始县| 区。| 如东县| 高雄县| 元阳县| 利津县| 兴义市| 南阳市| 轮台县| 乌兰察布市| 宣化县| 朔州市| 县级市| 都安| 丁青县| 和林格尔县| 伊金霍洛旗| 齐齐哈尔市| 屏东市|