透過您的圖書館登入
IP:18.216.121.55
  • 學位論文

Java逆向編譯器的設計與製作

Design and Implementation of a Java Decompiler

指導教授 : 廖賀田

摘要


逆向編譯(Decompilation)是將低階語言轉換成高階語言。本論文針對Java類別檔進行逆向編譯處理,將控制流程擷取出來,辨認其中的迴域(Loop)與分域(Selection)結構,再以指令重組的技術,重新呈現出高階結構化程式。本論文規劃一個逆向編譯的架構,將整個轉換程序分五個步驟:(1)將Java類別檔經“輸入轉換”轉換成類別結構圖;(2)經“反組譯”轉換成JASM指令;(3) 經“流程圖建構”,轉換成由JASM指令所組成的流程圖;(4)經“控制流轉換”轉換成低階語法圖;(5)經“高階指令重組”轉換成高階語法圖,最後輸出高階的結構化程式。

並列摘要


The decompilation is transforming a low-level language into an equivalent high-level language. This research aims to extracts the control-flow from decompiling the specific Java class file, and then identifies its loops and the selection structure. Finally, we use the instruction reorganization technology to archive the high-level structured program. This thesis plans a framework of decompilation and divides the entire transformation procedure to five steps: (1) translates into the Class Structure from a Java class file via “input translation", (2) translates into the Java Assembly(JASM) instruction via "disassembly", (3) transforms the flow graph which is composed by the Java Assembly(JASM) instruction by processing through "flow graph construction", (4) translates into a low-level syntax diagram via "control-flow translation", and (5) translates through "instruction reorganization" into a high-level syntax diagram and then outputs the high-level structured program.

參考文獻


[DW99] Don Lance, Roland H. Untch and Nancy J. Wahl, “Bytecode-based Java Program Analysis”, ACM Press, Apr 1999.
[MD97] Jon Meyer and Troy Downing, Java Virtual Machine, O’REILLY, 1997.
[MH01] Jerome Miecznikowski and Laurie Hendren, “Decompiling Java Using Staged Encapsulation”, Sable Research Group, School of Computer Science, McGill University, Oct 2001.
[MH02] Jerome Miecznikowski and Laurie Hendren, “Decompiling Java Bytecode:Problems, Traps and Pitfalls”, Sable Research Group, School of Computer Science, McGill University, Feb 2002.
[AU85] A.V. Aho, R. Sethi and J. D. Ullman, Compiler Principles, Techniques, and Tools, Addison-Wesley, 1985.

延伸閱讀