亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Java代碼混淆技術(shù)研究

        2012-04-12 00:00:00王學(xué)軍
        消費電子 2012年19期

        摘要:由于Java開發(fā)已經(jīng)愈來愈流行,而引起編譯器的不安全特點是其很容易被反編譯,為了保護開發(fā)者的利益,混淆技術(shù)便應(yīng)運而生。當(dāng)前主要使用到的混淆技術(shù)有以下四種:代碼外形混淆、控制命令混淆、內(nèi)部數(shù)據(jù)混淆和預(yù)防混淆。

        關(guān)鍵詞:混淆技術(shù);Java;編程;算法

        中圖分類號:TP312 文獻標(biāo)識碼:A 文章編號:1674-7712 (2012) 18-0038-01

        一、前言

        Java作為一種新一代的編程語言,其因編程簡單、跨平臺性可操作性強被許多的開發(fā)人員和公司喜愛,而且如今已經(jīng)成為應(yīng)用程序的主流開發(fā)軟件。然而,Java編譯器在編譯時是將代碼引用到的變量和方法符號保留在字節(jié)碼文件中,并且這些符號都有語義信息,因此使得開發(fā)的程序很容易被反編譯,導(dǎo)致軟件被破解。最終將使得開發(fā)者的知識產(chǎn)權(quán)受到侵害。為了保護開發(fā)者的權(quán)益,代碼混淆技術(shù)變應(yīng)運而生。

        二、混淆技術(shù)的發(fā)展

        早在1997年Collberg便開始了對代碼混淆的研究,在他發(fā)表的文章中提出了代碼混淆變換的各種類型,他將其分為四類:代碼外形混淆、控制命令混淆、內(nèi)部數(shù)據(jù)混淆以及預(yù)防混淆。隨后Kelly等人構(gòu)造了一種用來實現(xiàn)構(gòu)造代碼的混淆算法機制。在國內(nèi),近些年了也有一些學(xué)者逐漸意識到了代碼混淆技術(shù)在進行程序編寫中的重要性,大量研究之后取得了較大的成果。比較有代表的有李永祥的多分語句控制迷惑技術(shù),李長春的執(zhí)行重整混淆算法等。由于混淆技術(shù)具有非常重要的軟件保護作用,相信未來肯定會有更多的人和組織加入到代碼混淆技術(shù)的相關(guān)研究課題中來。

        三、混淆技術(shù)介紹

        (一)混淆變換原理

        作為一種非常實用的軟件保護策略,代碼混淆技術(shù)的基本思想是將應(yīng)用程序在保持語句含義不變的前提下實現(xiàn)P到P’的變換。此變換中必須滿足條件:P‘和P具有相同的運行結(jié)果;若P‘出錯終止或終止失敗,P也必須出錯地終止或終止失?。籔‘產(chǎn)生與P一樣的輸出。兩個程序唯一不同的只是P‘比P更難去進行反編譯,并且P‘可讀性差以及相關(guān)工具難以解析。因此經(jīng)過這種變換可以到達混淆的目的,使軟件不易被攻擊。

        (二)混淆的應(yīng)用領(lǐng)域

        代碼混淆的應(yīng)用范圍很廣,歸納起來主要有一下幾種領(lǐng)域:⑴分布式計算和軟件保護;⑵法保護和DRM;⑶同形加密;

        (三)混淆的分類

        代碼混淆技術(shù)根據(jù)混淆對象的不同可以分為四種:代碼外形混淆、控制命令混淆、內(nèi)部數(shù)據(jù)混淆和預(yù)防混淆。

        1.代碼外形混淆。Java混淆器使用到的混淆方法中代碼外形混淆最為典型,該算法可以將Java所有源代碼中包含的類的功能隱藏。如果最初的格式信息被除去后代碼將不能恢復(fù),因此稱這種混淆為單向變換。程序經(jīng)過這種變換后時間和空間復(fù)雜度不會受影響,因為它并沒有額外執(zhí)行代價。

        代碼外形混淆主要使用的技術(shù)有刪除(刪除程序和中的注釋、調(diào)試信息、未被調(diào)用的方法和類等)和改名(程序中的變量名、常量名、類名、方法名等)。此變換可以使程序的理解變難。

        2.控制命令混淆。控制命令混淆能增加程序的復(fù)雜度和程序的反編譯時間,它是通過改變程序的判斷條件或添加可控判斷條件以及對程序的結(jié)構(gòu)和流程進行調(diào)整來實現(xiàn)的。常常用到的控制命令混淆主要有排序、聚集和計算變換。

        3.內(nèi)部數(shù)據(jù)混淆。內(nèi)部數(shù)據(jù)混淆技術(shù)將會利用數(shù)據(jù)流中的難點問題,向程序中引入使程序精度降低或難度增加的因素,進而可以影響反編譯器對程序的分析結(jié)果。內(nèi)部數(shù)據(jù)混淆只會變換代碼中的數(shù)據(jù)結(jié)構(gòu),而不修改軟件代碼。

        進行內(nèi)部數(shù)據(jù)混淆的主要方法有四種:變量分裂與變量合并、數(shù)據(jù)結(jié)構(gòu)變換、靜態(tài)數(shù)據(jù)動態(tài)生成、類繼承轉(zhuǎn)換。

        4.預(yù)防變換。預(yù)防變換是利用某些專用反匯編工具的弱點而設(shè)計的。具體混淆可以分為針對特定目標(biāo)實施的預(yù)防變換或者是依據(jù)已知的反編譯算法實現(xiàn)的混淆。

        5.四種混淆技術(shù)的分析和比較。代碼外形混淆使攻擊者解讀程序造成不便,同時也能針對反編譯工具的算法使之反編譯難以實施。內(nèi)部數(shù)據(jù)混淆改變邏輯變量??刂泼罨煜钩绦蜃兊酶訌?fù)雜從而增強程序的抵抗性能。預(yù)防混淆較多時候都是具有一定的針對性。內(nèi)部數(shù)據(jù)混淆和控制混淆都會在增加程序復(fù)雜度的同時造成程序執(zhí)行效率的下降,而代碼外形混淆則不會影響執(zhí)行效率。

        四、標(biāo)示符重命名混淆算法

        標(biāo)示符重命名混淆屬于代碼外形混淆的范疇。它是將字節(jié)碼文件中的一些類名、接口名、方法名等替換為其他無意義的名字。這并沒有造成程序的額外開銷,抗攻擊能力也不強。

        重命名是因為進行內(nèi)部數(shù)據(jù)混淆和控制混淆時都會增加程序的開銷,而這并不是我們想要的。有時候我們經(jīng)常需要一種可以抵抗攻擊并且不會造成程序執(zhí)行效率下降的算法,而重命名混淆正是這樣的。當(dāng)一些名字被毫無意義的字符替換后,攻擊者很難從中讀出該名字所代表的意義,這便使得攻擊者在反編譯是造成了困難。

        當(dāng)程序中一個實體被重命名后,所有與其相關(guān)的內(nèi)容必須更新,否則會引起運行出錯。但是有一些是不能被重命名的。這便有了代碼混淆范圍的提出。以下三種標(biāo)示符是不在范圍內(nèi)的:(1)子類中一個超類或接口中抽象方法的實體方法;(2)超類中繼承方法的重寫;(3)特殊屬性明確規(guī)定不可進行替換。

        標(biāo)示符重名算法可以分為四種:靜態(tài)方法重寫、替換非法提示符、無關(guān)聯(lián)方法重載、部分標(biāo)識符濫用。

        五、算法分析

        衡量一個混淆算法性能好壞的重要指標(biāo)是對程序執(zhí)行開銷的影響。內(nèi)部數(shù)據(jù)混淆和控制命令混淆都增加了程序的二外執(zhí)行開銷從而影響了程序的運行效率。重命名混淆只是將名字替換,很多時候都會將名字縮短,使文件變得更小,不會造成執(zhí)行效率的下降,同時也使攻擊者將花費更長的時間來理解和反編譯程序。

        六、總結(jié)

        代碼混淆技術(shù)是時下最常用的,同時也是最有效的保護Java軟件的方法,新型的混淆算法一定會隨著技術(shù)的發(fā)展而被發(fā)現(xiàn)。雖然代碼混淆技術(shù)在一定程度上保護了軟件的安全以及開發(fā)者的權(quán)益,但只有我們杜絕使用盜版軟件同時不去侵犯他人的知識產(chǎn)權(quán)才能切實的保護好開發(fā)者的權(quán)益。

        參考文獻:

        [1]魏會生.基于JAVA類文件保護的探討[J].工會博覽·理論研究,2011,3:25-26.

        [2]魏衍君,王應(yīng)戰(zhàn).Java語言混淆器模型研究[J].科技信息,2012,4:61-62.

        亚洲精品综合一区二区| 国产成人久久精品亚洲小说| 久久精品无码一区二区三区不| 中文字幕永久免费观看| 久久青草国产免费观看| 国产一区二区在线观看我不卡| 男男互吃大丁视频网站| 日韩精品一区二区三区免费观影| 亚洲一区二区三区在线视频| 色老汉亚洲av影院天天精品| 亚洲图文一区二区三区四区| 久久久熟女一区二区三区| 国产剧情一区二区三区在线 | 中文字幕一区二区网站| 免费看黄片的视频在线观看| 中国国产不卡视频在线观看| 无码人妻丰满熟妇区bbbbxxxx | 欧美精品v国产精品v日韩精品| 黑人巨茎大战欧美白妇| 国产精品内射后入合集| 久草午夜视频| 2022精品久久久久久中文字幕| 亚洲天堂av另类在线播放| 男女深夜视频网站入口| 99国产精品久久99久久久| 亚洲第一最快av网站| 开心五月激情综合婷婷| 中文字幕永久免费观看| 亚洲人成伊人成综合久久| 免费久久久一本精品久久区| 奶头又大又白喷奶水av| 国产免国产免费| 人妻无码中文专区久久五月婷| 国产欧美日韩综合一区二区三区| 日本一区免费喷水| 日本免费三片在线视频| 女同同志熟女人妻二区| 久久97久久97精品免视看 | 亚洲无码观看a| 伊人久久大香线蕉av色婷婷| 久久国产黄色片太色帅|