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

    基于Java的代碼混淆算法研究

    2010-05-09 07:51:28李新良羅戈夕
    關(guān)鍵詞:重命名標(biāo)識符字節(jié)

    李新良,羅戈夕

    ?

    基于Java的代碼混淆算法研究

    李新良1,羅戈夕2

    (1. 婁底職業(yè)技術(shù)學(xué)院 電子信息工程系, 湖南 婁底, 417000; 2. 漣源鋼鐵集團(tuán)有限公司 信息自動化中心, 湖南 婁底, 417000)

    首先介紹了混淆技術(shù)的現(xiàn)狀、原理及分類,然后對標(biāo)識符重命名的4種算法進(jìn)行了深入研究,通過對算法的偽代碼和性能分析,證明了4種混淆算法具有很好的混淆效果,能夠很好地保護(hù)Java軟件,為Java軟件的反編譯和逆向工程提高了程序復(fù)雜度、抗攻擊能力,且不增加程序額外的執(zhí)行開銷. 本文研究的算法對移動代碼和軟件知識產(chǎn)權(quán)的保護(hù)能起到積極作用.

    反編譯;代碼混淆;標(biāo)識符重命名混淆

    在分布式計(jì)算環(huán)境下,一個軟件系統(tǒng)可能被部署在多臺主機(jī)上,而這些主機(jī)并不能保證都是完全可信賴的. 在惡意主機(jī)環(huán)境下,軟件系統(tǒng)可以被逆向工程或被篡改,其機(jī)密性、完整性與可用性受到威脅. 為了防止惡意主機(jī)對移動代理[1]有目的的篡改,代碼混淆技術(shù)被提出,其基本做法是使用代碼混淆技術(shù)對軟件的代碼進(jìn)行混淆變換,使混淆變換后代碼的分析難度增加,從而在一定程度上阻止對軟件的篡改. 代碼混淆技術(shù)實(shí)際上是一種用于對移動代碼保護(hù)和軟件知識產(chǎn)權(quán)進(jìn)行保護(hù)的安全技術(shù). 在實(shí)際應(yīng)用中,對軟件提供絕對的安全保護(hù)是不可能,也是沒有必要的,只要能使攻擊者的攻擊付出較高的代價(jià),就可以認(rèn)為混淆技術(shù)達(dá)到了安全保護(hù)的作用. 因此,代碼混淆技術(shù)就成為保護(hù)Java軟件的有效且容易實(shí)現(xiàn)的保護(hù)技術(shù). 通過對Java字節(jié)碼混淆技術(shù)進(jìn)行研究,可以保護(hù)Java軟件開發(fā)者的知識產(chǎn)權(quán),并保障信息安全. 同時(shí)在研究過程中發(fā)現(xiàn)新問題,在解決新問題的過程中也可以推動計(jì)算機(jī)科學(xué)的發(fā)展.

    1 國內(nèi)外混淆技術(shù)研究現(xiàn)狀

    對代碼混淆技術(shù)的研究始于上世紀(jì)90年代,由Java語言的迅速發(fā)展而引起. 從1997年開始Collbe- rg等人[2]就對代碼混淆技術(shù)進(jìn)行了深入的基礎(chǔ)性研究,并陸續(xù)發(fā)表了多篇文章,后來又有更多的人加入到代碼混淆技術(shù)研究的隊(duì)伍中,他們提出了許多好的混淆算法和研究方向,對代碼混淆技術(shù)的發(fā)展起到了重要的作用. Collberg等人[2]給出了代碼混淆變換的各種類型,以及代碼混淆算法構(gòu)造的具體過程,同時(shí)實(shí)現(xiàn)了針對Java字節(jié)碼的混淆算法,后來Kelly等人[3]構(gòu)造了一種混淆執(zhí)行體機(jī)制,可以自動實(shí)現(xiàn)構(gòu)造代碼混淆算法,Tyma等人[3]根據(jù)Java語言的特點(diǎn),提出了一種新的外形混淆技術(shù).

    最近國內(nèi)的一些學(xué)者也認(rèn)識到代碼混淆技術(shù)在軟件保護(hù)方面的重要性,并做了一些研究,比如,李永祥等人[4]提出并實(shí)現(xiàn)了多分支語句的控制流迷惑技術(shù)和基于函數(shù)指針數(shù)組的迷惑技術(shù),李長青[5]等人提出了執(zhí)行流重整混淆算法,高鷹[6]等人提出了基于抽象解釋的代碼迷惑有效性比較框架.同時(shí)也有一些學(xué)?;蚪M織對代碼混淆技術(shù)進(jìn)行了研究和探索,如西北大學(xué)[7]、北京交通大學(xué)[8]、北京郵電大學(xué)[9]等. 目前對代碼混淆的研究工作主要是基于軟件保護(hù)的.

    從上面介紹的國內(nèi)外混淆技術(shù)的研究現(xiàn)狀可以看出,由于代碼混淆技術(shù)重要的應(yīng)用前景使得越來越多的計(jì)算機(jī)科學(xué)工作者認(rèn)識到了它的重要性,并且已經(jīng)做了大量的研究,我們相信在不久的將來會有越來越多的人和機(jī)構(gòu)參與到代碼混淆技術(shù)研究的隊(duì)伍中來.

    本文提出基于標(biāo)識符重命名混淆技術(shù),并提出4種標(biāo)識符重命名混淆算法,包括濫用標(biāo)識符、重載無關(guān)聯(lián)方法、非法標(biāo)識符替換以及重寫靜態(tài)方法. 對混淆算法功能有效性和產(chǎn)生的性能過載進(jìn)行簡單分析,使用該技術(shù)能使攻擊者的攻擊付出較高的代價(jià),從而達(dá)到了安全保護(hù)目的.

    2 軟件混淆技術(shù)介紹

    2.1 混淆變換原理

    代碼混淆技術(shù)是一種重要的軟件保護(hù)方法,其實(shí)質(zhì)是指對應(yīng)用程序P進(jìn)行保持語義的變換T,使得變換后的程序P′和原來的程序P具有相同的功能,即如果P錯誤地終止或不能終止,則P′也錯誤地終止或不能終止,否則,P′必須終止且產(chǎn)生與P相同的輸出結(jié)果,經(jīng)過混淆后的P′則更難被靜態(tài)分析和逆向工程所攻擊[10]. 具體的原理如圖1所示. 由圖1可以看出,混淆后程序P′由源程序P經(jīng)混淆變換T處理后得到,在對P′和P給予相同的輸出A后都得到了相同的輸出B,在這種情況下,源程序P的任何非功能性信息都被丟失,從而增加了對程序的分析難度,有效地保護(hù)了軟件.

    圖1 混淆變換原理圖

    2.2 代碼混淆的性能指標(biāo)

    對程序作混淆變換后的效果如何,通常從強(qiáng)度(potency)、耐受性(resilience)、開銷(cost)、隱蔽性(stealth)等4個方面來評估. 強(qiáng)度是指混淆變換究竟給原始的程序加上了多大的復(fù)雜度; 耐受性是指變換后的程序?qū)κ褂米詣尤セ煜ぞ哌M(jìn)行攻擊的抵抗度; 開銷是指經(jīng)過混淆變換后的程序在執(zhí)行時(shí)由變換所帶來的額外執(zhí)行時(shí)間和所需存儲空間開銷; 隱蔽性是與程序的上下文高度相關(guān)的.

    2.3 混淆的分類

    根據(jù)混淆對象和原理的不同,可將代碼混淆技術(shù)分為外形混淆、數(shù)據(jù)混淆、控制混淆和預(yù)防混淆4種.

    外形混淆. 外形混淆的基本原理是對函數(shù)和變量的名稱進(jìn)行替換,使其違背見名知義的軟件工程原則,從而達(dá)到增大攻擊難度的目的. 外形混淆是當(dāng)前Java混淆器所使用的典型方法. 這種混淆變換去除了Java類文件中所包含的源代碼格式信息,它是一種“單向”變換,因?yàn)樽畛醯母袷叫畔⒁坏┍灰瞥?,就無法再次恢復(fù). 由于這種變換沒有任何額外執(zhí)行代價(jià),因此程序的時(shí)間和空間復(fù)雜度將不會受到任何影響. 目前的Java字節(jié)碼混淆工具大多支持這一功能,可見外形混淆具有良好的可行性. 外形混淆有很多分類,其中標(biāo)識符重命名混淆是它的一個很重要的分支. 標(biāo)識符重命名技術(shù)的基本原理是使用簡單無意義的名字或特殊的名字替換源程序字節(jié)碼中的標(biāo)識符. 在本文下面的章節(jié)中將主要研究這種標(biāo)識符重命名混淆技術(shù).

    數(shù)據(jù)混淆. 數(shù)據(jù)混淆是利用數(shù)據(jù)流分析中難點(diǎn)問題,向程序中引入引起程序分析精度降低或難度增加的一些因素,從而影響對程序的分析結(jié)果. 由于正常的程序以符合邏輯的方式來組織數(shù)據(jù),因此為了增加攻擊者獲取信息的難度,實(shí)現(xiàn)對程序的有效混淆,數(shù)據(jù)混淆將不對程序的代碼進(jìn)行特意修改, 只針對程序中出現(xiàn)的各種數(shù)據(jù)結(jié)構(gòu)進(jìn)行變換.

    控制混淆. 控制混淆是一種被廣泛使用的代碼混淆方法,其基本原理是通過改變程序的判斷條件, 或向程序中添加可控的判斷條件來增加程序的復(fù)雜度, 并且可以通過對程序的結(jié)構(gòu)和執(zhí)行流程的調(diào)

    整來增加反編譯工具對程序的反編譯時(shí)間.

    預(yù)防混淆. 預(yù)防混淆通常針對一些專用的反編譯工具而設(shè)計(jì). 一般情況下,預(yù)防混淆技術(shù)利用反編譯工具的弱點(diǎn)來設(shè)計(jì)混淆方案.

    下面對4種混淆技術(shù)進(jìn)行簡單的分析,外形混淆主要應(yīng)用于迷惑解讀程序的攻擊者,同時(shí)在抵抗反編譯工具領(lǐng)域也起到一定作用;數(shù)據(jù)混淆目前主要針對的是對布爾變量的替換;控制混淆是應(yīng)用比較廣泛的一種混淆技術(shù),主要是通過增加程序的復(fù)雜度來增強(qiáng)程序的抗攻擊能力;預(yù)防混淆是針對不同的反編譯軟件而設(shè)計(jì)的.

    數(shù)據(jù)混淆和控制混淆為了提高混淆后程序的復(fù)雜度,通常都會在程序中引入大量的布爾變量或源程序以外的結(jié)構(gòu),大大增加了程序的代碼量和程序的時(shí)空執(zhí)行開銷,雖然也增加了程序抗攻擊性, 但程序的執(zhí)行效率也大大降低. 而一般的外形混淆技術(shù)雖然沒有增加程序的執(zhí)行開銷,但程序的復(fù)雜度卻不高.

    因此,根據(jù)上面的分析,本文將研究一種既能提高程序抗攻擊能力,同時(shí)也不會降低程序執(zhí)行效率的混淆技術(shù),即標(biāo)識符重命名混淆技術(shù),該混淆技術(shù)是外形混淆的一個重要研究方向.

    3 標(biāo)識符重命名混淆算法研究

    標(biāo)識符重命名混淆的基本原理是使用簡單無意義的名字替換字節(jié)碼文件中的類名、接口名、方法名以及字段名等. 當(dāng)前的標(biāo)識符重命名混淆技術(shù)只對字節(jié)碼中的標(biāo)識符進(jìn)行簡單的名字替換,雖然沒有引入額外的執(zhí)行開銷,但抗攻擊能力不高. 為了彌補(bǔ)以上情況的不足,本節(jié)將提出4種標(biāo)識符重命名混淆算法,這4種混淆算法具有較高的抗攻擊能力,同時(shí)也不會帶來額外的執(zhí)行開銷.

    3.1 重命名的目的

    重命名方法的目的是使大型的Java程序更難理解或者更難被反編譯,但不會引入程序的額外執(zhí)行開銷. 首先,這些原始的標(biāo)識符被一些無意義或者混亂的標(biāo)識符代替,使得攻擊者要想恢復(fù)這些原始的標(biāo)識符變得不可能,因?yàn)楦鷺?biāo)識符相關(guān)的信息在重命名后完全消失. 另外,這種方法也使得一個反編譯器將字節(jié)碼文件轉(zhuǎn)換成Java源代碼變得很困難甚至不可能,或者使被反編譯的源代碼不能被重新編譯. 在這2種情況下,對標(biāo)識符進(jìn)行重命名并不會影響被混淆程序的行為.

    3.2 代碼混淆的范圍

    代碼混淆的范圍即在一個應(yīng)用程序中能被混淆工具混淆的那部分代碼就是程序的混淆范圍,一般情況下只有程序員自己開發(fā)的代碼部分才會被保護(hù),而標(biāo)準(zhǔn)庫和第三方庫中的代碼不會被保護(hù). 但是混淆的范圍并不會只局限于程序員自己寫的代碼部分,而用到的標(biāo)準(zhǔn)庫和第三方庫中的代碼也可以被包含到混淆的范圍中,但需要取得標(biāo)準(zhǔn)庫和第三方庫的所屬組織或個人的同意. 默認(rèn)情況下,參數(shù)標(biāo)識符和本地變量不在這一混淆系列中,因?yàn)楫?dāng)字節(jié)碼被編譯的時(shí)候這些信息將會被剝離掉. 一個程序的混淆范圍可以通過對程序中所有的標(biāo)識符分組來建立,然后剔除掉那些在重命名后會帶來錯誤或者誤差行為的標(biāo)識符.

    3.3 標(biāo)識符重命名混淆算法

    以前提到的基于標(biāo)識符重命名的混淆技術(shù)所使用的普遍方法是,盡可能重復(fù)地使用相同的標(biāo)識符來重命名在Java字節(jié)碼混淆范圍內(nèi)的標(biāo)識符. 由于這些標(biāo)識符的冗余度,攻擊者很難理解被反編譯的程序. 此外,通過檢查使用同一標(biāo)識符的無關(guān)實(shí)體, 反編譯器也會被欺騙. 我們所期望的效果是, 現(xiàn)存的反編譯技術(shù)很難或者完全不能對混淆過的程序反編譯,因此攻擊者不得不花費(fèi)更多時(shí)間去理解和手工調(diào)試被反編譯的程序. 事實(shí)上,可以通過靈巧地對Java字節(jié)碼中標(biāo)識很難或者完全不能對混淆過的程序反編譯,因此攻擊者不得不花費(fèi)更多時(shí)問去理解和手工調(diào)試被反編譯的程序. 事實(shí)上, 可以通過靈巧地對Java字節(jié)碼中標(biāo)識符重命名來達(dá)到這樣的效果. 因此本節(jié)提出了4種標(biāo)識符重命名算法. 表1給出了4種算法偽代碼實(shí)現(xiàn)中用到的主要符號.

    表1 算法中使用的主要符號

    (續(xù)表1)

    3.3.1 濫用標(biāo)識符算法

    Java源程序被編譯成Java字節(jié)碼后仍然保留著類、接口、方法等的名字信息,而字節(jié)碼被反編譯后這些名字信息依然清晰可見(例如方法名:getNa- me),因此攻擊者很容易讀懂反編譯后的程序. 為了阻止解讀程序的靜態(tài)攻擊者,就需要對字節(jié)碼中的標(biāo)識符進(jìn)行重命名,因此就出現(xiàn)了濫用標(biāo)識符混淆技術(shù)[5]. 濫用標(biāo)識符混淆技術(shù)是通過對Java字節(jié)碼中的標(biāo)識符重命名來實(shí)現(xiàn)的,其目的是最大限度地重復(fù)使用同一個標(biāo)識符代替一個類中出現(xiàn)的所有標(biāo)識符. 該策略之所以能夠迷惑攻擊者,是因?yàn)楣粽卟坏貌蝗ダ斫獗环淳幾g程序中出現(xiàn)的每個標(biāo)識符的行為,同時(shí),標(biāo)識符所表示的意思跟它出現(xiàn)的上下文有關(guān). 濫用標(biāo)識符算法使用隨機(jī)生成的名字替換混淆范圍內(nèi)的標(biāo)識符,隨機(jī)生成名字的機(jī)制是:首先使用隨機(jī)生成的單個字母進(jìn)行替換,如果同一個包中類的個數(shù)大于能夠使用的字母個數(shù),則剩余類中的標(biāo)識符將會使用2個字母的隨機(jī)組合進(jìn)行替換,以此類推,使用3個字母、4個字母以及更多個字母的隨機(jī)組合進(jìn)行替換. 隨機(jī)生成的名字根本沒有規(guī)律可循,因此提高了靜態(tài)攻擊的難度,延長程序破解的時(shí)間. 下面是算法的偽代碼實(shí)現(xiàn):

    算法1:

    輸入:混淆前程序

    輸出:混淆后程序

    l Foreach C in P //遍歷每個包中的類或接口

    2 s=random() //隨機(jī)生成名字

    3 Replace C with S //使用S替換遍歷過的每個類或接口名

    4 Put C<->s into mapping文件//保存映射關(guān)系

    5 Foreach m in C//遍歷類或接口C中的所有成員

    6 Replace m with s //用s替換遍歷到的m

    7 Put m<->s into mapping文件

    8 Foreach t in S //遍歷繼承關(guān)系集合S

    9 If t equals m //如果m和t具有繼承關(guān)系

    10 Replace t 對應(yīng)的子類或超類with S //用上面生成S替換t

    11 Put t<->s into mapping文件

    12 根據(jù)mapping文件更新跟混淆內(nèi)容有關(guān)的字節(jié)碼文件和重寫P

    13 end

    3.3.2 重載無關(guān)聯(lián)方法算法

    重載無關(guān)聯(lián)方法的混淆方法,通過使用相同的標(biāo)識符重命名被混淆類中的所有實(shí)體方法實(shí)現(xiàn),這種方法在任何情況下都適用. 而這種改變并不影響字節(jié)碼的行為,因?yàn)镴ava程序中的方法實(shí)體,在執(zhí)行混淆操作之前的某個編譯時(shí)刻通過一個象征性的參考, 必然會被執(zhí)行. 相反,如果用這種混淆方法操作過的程序被反編譯并被重新編譯執(zhí)行時(shí),這種改變將會徹底改變程序的行為.

    為了解釋上面這種情況,假設(shè)在源代碼中有這樣的方法,這些方法的名字截然不同,但參數(shù)類型和個數(shù)完全相同. 通過對這些方法用相同的名字重命名后,這些方法將變成重載方法. 現(xiàn)在,重新編譯的時(shí)侯,源代碼中這些重載方法被處理時(shí)將會變得很棘手,此時(shí),Java編譯器不得不選擇那些能夠和參數(shù)類型完全匹配的重載方法. 事實(shí)上,并不能保證原始(即正確)的方法會被編譯器選擇,因?yàn)榭赡軙泻洼斎腩愋湍軌蚋闷ヅ涞钠渌椒ù嬖? 重載無關(guān)聯(lián)方法的混淆算法不僅使類中的方法具有了重載關(guān)系,同時(shí)避免了破壞超類和子類之間的繼承關(guān)系. 下面是該算法的偽代碼實(shí)現(xiàn).

    算法2:

    輸入:混淆前程序

    輸出:混淆后程序

    1 Foreach C in P //遍歷每個包中的類或接口

    2 s=random() //隨機(jī)生成名字

    3 Replace C with s //用s替換類或接口名

    4 Put C<->s into mapping文件//保存映射關(guān)系

    5 Foreach m in C

    6 Replace m with s //用S替換類成員

    7 Put m<->s into mapping文件

    8 根據(jù)集合O,將具有重寫關(guān)系的方法用上面生成的S代替

    9 根據(jù)mapping文件更新跟混淆內(nèi)容有關(guān)的字節(jié)碼文件和重寫P

    10 End

    3.3.3 非法標(biāo)識符替換算法

    前面提出的2種標(biāo)識符混淆算法增加了攻擊者對程序的解讀難度, 下面提出的標(biāo)識符混淆算法將會增加反編譯工具的反編譯難度. 非法標(biāo)識符替換合法標(biāo)識符的混淆算偽代碼實(shí)現(xiàn)如下.

    算法3:

    輸入:混淆前程序

    輸出:混淆后程序

    l Foreach C in P //遍歷每個包中的類或接口

    2 p=produce(key[],Illeagal[]) //生成關(guān)鍵字跟非法字符串結(jié)合的名字

    3 Replace C with P //名字替換

    4 Put C<->p into mapping文件∥保存映射關(guān)系

    5 Foreach m in C

    6 Replace m with P //使用P替換類成員

    7 Put m<->p to mapping文件

    8 根據(jù)mapping文件更新跟混淆內(nèi)容有關(guān)的字節(jié)碼文件和重寫P

    9 End

    3.3.4 重寫靜態(tài)方法算法

    Java語言規(guī)范規(guī)定,超類中的靜態(tài)方法不能被子類中的實(shí)體方法重寫,相反,超類中的實(shí)體方法也不能被子類中的靜態(tài)方法重寫. 而Java字節(jié)碼中并沒有這種限制,在這種情況下,靜態(tài)方法和實(shí)例方法之間不存在任何模棱兩可,因?yàn)镴ava虛擬機(jī)使用不同的指令來調(diào)用它們中的任意一個. 因此,在這種情況下出現(xiàn)了重寫靜態(tài)方法的混淆算法,對靜態(tài)方法重命名的混淆方法,會處理一系列被編譯過的Java類,并且在任何可能的情況下,都可以使用定義在一個超類以及具有相同數(shù)量和形參的實(shí)例方法的名字來重命名靜態(tài)方法. 反編譯存在實(shí)例方法被靜態(tài)方法重寫的混淆代碼,將會產(chǎn)生一種不正確的Java源代碼.

    以前提出的重寫靜態(tài)方法的策略,僅僅單純地使用實(shí)例方法或靜態(tài)方法重寫超類或子類中的靜態(tài)方法或?qū)嶓w方法,雖然也增加了反編譯工具的破解難度,但仍然容易被有經(jīng)驗(yàn)的攻擊者覺察. 而本文提出的重寫靜態(tài)方法混淆算法在此基礎(chǔ)之上對重寫的方法進(jìn)行了修改,使得修改后的重寫方法稍微不同于被重寫的方法,這種細(xì)微的修改使得混淆變化不易被察覺,這樣也就額外地增加了靜態(tài)攻擊者的難度. 下面是重寫靜態(tài)方法混淆算法的偽代碼實(shí)現(xiàn):

    算法4:

    輸入:混淆前程序

    輸出:混淆后程序

    1 Foreach t in S //遍歷繼承關(guān)系集合中的類t

    2 Foreach s_m in t //遍歷類t中的靜態(tài)或?qū)嶓w方法

    3 If s_m is 靜態(tài)方法and u_m 存在//如果s_m是靜態(tài)方法并且跟t對應(yīng)的子類中存在相同簽名的實(shí)體方法

    4 s=random() //生成隨機(jī)名字

    5 Replace u_m and s_m with S //使用相同的名字替換u_m和s_m

    6 Put s<->u_m and s<->s_m to mapping文件

    7 else

    8 If s_m is靜態(tài)(或?qū)嶓w)方法//如果u_m不存在

    9 s_m’=produceFakeMethod(s_m) //偽造同s_m相似的方法

    10 Add s_m’to t’ //將偽造的方法插入到類t的超類或子類t’中

    11 根據(jù)mapping文件更新跟混淆內(nèi)容有關(guān)的字節(jié)碼文件和重寫P

    12 End

    3.4 算法分析

    程序執(zhí)行開銷是衡量一個混淆方法性能好壞的重要指標(biāo). 本文提出的濫用標(biāo)識符混淆算法和重載無關(guān)聯(lián)方法混淆算法,主要致力于消除字節(jié)碼常量池中的象征性信息,而非法標(biāo)識符替換和重寫靜態(tài)方法這2種混淆算法將會使被反編譯的程序產(chǎn)生語法和語義錯誤. 前兩種混淆算法主要是針對靜態(tài)攻擊而設(shè)計(jì)的,由它們混淆過的字節(jié)碼被反編譯后生成的代碼對于解讀程序的攻擊者來說更難理解, 同時(shí)由于使用簡短的名字代替原來的名字,字節(jié)碼文件變得更小. 后2種混淆算法主要是針對反編譯工具而設(shè)計(jì)的,被這2種算法混淆過的字節(jié)碼被反編譯且重新編譯的時(shí)候會產(chǎn)生編譯錯誤,以至攻擊者不得不花費(fèi)大量的時(shí)間和精力調(diào)試被反編譯的程序.

    因此,本文提出的混淆算法在保證混淆后程序復(fù)雜度的前提下,減小了字節(jié)碼大小和程序的加載時(shí)間,最終降低程序的執(zhí)行開銷.

    4 結(jié)論

    本文首先分析了代碼混淆技術(shù)的現(xiàn)狀、原理及分類,指出了標(biāo)識符重命名混淆技術(shù)的目的, 然后介紹了重命名混淆的范圍. 最后提出了濫用標(biāo)識符、重載無關(guān)聯(lián)方法、非法標(biāo)識符替換和重寫靜態(tài)方法4種標(biāo)識符重命名混淆算法. 通過對提出算法的性能分析,證明了4種混淆算法具有很好的混淆效果,因此能夠很好地保護(hù)Java軟件.

    [1] 朱正平. 移動代理安全之代碼迷惑技術(shù)研究[D]. 南寧:廣西大學(xué),2006.

    [2] Collberg C, Thomborson C, Low D. A Taxonomy of Obfuscating Transformations[R]. New Zealand: DePt. of Computer Science,University of Auckland, 1997.

    [3] Barak B, Goldreich O, Impagliazzo R, et al. On the (Im) possibility of obfuscating Programs[A]. Advances in Cryptology-Crypto 2001[C]. USA: Springer-Verlag, 2001: 57-59.

    [4] 李永祥. 代碼迷惑技術(shù)研究[D]. 合肥: 中國科學(xué)技術(shù)大學(xué), 2005.

    [5] 李長青,李曉永,韓臻. 基于控制轉(zhuǎn)換的軟件保護(hù)研究[J]. 信息安全與通信保密, 2006(10): 146-149.

    [6] 高鷹, 陳意云. 基于抽象解釋的代碼迷惑有效性比較框架[J]. 計(jì)算機(jī)學(xué)報(bào), 2007, 30(5): 806-808.

    [7] 宋亞奇. 基于代碼混淆的軟件保護(hù)技術(shù)研究[D]. 西安:西北大學(xué), 2005.

    [8] 李長青. 基于控制轉(zhuǎn)換的混淆器構(gòu)造[D]. 北京: 北京交通大學(xué), 2006.

    [9] 王飛. Java軟件保護(hù)技術(shù)研究及實(shí)現(xiàn)[D]. 北京: 北京郵電大學(xué), 2007.

    [10] 刁俊峰. 軟件安全中的若干關(guān)鍵技術(shù)研究[D]. 北京: 北京郵電大學(xué), 2007.

    The study of Java code obfuscation algorithm

    LI Xin- liang1, LUO Ge-xi2

    (1. Departmen of Electronic and Information Engineering, Loudi Vocational and Technical College, Loudi 417000,China; 2. Information Center, Lianyuan Steel Co.Ltd, Loudi 417000,China)

    The status of confusing technology, principles and classification was introduced, and then the identifier rename the four algorithm was studied deeply. Based on the algorithm of pseudo-code and performance analysis, it proven that four kinds of confusion algorithm had very good effect of confusion, and perfectly protected Java software, the software for Java decompilation and reverse engineering to improve the process capability, complexity, and attack the additional costs increased program execution. The algorithm is studied in this paper for mobile code and software protection of intellectual property rights can play a positive role.

    de-compilation;code obfuscation; identifier renaming obfuscation

    TP 309

    A

    1672-6146(2010)03-0064-06

    10.3969/j.issn.1672-6146.2010.03.017

    2010-07-13

    李新良(1974-), 女,副教授,碩士研究生,研究方向?yàn)檐浖_發(fā)與軟件測試.

    猜你喜歡
    重命名標(biāo)識符字節(jié)
    淺析5G V2X 通信應(yīng)用現(xiàn)狀及其側(cè)鏈路標(biāo)識符更新技術(shù)
    基于底層虛擬機(jī)的標(biāo)識符混淆方法
    No.8 字節(jié)跳動將推出獨(dú)立出口電商APP
    用好Excel,文件批量重命名其實(shí)很簡單
    批量更改網(wǎng)頁文件名稱
    Windows 10下快速修改文件名
    電腦愛好者(2020年1期)2020-04-28 12:25:29
    基于區(qū)塊鏈的持久標(biāo)識符系統(tǒng)①
    No.10 “字節(jié)跳動手機(jī)”要來了?
    簡談MC7字節(jié)碼
    數(shù)字美術(shù)館“數(shù)字對象唯一標(biāo)識符系統(tǒng)”建設(shè)需求淺議
    丝袜喷水一区| 啦啦啦啦在线视频资源| 男人的好看免费观看在线视频| 综合色丁香网| 天堂√8在线中文| 久久久久久伊人网av| 国内揄拍国产精品人妻在线| 国产一区二区三区av在线| 免费看a级黄色片| 婷婷色麻豆天堂久久 | 精品国产三级普通话版| 亚洲真实伦在线观看| 亚洲av不卡在线观看| 日本黄色片子视频| 最近2019中文字幕mv第一页| 国产亚洲av嫩草精品影院| 午夜老司机福利剧场| 婷婷六月久久综合丁香| 男女下面进入的视频免费午夜| 日韩人妻高清精品专区| 久久热精品热| 欧美不卡视频在线免费观看| 日韩在线高清观看一区二区三区| 亚洲国产精品久久男人天堂| 欧美高清性xxxxhd video| 亚洲av不卡在线观看| 一卡2卡三卡四卡精品乱码亚洲| 韩国高清视频一区二区三区| 青春草国产在线视频| 久久精品国产亚洲网站| 中文乱码字字幕精品一区二区三区 | 小蜜桃在线观看免费完整版高清| 欧美变态另类bdsm刘玥| 国产精品野战在线观看| 老女人水多毛片| 精品久久久久久久久久久久久| 中文在线观看免费www的网站| 波多野结衣巨乳人妻| 两性午夜刺激爽爽歪歪视频在线观看| 国产老妇女一区| 国产精品国产三级专区第一集| 久久亚洲精品不卡| 一边亲一边摸免费视频| 两个人视频免费观看高清| 午夜精品在线福利| 国产精品伦人一区二区| 国产高清三级在线| 日韩国内少妇激情av| 全区人妻精品视频| 人人妻人人澡欧美一区二区| 日本wwww免费看| a级毛片免费高清观看在线播放| 高清av免费在线| 91久久精品国产一区二区三区| 亚洲最大成人av| 久久精品综合一区二区三区| 嫩草影院精品99| 18禁在线播放成人免费| 一级二级三级毛片免费看| 天美传媒精品一区二区| av在线播放精品| 国产免费视频播放在线视频 | 男人舔女人下体高潮全视频| 久久精品久久久久久噜噜老黄 | 亚洲精品国产av成人精品| 久久久色成人| 亚洲国产精品成人综合色| 亚洲精品影视一区二区三区av| 日韩高清综合在线| 国产精品久久久久久精品电影小说 | 网址你懂的国产日韩在线| av天堂中文字幕网| 高清午夜精品一区二区三区| 国内少妇人妻偷人精品xxx网站| 日日啪夜夜撸| 国产亚洲5aaaaa淫片| 日本黄大片高清| 在线观看av片永久免费下载| 日本五十路高清| 欧美一区二区精品小视频在线| 午夜福利在线在线| 久久久久精品久久久久真实原创| 亚洲精品日韩av片在线观看| 最新中文字幕久久久久| 久久久成人免费电影| 精品一区二区免费观看| 国产成人精品婷婷| 欧美性猛交╳xxx乱大交人| 日日摸夜夜添夜夜爱| 亚洲va在线va天堂va国产| 一本一本综合久久| 能在线免费观看的黄片| 欧美丝袜亚洲另类| 男人狂女人下面高潮的视频| 亚洲不卡免费看| 国产一区有黄有色的免费视频 | 色综合站精品国产| 国产精品女同一区二区软件| 91精品伊人久久大香线蕉| 国产精华一区二区三区| 午夜精品在线福利| 午夜激情福利司机影院| 亚洲精品456在线播放app| 亚洲不卡免费看| 十八禁国产超污无遮挡网站| 天堂网av新在线| 波多野结衣巨乳人妻| 看免费成人av毛片| 久久久色成人| 能在线免费观看的黄片| 在线播放国产精品三级| 成人一区二区视频在线观看| 国产精品99久久久久久久久| 色网站视频免费| 夜夜看夜夜爽夜夜摸| 纵有疾风起免费观看全集完整版 | 国产综合懂色| 一级爰片在线观看| 久久久久免费精品人妻一区二区| 三级经典国产精品| 亚洲国产日韩欧美精品在线观看| 色综合色国产| 亚洲国产高清在线一区二区三| 日韩一本色道免费dvd| 亚洲乱码一区二区免费版| www.色视频.com| 高清av免费在线| 亚洲av一区综合| 97热精品久久久久久| 国产片特级美女逼逼视频| 桃色一区二区三区在线观看| 国产乱人偷精品视频| 秋霞伦理黄片| 欧美激情久久久久久爽电影| 亚洲电影在线观看av| 久久欧美精品欧美久久欧美| 99久久精品热视频| 九色成人免费人妻av| 亚洲av熟女| 插阴视频在线观看视频| 热99re8久久精品国产| 蜜桃久久精品国产亚洲av| 一级爰片在线观看| 亚洲,欧美,日韩| 美女脱内裤让男人舔精品视频| 国产免费福利视频在线观看| 村上凉子中文字幕在线| 亚洲国产精品专区欧美| 欧美性猛交黑人性爽| 岛国在线免费视频观看| 亚洲av免费高清在线观看| 免费看av在线观看网站| 亚洲国产精品国产精品| 啦啦啦观看免费观看视频高清| 中国美白少妇内射xxxbb| 国产黄片美女视频| 日韩一本色道免费dvd| 男人舔女人下体高潮全视频| 日本猛色少妇xxxxx猛交久久| 视频中文字幕在线观看| 午夜免费激情av| 日韩一区二区三区影片| 国产在线一区二区三区精 | 少妇被粗大猛烈的视频| 国产黄色小视频在线观看| 久久精品久久久久久久性| 亚洲国产精品国产精品| 日韩成人伦理影院| 久久欧美精品欧美久久欧美| 成年女人永久免费观看视频| 午夜爱爱视频在线播放| 免费人成在线观看视频色| 亚洲精品aⅴ在线观看| 亚洲精品乱久久久久久| 日本一二三区视频观看| 十八禁国产超污无遮挡网站| 日本免费在线观看一区| 高清日韩中文字幕在线| 美女内射精品一级片tv| 国产精品永久免费网站| 亚洲成色77777| 久久精品夜夜夜夜夜久久蜜豆| 69人妻影院| 老司机福利观看| 久久精品国产亚洲av涩爱| 日本色播在线视频| 日本免费a在线| 成人二区视频| 久久久久国产网址| 少妇被粗大猛烈的视频| 少妇猛男粗大的猛烈进出视频 | 国产亚洲最大av| 精品无人区乱码1区二区| 少妇的逼水好多| 2022亚洲国产成人精品| 我要看日韩黄色一级片| 韩国av在线不卡| 中国美白少妇内射xxxbb| 中文欧美无线码| 日日干狠狠操夜夜爽| 如何舔出高潮| 亚洲国产精品合色在线| 少妇丰满av| 久久午夜福利片| 最近最新中文字幕大全电影3| 九九在线视频观看精品| 亚洲av免费在线观看| 老司机影院成人| 成人一区二区视频在线观看| 精品人妻偷拍中文字幕| 国产精品爽爽va在线观看网站| 99热6这里只有精品| 亚洲成av人片在线播放无| av在线观看视频网站免费| 国产黄色小视频在线观看| 亚洲av不卡在线观看| 国产黄片美女视频| 亚洲av.av天堂| 国产精品久久视频播放| 久久久a久久爽久久v久久| 亚洲欧美精品自产自拍| 99在线人妻在线中文字幕| 久久久久网色| 国产伦精品一区二区三区四那| 在线观看av片永久免费下载| 乱人视频在线观看| 女人十人毛片免费观看3o分钟| 国产精品久久电影中文字幕| av天堂中文字幕网| 黑人高潮一二区| 国产片特级美女逼逼视频| a级一级毛片免费在线观看| 日韩人妻高清精品专区| 亚洲av电影在线观看一区二区三区 | 我的老师免费观看完整版| 国产亚洲91精品色在线| 狂野欧美白嫩少妇大欣赏| 色5月婷婷丁香| 国产三级在线视频| 嫩草影院新地址| 久久久久久久国产电影| 小说图片视频综合网站| 亚洲国产欧美在线一区| 成人av在线播放网站| 亚洲成av人片在线播放无| 少妇人妻一区二区三区视频| 天天躁日日操中文字幕| 在线播放国产精品三级| 国内精品美女久久久久久| 亚洲欧洲日产国产| 久久精品久久久久久久性| 欧美不卡视频在线免费观看| 99久久中文字幕三级久久日本| 国产片特级美女逼逼视频| 在线播放无遮挡| 日本午夜av视频| av卡一久久| 国产综合懂色| 日韩一本色道免费dvd| 在线观看美女被高潮喷水网站| 超碰97精品在线观看| 成年版毛片免费区| 亚洲精品乱久久久久久| 欧美xxxx性猛交bbbb| 尾随美女入室| 午夜a级毛片| 国产亚洲精品久久久com| 小蜜桃在线观看免费完整版高清| 美女大奶头视频| 丰满少妇做爰视频| 成人欧美大片| 哪个播放器可以免费观看大片| 97热精品久久久久久| 久久精品熟女亚洲av麻豆精品 | 国产午夜福利久久久久久| 亚洲欧洲日产国产| 欧美3d第一页| 免费av不卡在线播放| 亚洲国产欧洲综合997久久,| 久久久久性生活片| 内射极品少妇av片p| 热99在线观看视频| 国产精华一区二区三区| 人人妻人人看人人澡| 日韩中字成人| 国产精华一区二区三区| 国产在线男女| 亚洲国产精品sss在线观看| 欧美成人a在线观看| 亚洲三级黄色毛片| 日韩欧美精品v在线| 一边摸一边抽搐一进一小说| 国产欧美日韩精品一区二区| 久久国产乱子免费精品| 国语对白做爰xxxⅹ性视频网站| 国产精品野战在线观看| av国产免费在线观看| 美女cb高潮喷水在线观看| 欧美变态另类bdsm刘玥| 最新中文字幕久久久久| 欧美色视频一区免费| 伦精品一区二区三区| 亚洲伊人久久精品综合 | 91狼人影院| 亚洲美女视频黄频| 好男人在线观看高清免费视频| av在线亚洲专区| 七月丁香在线播放| 精品无人区乱码1区二区| h日本视频在线播放| 麻豆国产97在线/欧美| 如何舔出高潮| av在线蜜桃| 少妇裸体淫交视频免费看高清| 别揉我奶头 嗯啊视频| ponron亚洲| 久久99热这里只频精品6学生 | 国产探花极品一区二区| 亚洲精品乱久久久久久| 久久精品久久久久久久性| 精品国产露脸久久av麻豆 | 亚州av有码| 女人被狂操c到高潮| 你懂的网址亚洲精品在线观看 | 熟妇人妻久久中文字幕3abv| 久久久久久久久久黄片| 麻豆精品久久久久久蜜桃| 精品不卡国产一区二区三区| 九九热线精品视视频播放| 99久久人妻综合| 日韩av不卡免费在线播放| 性插视频无遮挡在线免费观看| 日韩高清综合在线| 中文在线观看免费www的网站| 午夜福利在线在线| 一区二区三区乱码不卡18| 在线播放无遮挡| 日韩大片免费观看网站 | 伦理电影大哥的女人| 少妇的逼好多水| 国产精品久久久久久久久免| 亚洲欧美精品自产自拍| 91在线精品国自产拍蜜月| 免费人成在线观看视频色| 国产一区二区在线观看日韩| 国产老妇伦熟女老妇高清| 国产毛片a区久久久久| 亚洲熟妇中文字幕五十中出| 女人被狂操c到高潮| 亚洲中文字幕一区二区三区有码在线看| 亚洲av一区综合| 亚洲人成网站高清观看| 人人妻人人澡欧美一区二区| 午夜免费激情av| 伊人久久精品亚洲午夜| 久久久久久久久久黄片| 欧美3d第一页| 我的老师免费观看完整版| 两个人视频免费观看高清| 国产伦精品一区二区三区四那| 九九久久精品国产亚洲av麻豆| 国产国拍精品亚洲av在线观看| 亚洲欧美精品综合久久99| 22中文网久久字幕| 一个人观看的视频www高清免费观看| 精品久久久久久久人妻蜜臀av| 精品一区二区免费观看| a级毛色黄片| 国产成人精品久久久久久| 日韩av在线大香蕉| 麻豆一二三区av精品| 菩萨蛮人人尽说江南好唐韦庄 | 免费看光身美女| 国产国拍精品亚洲av在线观看| 特大巨黑吊av在线直播| 中文天堂在线官网| 丰满少妇做爰视频| 内射极品少妇av片p| 亚洲欧洲日产国产| 老师上课跳d突然被开到最大视频| 2021天堂中文幕一二区在线观| 1024手机看黄色片| 人人妻人人澡人人爽人人夜夜 | 国产成人免费观看mmmm| 国产一级毛片在线| 男的添女的下面高潮视频| 好男人视频免费观看在线| 欧美激情国产日韩精品一区| 亚洲欧洲日产国产| 久久人妻av系列| 日韩中字成人| 韩国av在线不卡| 成人毛片60女人毛片免费| 国产精品久久久久久av不卡| 亚洲性久久影院| 亚洲精品色激情综合| 亚洲久久久久久中文字幕| 日本与韩国留学比较| 久久久国产成人免费| 久久久久久久久久久免费av| 欧美性感艳星| 国产伦精品一区二区三区四那| 在线免费观看的www视频| 午夜精品国产一区二区电影 | 蜜桃亚洲精品一区二区三区| 亚洲精品自拍成人| 国内精品宾馆在线| av天堂中文字幕网| 狠狠狠狠99中文字幕| 久久久欧美国产精品| 亚洲av成人av| videos熟女内射| 五月伊人婷婷丁香| 国产乱来视频区| 我的老师免费观看完整版| 亚洲国产最新在线播放| 九草在线视频观看| 亚洲av一区综合| 18+在线观看网站| 亚洲内射少妇av| 国产一区有黄有色的免费视频 | 美女大奶头视频| 人妻系列 视频| 天天躁夜夜躁狠狠久久av| 2021少妇久久久久久久久久久| 夫妻性生交免费视频一级片| 免费无遮挡裸体视频| 国产精品久久久久久久久免| 国产乱人视频| 久久国内精品自在自线图片| 国语自产精品视频在线第100页| 日本av手机在线免费观看| 日韩在线高清观看一区二区三区| 床上黄色一级片| 天堂网av新在线| 99热网站在线观看| 国产91av在线免费观看| 97人妻精品一区二区三区麻豆| 国产精品国产三级国产专区5o | 国产精品美女特级片免费视频播放器| 中文亚洲av片在线观看爽| 亚洲五月天丁香| 精品酒店卫生间| 精品免费久久久久久久清纯| 在线播放无遮挡| 久久久久久大精品| 免费观看精品视频网站| 亚州av有码| 国产亚洲av片在线观看秒播厂 | 精品人妻视频免费看| 非洲黑人性xxxx精品又粗又长| 国产爱豆传媒在线观看| 精品一区二区三区视频在线| 寂寞人妻少妇视频99o| 男插女下体视频免费在线播放| 一级黄色大片毛片| 亚洲aⅴ乱码一区二区在线播放| 两性午夜刺激爽爽歪歪视频在线观看| 欧美一区二区国产精品久久精品| 久久久久久久国产电影| 五月伊人婷婷丁香| 超碰97精品在线观看| 亚洲乱码一区二区免费版| 久久人人爽人人片av| 欧美一区二区精品小视频在线| 欧美色视频一区免费| 日本黄大片高清| 免费观看的影片在线观看| 一级黄色大片毛片| 欧美成人一区二区免费高清观看| 波野结衣二区三区在线| 欧美激情在线99| 两性午夜刺激爽爽歪歪视频在线观看| 免费看美女性在线毛片视频| 欧美日韩国产亚洲二区| 国产精品爽爽va在线观看网站| 精品国内亚洲2022精品成人| 国产国拍精品亚洲av在线观看| 大又大粗又爽又黄少妇毛片口| 亚洲av男天堂| 九九爱精品视频在线观看| 97人妻精品一区二区三区麻豆| 成人二区视频| 哪个播放器可以免费观看大片| 成年免费大片在线观看| 日本五十路高清| 非洲黑人性xxxx精品又粗又长| 91午夜精品亚洲一区二区三区| 三级毛片av免费| 天天躁夜夜躁狠狠久久av| 九九在线视频观看精品| 一区二区三区四区激情视频| 亚洲,欧美,日韩| 一级二级三级毛片免费看| 国产伦理片在线播放av一区| 欧美一区二区亚洲| 国产伦理片在线播放av一区| 欧美一区二区亚洲| 欧美激情国产日韩精品一区| 69人妻影院| 国产精品国产高清国产av| 91久久精品国产一区二区成人| 日本熟妇午夜| 丝袜美腿在线中文| 久久久久久久久久久免费av| 六月丁香七月| 国产av码专区亚洲av| 国内精品宾馆在线| av在线蜜桃| 水蜜桃什么品种好| 久久欧美精品欧美久久欧美| 国产精品一二三区在线看| 国产 一区精品| 午夜福利成人在线免费观看| 久久精品夜夜夜夜夜久久蜜豆| 亚洲国产精品国产精品| 日韩大片免费观看网站 | 久久热精品热| 中文字幕精品亚洲无线码一区| 久久精品人妻少妇| 非洲黑人性xxxx精品又粗又长| 亚洲乱码一区二区免费版| 如何舔出高潮| 亚洲av成人精品一二三区| 天堂影院成人在线观看| av又黄又爽大尺度在线免费看 | 亚洲精品,欧美精品| 麻豆av噜噜一区二区三区| 久久国产乱子免费精品| 午夜精品国产一区二区电影 | 别揉我奶头 嗯啊视频| 色吧在线观看| 免费观看精品视频网站| 国产一区二区亚洲精品在线观看| 久久久久久久久中文| 免费观看人在逋| 国产精品一区二区三区四区免费观看| av卡一久久| 免费观看在线日韩| 成人性生交大片免费视频hd| 男人舔奶头视频| 国产一级毛片在线| 搡女人真爽免费视频火全软件| 欧美另类亚洲清纯唯美| 日日撸夜夜添| 精品国内亚洲2022精品成人| 舔av片在线| 国产探花极品一区二区| 一个人观看的视频www高清免费观看| 人体艺术视频欧美日本| 麻豆成人午夜福利视频| 天天躁夜夜躁狠狠久久av| 国产精品一二三区在线看| 婷婷色综合大香蕉| 国产av一区在线观看免费| 亚洲熟妇中文字幕五十中出| 啦啦啦观看免费观看视频高清| 欧美性猛交黑人性爽| 日韩国内少妇激情av| av国产久精品久网站免费入址| av.在线天堂| 精品欧美国产一区二区三| 亚洲精品日韩在线中文字幕| 欧美3d第一页| 99久久精品热视频| 亚洲三级黄色毛片| 乱人视频在线观看| 免费无遮挡裸体视频| 国产亚洲av嫩草精品影院| 在线观看av片永久免费下载| 国产单亲对白刺激| 色综合亚洲欧美另类图片| 欧美潮喷喷水| 亚洲av电影在线观看一区二区三区 | 国产视频首页在线观看| 特级一级黄色大片| 狠狠狠狠99中文字幕| 国产av码专区亚洲av| 亚洲成人久久爱视频| 中文欧美无线码| 中文字幕免费在线视频6| 久久婷婷人人爽人人干人人爱| 欧美一级a爱片免费观看看| 噜噜噜噜噜久久久久久91| 看免费成人av毛片| 免费观看的影片在线观看| 男人舔奶头视频| 亚洲人成网站在线播| av又黄又爽大尺度在线免费看 | av免费观看日本| 国产综合懂色| 久久久久久国产a免费观看| 欧美人与善性xxx| 一级毛片我不卡| 国内少妇人妻偷人精品xxx网站| 欧美丝袜亚洲另类| 热99在线观看视频| 99热精品在线国产| 一夜夜www| 亚洲第一区二区三区不卡| 99热6这里只有精品| 精品国产三级普通话版| 啦啦啦韩国在线观看视频| 精品免费久久久久久久清纯| 日本黄色视频三级网站网址| 三级国产精品片| 国产成人91sexporn| 中文字幕av在线有码专区| 少妇猛男粗大的猛烈进出视频 | 久久久精品大字幕| 欧美一区二区亚洲| 国产熟女欧美一区二区| 免费在线观看成人毛片| www.色视频.com| 日韩欧美在线乱码|