Skip navigation

DSpace

機構典藏 DSpace 系統致力於保存各式數位資料(如:文字、圖片、PDF)並使其易於取用。

點此認識 DSpace
DSpace logo
English
中文
  • 瀏覽論文
    • 校院系所
    • 出版年
    • 作者
    • 標題
    • 關鍵字
  • 搜尋 TDR
  • 授權 Q&A
    • 我的頁面
    • 接受 E-mail 通知
    • 編輯個人資料
  1. NTU Theses and Dissertations Repository
  2. 電機資訊學院
  3. 資訊工程學系
請用此 Handle URI 來引用此文件: http://tdr.lib.ntu.edu.tw/jspui/handle/123456789/35296
完整後設資料紀錄
DC 欄位值語言
dc.contributor.advisor陳俊良
dc.contributor.authorChin-Chih Wangen
dc.contributor.author王勁智zh_TW
dc.date.accessioned2021-06-13T06:47:07Z-
dc.date.available2011-08-05
dc.date.copyright2011-08-05
dc.date.issued2011
dc.date.submitted2011-07-22
dc.identifier.citation[1] (2011, June) Android Open Source Project. [Online]. http://source.android.com/
[2] K. Arnold, J. Gosling, and D. Holmes, The Java™ Programming Language, 4th ed., 2005.
[3] T. Lindholm and F. Yellin, The Java Virtual Machine Specification, 2nd ed.: Addison-Wesley, 1999.
[4] P. Kouznetsov. (2011, June) Jad - the Fast Java Decompiler. [Online]. http://www.varaneckas.com/jad
[5] E. Smith. (2011, June) Mocha, the Java Decompiler. [Online]. http://www.brouhaha.com/~eric/software/mocha/
[6] (2011, June) Online Java Decompiler. [Online]. http://www.tigernt.com/tools/Java/index.shtml
[7] J. Meyer and D. Reynaud. (2011, June) Jasmin. [Online]. http://jasmin.sourceforge.net/
[8] (2011, June) GCJ: The GNU Compiler for Java Program Language. [Online]. http://gcc.gnu.org/java/index.html
[9] G. Paller. (2011, June) Dedexer user's manual. [Online]. http://dedexer.sourceforge.net/
[10] J. Freke. (2011, June) smali - An assembler/disassembler for Android's dex format. [Online]. http://code.google.com/p/smali/
[11] pxb1988. (2011, June) dex2jar. [Online]. http://code.google.com/p/dex2jar/
[12] D. Octeau, W. Enck, and P. McDaniel. (2009) Decompiling Android Applications. [Online]. http://nsrc.cse.psu.edu/slides/id09/NSRC_ID09_poster_damienocteau.pdf
[13] T. Proebsting and S. Watterson, 'Krakatoa: Decompilation in Java (Does Bytecode Reveal Source?),' in Third USENIX Conference on Object-Oriented Technologies (COOTS), 1997.
[14] L. Ramshaw, 'Eliminating go to's while preserving program structure,' Journal of the ACM (JACM), vol. 35, no. 4, pp. 893-920, Oct. 1988.
[15] R. Cytron, J. Ferrante, B. Rosen, M. Wegman, and F. Zadeck , 'An efficient method of computing static single assignment form,' in POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, 1989, pp. 25-35.
dc.identifier.urihttp://tdr.lib.ntu.edu.tw/jspui/handle/123456789/35296-
dc.description.abstract隨著Android應用日漸普及,在不久的將來,使用者對於Android應用程式勢必會有不同的最佳化需求,甚至是轉換成不同的檔案格式,例如將Dex檔案轉換回Java檔案。然而,以現階段來說,針對Java及Class檔案開發的二元轉換及最佳化框架資源,是遠比Dex檔案所擁有的豐富。因此,我們希望在Java家族的二元轉換上建立一條路徑,使得Dex檔案也能享受到屬於Class檔案的資源。
我們的研究目標是開發Dex檔案回到Java檔案的反編譯器。本篇論文將專注於控制結構的建立,引用了Class-to-Java反編譯器的Goto Elimination方法,再針對Dex檔案的特性修改,以達到移除goto指令,建立對應控制結構的目標。最後依照建立的控制結構,寫出Java原始檔。
zh_TW
dc.description.abstractBecause Android is more and more popular, users will have different optimization request about Android applications in the near future. They also have to transform the file into different format, such as transforming Android dex file to Java source file. However, the resources of binary transformations and optimization frameworks for Java source and Java class file are much more fruitful than those for Android dex file. In this thesis, we want to create a binary transformation path from Android dex file to Java source and Java class file.
Our goal is to develop a Dex-to-Java decompiler. This thesis will focus on control structure creation. We adopt the goto-elimination algorithm of a Class-to-Java decompiler. And then, according to Android dex property, we modify the algorithm in order to remove goto instructions and construct corresponding control structures. Finally, we can write down the Java source file according to these control structures.
en
dc.description.provenanceMade available in DSpace on 2021-06-13T06:47:07Z (GMT). No. of bitstreams: 1
ntu-100-R98922125-1.pdf: 616681 bytes, checksum: 3caccc340956abd997df42572f45e715 (MD5)
Previous issue date: 2011
en
dc.description.tableofcontents口試委員會審定書 #
誌謝 i
中文摘要 ii
ABSTRACT iii
目錄 iv
圖目錄 vi
表目錄 vii
1. 介紹 1
1.1 研究動機 1
1.2 目標 2
1.3 論文架構 2
2. 背景知識 3
2.1 Java家族的二元轉換 3
2.2 Proebsting’s Algorithm 5
2.2.1 Expression Recovery 5
2.2.2 Goto Elimination 6
2.2.3 Code Transformation 9
2.2.4 Expression Recovery的必要性 12
2.3 Class檔案及Dex檔案的差異 13
2.4 SSA形式 16
3. 系統架構 18
3.1 系統概述 18
3.2 系統架構-Control Structure Creator 19
3.2.1 Resorting區塊 20
3.2.2 ExpressionRecovery區塊 22
3.2.3 GotoElimination區塊 22
3.2.4 CodeTransformation區塊 24
3.2.5 JavaWriter 24
4. Dex檔案的Expression Recovery 25
4.1 問題的定義 25
4.1.1 Expression Recovery 25
4.1.2 Stack Machine的Expression Recovery 26
4.1.3 Register Machine的Expression Recovery 28
4.2 設計與實作 28
4.2.1 SSA形式與Phi-function 28
4.2.2 取代方針 29
4.2.3 實作程序 30
5. 結果 34
6. 結論及未來工作 40
6.1 結論 40
6.2 未來工作 40
參考文獻 42
dc.language.isozh-TW
dc.titleAndroid的Dex反編譯器設計與實作:控制結構部分zh_TW
dc.titleAndroid’s Dex Decompiler : Control Structure Parten
dc.typeThesis
dc.date.schoolyear99-2
dc.description.degree碩士
dc.contributor.oralexamcommittee甘宗左,徐國偉
dc.subject.keyword反編譯器,Goto Elimination,Android,Dex,二元轉換,zh_TW
dc.subject.keywordDecompiler,Goto Elimination,Android,Dex,Binary Transformation,en
dc.relation.page43
dc.rights.note有償授權
dc.date.accepted2011-07-25
dc.contributor.author-college電機資訊學院zh_TW
dc.contributor.author-dept資訊工程學研究所zh_TW
顯示於系所單位:資訊工程學系

文件中的檔案:
檔案 大小格式 
ntu-100-1.pdf
  目前未授權公開取用
602.23 kBAdobe PDF
顯示文件簡單紀錄


系統中的文件,除了特別指名其著作權條款之外,均受到著作權保護,並且保留所有的權利。

社群連結
聯絡資訊
10617臺北市大安區羅斯福路四段1號
No.1 Sec.4, Roosevelt Rd., Taipei, Taiwan, R.O.C. 106
Tel: (02)33662353
Email: ntuetds@ntu.edu.tw
意見箱
相關連結
館藏目錄
國內圖書館整合查詢 MetaCat
臺大學術典藏 NTU Scholars
臺大圖書館數位典藏館
本站聲明
© NTU Library All Rights Reserved