簡易檢索 / 詳目顯示

研究生: 蔡明修
Tsai, Ming-Hsiu
論文名稱: 使用反反編譯混淆法設計與實作Java 抗加入式浮水印產生器
Design and Implementation of a Java additive-proofing watermarker using the anti-decompiling obfuscating method
指導教授: 侯廷偉
Hou, Ting-Wei
學位類別: 碩士
Master
系所名稱: 工學院 - 工程科學系
Department of Engineering Science
論文出版年: 2003
畢業學年度: 91
語文別: 中文
論文頁數: 83
中文關鍵詞: 混淆浮水印反編譯爪哇
外文關鍵詞: watermark, obfuscate, Java, decompile
相關次數: 點閱:112下載:1
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報
  • 本論文提出整合混淆技術和浮水印技術,來保護Java軟體版權的研究。使用反反編譯混淆器使Java程式免於被反編譯的威脅,且經由混淆程式後,攻擊者不易察覺程式是否有嵌入浮水印,或不易發現浮水印資料位置。且根據已混淆過的程式碼的特性,設計出使浮水印本身具有時戳的效果,當程式被嵌入多個浮水印時,可辨識浮水印產生的先後次序,以達到防止加入攻擊法的保護。

    This paper presents an approach to protect Java software copyright by integrating obfuscation techniques and watermark techniques. An anti-decompiling obfuscator is developed to protect a Java program from the threat of decompiling. After obfuscating the program, the thieves have difficulties to be aware of whether the program had been embedded a watermark or not, or hard to find the location of the watermark data. According to the characteristic of the obfuscated program code, the watermark itself contains a time stamp. If the program should be embedded a number of watermarks, we can distinguish the order of the time when these watermarks were generated, which then achieves the protection from the additive attack.

    中文摘要 i Abstract ii 誌謝 iii 章節目錄 iv 表目錄 vii 圖目錄 viii 第一章 緒論 1 1.1研究動機與背景 1 1.2 研究目的 2 1.3 章節概要 3 第二章 Java軟體版權保護技術 4 2.1 Java軟體混淆技術 4 2.1.1 符號混淆法 5 2.1.2 資料混淆法 5 2.1.3 控制流程混淆法 6 2.2 Java軟體浮水印技術 7 2.2.1靜態浮水印 7 2.2.2動態浮水印 9 2.3 其他保護技術 11 2.3.1 包裝加密法 11 2.3.2 轉換原生碼 12 2.4 本章小結 12 第三章 Java混淆器設計 13 3.1 相關技術 13 3.1.1 Java 反編譯技術 13 3.1.2 Java類別檔驗證器 16 3.2 控制流程混淆法之設計 19 3.2.1 基本區塊混淆法 19 3.2.2 複雜流程混淆法 21 3.2.3 置換 goto 混淆法 25 3.3 本章小結 28 第四章 Java混淆器實作 29 4.1 相關技術 29 4.1.1 Java類別檔案格式 29 4.2控制流程混淆器之實作 31 4.2.1 假的條件分支 31 4.2.2 基本區塊混淆器 32 4.2.3 複雜流程混淆器 33 4.2.4 置換goto混淆器 37 4.3 本章小結 42 第五章 Java浮水印設計 43 5.1 相關技術 43 5.1.1 軟體浮水印攻擊法 43 5.2 抗加入式浮水印之設計 46 5.3 本章小結 50 第六章 Java浮水印實作 51 6.1 建立特徵值 51 6.2浮水印加密 52 6.3浮水印圖形表示法 53 6.3.1 Radix-k編碼法 54 6.4 加入浮水印 55 6.5 辨識浮水印 57 6.6 本章小結 59 第七章 系統測試 60 7.1 測試環境 60 7.2 反編譯測試 60 7.2 浮水印存活度測試 65 7.3 執行效能測試 66 7.3.1 混淆後執行效能 66 7.3.2 加入浮水印後執行效能 70 7.4 系統整合測試 71 7.5 本章小結 76 第八章 結論與未來工作 77 8.1 結論 77 8.2 未來工作 77 參考文獻 79 自述 83

    [LOW98a] Douglas Low, “Protection Java Via Code Obfuscation”, ACM Crossroads Student Magazine, April 1998, http://www.acm.org/crossroads/xrds4-3/codeob.html
    [LOW98b] Douglas Low, “Java Control Flow Obfuscation”, Master’s Thesis, Department of Computer Science, University of Auckland, New Zealand, June 1998
    [LuZh99] Chenghui Luo, Jian Zhao, “Obfuscating and Watermarking Java Software for Copyright protection”, In the INI GraphicsNet research publications, Computer Graphik topics Issue 4, vol 11, 1999, pp. 31-32
    [Jobf] Jobfusator: Java Class File Obfuscator, http://www.duckware.com/jobfuscate/index.html
    [MeDo97] Meyer, Downing, “Java Virtual Machine”, O’REILLY, 1997
    [MiGa00] Jerome Miecznikowski, Etienne Gagnon, “Decompiling Java class files with soot(poster session)”, In proceedings of the conference on Object-oriented programming, systems, languages, and applications, Minneapolis, Minnesota, United States, 2000, pp. 111-112
    [MiHe01] Miecznikowski, J. Hendren, L. “Decompiling Java Using Staged Encapsulation”, In Reverse Engineering, 2001. Proceedings. Eighth Working Conference, Oct. 2001, pp. 368-374
    [MoIi00] Monden, A.; Iida, H.; Matsumoto, K.; Inoue, K.; Torii, K. “A practical method for watermarking Java programs ”, In Computer Software and Applications Conference, 2000. COMPSAC 2000. The 24th Annual International, Oct. 2000, pp. 191-197
    [PaKr00] Palsberg, J. Krishnaswamy, S. Minseok Kwon Ma, D. Qiuyun Shao Zhang, “Experience with software watermarking”, Computer Security Applications, 2000. ACSAC '00. 16th Annual Conference, Dec. 2000, pp. 308-316
    [RAI00] Raja Vallee-Rai, “Soot: A Java Bytecode Optimization Framework”, Master’s Thesis, School of Computer Science, McGill University, Montreal, 2000
    [RAMA84] M. V. S. Ramanath, Marvin Solomon, “Jump Minimization in Linear Time”, ACM Transactions on Programming Languages and Systems, Volume 6, Issue 4, October 1984, pp. 527-545
    [PKT73] W. W. Peterson, T. Kasami, N. Tokura, “On the capabilities of while, repeat, and exit statements”, Communications of the ACM, Volume 16, Issue 8, August 1973, pp. 503-512
    [PRWA97] Todd A. Proebsting, Scott A. Watterson, “Krakatoa: Decompliation in Java(Does Bytecode Reveal Source?)”, In Proceedings of the Third USENIX Conference on Object-Oriented Technologies and Systems Portland, Oregon, June 1997
    [PTBHNW97] Todd A Proebsting, Greg Townsend, Patrick Bridges, John H Hartman, Tim Newsham, Scott A Watterson, “Toba: Java for applications, A Way Ahead of Time (WAT) Compiler”, In Third USENIX Conference on Object Oriented Technologies and Systems, June, 1997
    [SABL] Sable Research Group, Compiler and Concurrency Lab, School of Computer Science, McGill University, http://www.sable.mcgill.ca
    [SHKQ00] Julien P. Stern, Gaël Hachez, François Koeune, Jean-Jacques Quisquater, “Robust Object Watermarking: Application to Code”, In Proceedings of the Third International Workshop on Information Hiding, London, UK, UK, 2000, pp. 368-378
    [SPEC] Standard Performance Evaluation Corporation, http://www.spec.org
    [Vlie96a] Hanpeter van Vliet, Mocha: the Java decompiler, 1996, http://www.brouhaha.com/~eric/computers/mocha.html
    [Vlie96b] Hanpeter van Vliet, Crema: the Java obfuscator, 1996, http://www.brouhaha.com/~eric/computers/mocha.html
    [Zeli] Java Obfuscator: Zelix Klass Master, http://www.zelix.com
    [吳朝相99] 吳朝相, “一切從’殼’開始”, Feb 23, 1999, http://wongtaisin.uhome.net/unpack/lesson102.htm
    [陳孟彰02] 陳孟彰, “數位影像版權保護之研究”, 國立成功大學資訊工程學系碩士班碩士論文, 2002
    [德錡03] 德錡實業有限公司, “外殼加密”, 2003, http://www.mtitw.com/dis2.htm
    [賴韓張95] 賴溪松, 韓亮, 張真誠, “近代密碼學及其應用”, 松崗, 1995

    下載圖示 校內:2004-07-30公開
    校外:2004-07-30公開
    QR CODE