免费中文字幕午夜理论模特,久久午夜福利精品,国产精品久久久久中文,久久精品视频免费观看12

  • <object id="ysikk"><strike id="ysikk"></strike></object>
    <menu id="ysikk"><abbr id="ysikk"></abbr></menu>
    <ul id="ysikk"></ul>
    <tbody id="ysikk"></tbody>
  • <menu id="ysikk"><noscript id="ysikk"></noscript></menu>

    課件009 教學資源下載
    課件 試卷 教案 畢業(yè)論文 圖書軟件 職教研究 期刊推介 信息發(fā)布 會員賬戶
    當前位置:課件009首頁 >> 職教研究 >> 專業(yè)論文 >> Java代碼混淆技術(shù)研究

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

    阜寧高等師范學校 王學軍 2013/10/7 14:23:44

       【摘要】由于Java開發(fā)已經(jīng)愈來愈流行,而引起編譯器的不安全特點是其很容易被反編譯,為了保護開發(fā)者的利益,混淆技術(shù)便應(yīng)運而生。當前主要使用到的混淆技術(shù)有以下四種:代碼外形混淆、控制命令混淆、內(nèi)部數(shù)據(jù)混淆和預(yù)防混淆。
       【關(guān)鍵字】混淆技術(shù);Java;編程;算法
      
       0.前言
       Java作為一種新一代的編程語言,其因編程簡單、跨平臺性可操作性強被許多的開發(fā)人員和公司喜愛,而且如今已經(jīng)成為應(yīng)用程序的主流開發(fā)軟件。然而,Java編譯器在編譯時是將代碼引用到的變量和方法符號保留在字節(jié)碼文件中,并且這些符號都有語義信息,因此使得開發(fā)的程序很容易被反編譯,導致軟件被破解。最終將使得開發(fā)者的知識產(chǎn)權(quán)受到侵害。為了保護開發(fā)者的權(quán)益,代碼混淆技術(shù)變應(yīng)運而生。
       1.混淆技術(shù)的發(fā)展
       早在1997年Collberg便開始了對代碼混淆的研究,在他發(fā)表的文章中提出了代碼混淆變換的各種類型,他將其分為四類:代碼外形混淆、控制命令混淆、內(nèi)部數(shù)據(jù)混淆以及預(yù)防混淆。隨后Kelly等人構(gòu)造了一種用來實現(xiàn)構(gòu)造代碼的混淆算法機制。在國內(nèi),近些年了也有一些學者逐漸意識到了代碼混淆技術(shù)在進行程序編寫中的重要性,大量研究之后取得了較大的成果。比較有代表的有李永祥的多分語句控制迷惑技術(shù),李長春的執(zhí)行重整混淆算法等。由于混淆技術(shù)具有非常重要的軟件保護作用,相信未來肯定會有更多的人和組織加入到代碼混淆技術(shù)的相關(guān)研究課題中來。
       2.混淆技術(shù)介紹
       2.1混淆變換原理
       作為一種非常實用的軟件保護策略,代碼混淆技術(shù)的基本思想是將應(yīng)用程序在保持語句含義不變的前提下實現(xiàn)P到P’的變換。此變換中必須滿足條件:P‘和P具有相同的運行結(jié)果;若P‘出錯終止或終止失敗,P也必須出錯地終止或終止失敗;P‘產(chǎn)生與P一樣的輸出。兩個程序唯一不同的只是P‘比P更難去進行反編譯,并且P‘可讀性差以及相關(guān)工具難以解析。因此經(jīng)過這種變換可以到達混淆的目的,使軟件不易被攻擊。
       2.2混淆的應(yīng)用領(lǐng)域
       代碼混淆的應(yīng)用范圍很廣,歸納起來主要有一下幾種領(lǐng)域:⑴分布式計算和軟件保護;⑵法保護和DRM;⑶同形加密;
       2.3混淆的分類
       代碼混淆技術(shù)根據(jù)混淆對象的不同可以分為四種:代碼外形混淆、控制命令混淆、內(nèi)部數(shù)據(jù)混淆和預(yù)防混淆。
       ⑴代碼外形混淆
       Java混淆器使用到的混淆方法中代碼外形混淆最為典型,該算法可以將Java所有源代碼中包含的類的功能隱藏。如果最初的格式信息被除去后代碼將不能恢復,因此稱這種混淆為單向變換。程序經(jīng)過這種變換后時間和空間復雜度不會受影響,因為它并沒有額外執(zhí)行代價。
       代碼外形混淆主要使用的技術(shù)有刪除(刪除程序和中的注釋、調(diào)試信息、未被調(diào)用的方法和類等)和改名(程序中的變量名、常量名、類名、方法名等)。此變換可以使程序的理解變難。
       ⑵ 控制命令混淆
       控制命令混淆能增加程序的復雜度和程序的反編譯時間,它是通過改變程序的判斷條件或添加可控判斷條件以及對程序的結(jié)構(gòu)和流程進行調(diào)整來實現(xiàn)的。常常用到的控制命令混淆主要有排序、聚集和計算變換。
       ⑶ 內(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)換。
       ⑷ 預(yù)防變換
       預(yù)防變換是利用某些專用反匯編工具的弱點而設(shè)計的。具體混淆可以分為針對特定目標實施的預(yù)防變換或者是依據(jù)已知的反編譯算法實現(xiàn)的混淆。
       ⑸ 四種混淆技術(shù)的分析和比較
       代碼外形混淆使攻擊者解讀程序造成不便,同時也能針對反編譯工具的算法使之反編譯難以實施。內(nèi)部數(shù)據(jù)混淆改變邏輯變量?刂泼罨煜钩绦蜃兊酶訌碗s從而增強程序的抵抗性能。預(yù)防混淆較多時候都是具有一定的針對性。內(nèi)部數(shù)據(jù)混淆和控制混淆都會在增加程序復雜度的同時造成程序執(zhí)行效率的下降,而代碼外形混淆則不會影響執(zhí)行效率。
       3.標示符重命名混淆算法
       標示符重命名混淆屬于代碼外形混淆的范疇。它是將字節(jié)碼文件中的一些類名、接口名、方法名等替換為其他無意義的名字。這并沒有造成程序的額外開銷,抗攻擊能力也不強。
       重命名是因為進行內(nèi)部數(shù)據(jù)混淆和控制混淆時都會增加程序的開銷,而這并不是我們想要的。有時候我們經(jīng)常需要一種可以抵抗攻擊并且不會造成程序執(zhí)行效率下降的算法,而重命名混淆正是這樣的。當一些名字被毫無意義的字(未完,下一頁

      

    頁碼選擇:1 2
    相關(guān)專業(yè)論文
    1 MVC編程模型在Web程序中的應(yīng)
    2 一種基于Java技術(shù)的網(wǎng)絡(luò)管理軟
    3 Javaapplet音頻播放器
    4 Java代碼混淆技術(shù)研究
    5 基于Oracle10g的JAVA
    6 關(guān)于JAVA的數(shù)據(jù)庫連接池的探討
    7 淺析Comet技術(shù)在JavaWe
    8 利用Hibernate對象持久化
    9 JDBC數(shù)據(jù)庫編程的研究
    10 好的一種Java程序調(diào)用C/C+
    11 計算機軟件開發(fā)的JAVA編程語言
    推薦專業(yè)論文
    1 人與自然—可持續(xù)發(fā)展觀
    2 國際職教發(fā)展趨勢與我國高職院校的
    3 金融危機對房地產(chǎn)業(yè)的影響
    4 論素質(zhì)教育與高校健美操教學改革
    5 (黃昌明228)寬帶無線技術(shù)的現(xiàn)
    6 基于單片機的數(shù)字時鐘設(shè)計
    7 提升企業(yè)競爭優(yōu)勢的薪酬戰(zhàn)略研究
    8 城區(qū)旅游資源保護思路探析
    9 頭位難產(chǎn)60例臨床研究
    10 王莊灌區(qū)續(xù)建配套與節(jié)水改造工程實
    11 對數(shù)控機床機械傳動裝置設(shè)計的認識
    12 中職學校班主任如何管理校外實習生
    13 淺談新課程對教師的要求以及對學生
    14 在教學中促進學生個性發(fā)展
    15 鋼筋混凝土結(jié)構(gòu)含鋼量的一般范圍和


    設(shè)為首頁  加入收藏  下載與付款  上傳課件  資料征集  論壇與信息發(fā)布  期刊雜志推介  免責聲明  常見問題   分類說明  聯(lián)系本站  會員登錄
    課件009教育資源網(wǎng) 版權(quán)所有