請用此 Handle URI 來引用此文件:
http://tdr.lib.ntu.edu.tw/jspui/handle/123456789/64237
完整後設資料紀錄
DC 欄位 | 值 | 語言 |
---|---|---|
dc.contributor.advisor | 陳俊良 | |
dc.contributor.author | Pi-Hung Liu | en |
dc.contributor.author | 劉必宏 | zh_TW |
dc.date.accessioned | 2021-06-16T17:36:15Z | - |
dc.date.available | 2012-08-17 | |
dc.date.copyright | 2012-08-17 | |
dc.date.issued | 2012 | |
dc.date.submitted | 2012-08-15 | |
dc.identifier.citation | [1] What is Android? [Online]. http://developer.android.com/guide/basics/what-is-android.html
[2] (2011, Aug.) Canalys. [Online]. http://www.canalys.com/newsroom/android-takes-almost-50-share-worldwide-smart-phone-market [3] Mocha, the Java Decompiler. [Online]. http://www.brouhaha.com/~eric/software/mocha/ [4] JAD Java Decompiler Download Mirror. [Online]. http://www.varaneckas.com/jad/ [5] Dava: A tool-independent decompiler for Java. [Online]. http://www.sable.mcgill.ca/dava/ [6] JD | Java Decompiler. [Online]. http://java.decompiler.free.fr/ [7] Fernflower - Java Decompiler. [Online]. http://www.reversed-java.com/fernflower/ [8] Soot: a Java Optimization Framework. [Online]. http://www.sable.mcgill.ca/soot/ [9] Jasmin Home Page. [Online]. http://jasmin.sourceforge.net/ [10] GCJ: The GNU Compiler for Java. [Online]. http://gcc.gnu.org/java/ [11] Dedexer user's manual. [Online]. http://dedexer.sourceforge.net/ [12] smali - An assembler/disassembler for Android's dex format. [Online]. http://code.google.com/p/smali/ [13] dex2jar - Tools to work with android.dex and java.class files. [Online]. http://code.google.com/p/dex2jar/ [14] 謝韋佑, 'Android的Dex反編譯器設計與實作:型態推斷部分,' 台灣大學, 碩士論文 2011. [15] 王勁智, 'Android的Dex反編譯器設計與實作:控制結構部分,' 台灣大學, 碩士論文 2011. [16] SableWiki - Soot Users. [Online]. https://svn.sable.mcgill.ca/wiki/index.cgi/SootUsers [17] Raja Vallée-Rai, Laurie Hendren, Vijay Sundaresan, Patrick Lam, and Etienne Gagnon and Phong Co, 'Soot - a Java Optimization Framework,' in Proceedings of CASCON 1999, 1999, pp. 125--135. [18] Navindra Umanee, 'Shimple: An Investigation of Static Single Assignment Form,' McGill University, Master thesis 2006. [19] Arni Einarsson and Janus Dam Nielsen. (2008) A Survivor's Guide to Java Program Analysis with Soot. [Online]. http://www.brics.dk/SootGuide/ [20] Array (Java Platform SE 7). [Online]. http://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Array.html [21] Bytecode for the Dalvik VM. [Online]. http://www.netmite.com/android/mydroid/dalvik/docs/dalvik-bytecode.html [22] Patrick Lam, Feng Qian, and Ondřej Lhoták. Soot phase options. [Online]. http://www.sable.mcgill.ca/soot/tutorial/phase/phase.html [23] Java Virtual Machine Specification: Chapter 4. The class File Format. [Online]. http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html [24] Ondřej Lhoták, 'Spark: A flexible points-to analysis framework for Java,' McGill University, Master thesis 2002. [25] Ondřej Lhoták, 'Program Analysis using Binary Decision Diagrams,' McGill University, PhD thesis 2006. [26] Java Virtual Machine Specification, Chapter 6. The Java Virtual Machine Instruction Set. [Online]. http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-6.html | |
dc.identifier.uri | http://tdr.lib.ntu.edu.tw/jspui/handle/123456789/64237 | - |
dc.description.abstract | Android系統已成為智慧型手機的第一大作業系統,其上的應用程式也有許多豐富的內容。Android上的應用程式是由Java撰寫,經過編譯成為class檔案之後,再經過Android SDK的dx工具轉換為dex檔案──它是一個register-based指令集,並且考量到行動裝置的架構及運算能力而制定的程式碼和格式。若能將這些程式碼轉換成為能夠再次利用的型式的話,不論是開發或研究上都會有相當的幫助。由於目前對於dex檔案的轉換工具尚不夠豐富,相對於已經有了許多研究的Java bytecode轉換,若能利用彼此之間的關係將dex檔案的轉換套入已有的Java最佳化資源當中,便能夠使dex檔案也能夠運用豐富的Java bytecode最佳化成果。
在套用既有資源做嘗試時,我們發現了幾個dx轉換時所改變的程式碼模式;由於這些模式都破壞了原來javac所編譯出來的程式碼樣式,因此使得既有的最佳化演算法無法處理。我們整理了這些模式以及它們對程式碼的影響,並且在實際的應用程式上測試了其效果。 | zh_TW |
dc.description.abstract | The Android operating system had became the largest operating system in the smart phone area, and there are many rich contents in the applications of Android. These applications are written in Java, compiled to class files, and converted to dex files (which contains the register-based bytecode and optimized for the architecture and the limited computation power of smart phones) by the dx tool from Android SDK. Since there are few transformation tools for dex files compared to the abundance of resources of optimizing and analyzing Java class files, making these resource available to dex files can greatly improve the reusability and researching potential of them.
When trying to use these resources to analyze dex files, we find that some optimization transformations done by the dx tool cannot fit in the original analyzing framework, since these transformations break the pattern of javac-complied programs and cannot be recognized by these algorithms. We collected the transformations we found that dx does and measured their effect on real applications. | en |
dc.description.provenance | Made available in DSpace on 2021-06-16T17:36:15Z (GMT). No. of bitstreams: 1 ntu-101-R99922076-1.pdf: 329931 bytes, checksum: b770ea35c15d4c37611b536074a365c8 (MD5) Previous issue date: 2012 | en |
dc.description.tableofcontents | 目錄
口試委員審定書 # 誌謝 i 中文摘要 ii Abstract iii 目錄 iv 圖目錄 v 表目錄 v 1. 簡介 1 1.1 研究動機 1 1.2 目標 3 1.3 論文架構 3 2. 背景知識 4 2.1 從Java到Dalvik 4 2.2 Soot和它的中介語言 4 3. dx造成的問題及解法 9 3.1 尋找問題 9 3.2 multianewarray 10 3.3 陣列或物件初始化的dup 13 3.4 多重分支的return 16 3.5 常數字串擴散 18 4. 結果 23 5. 結論及未來工作 26 5.1 結論 26 5.2 未來工作 26 參考文獻 27 | |
dc.language.iso | zh-TW | |
dc.title | Dalvik可執行檔之二元轉換 | zh_TW |
dc.title | Binary Transformation of Dalvik Executable | en |
dc.type | Thesis | |
dc.date.schoolyear | 100-2 | |
dc.description.degree | 碩士 | |
dc.contributor.oralexamcommittee | 甘宗左,徐國偉 | |
dc.subject.keyword | 二元轉換,Android,dex,dalvik bytecode,最佳化,逆向工程, | zh_TW |
dc.subject.keyword | Binary transformation,Android,dex,dalvik bytecode,optimization,reversed engineering, | en |
dc.relation.page | 29 | |
dc.rights.note | 有償授權 | |
dc.date.accepted | 2012-08-15 | |
dc.contributor.author-college | 電機資訊學院 | zh_TW |
dc.contributor.author-dept | 資訊工程學研究所 | zh_TW |
顯示於系所單位: | 資訊工程學系 |
文件中的檔案:
檔案 | 大小 | 格式 | |
---|---|---|---|
ntu-101-1.pdf 目前未授權公開取用 | 322.2 kB | Adobe PDF |
系統中的文件,除了特別指名其著作權條款之外,均受到著作權保護,並且保留所有的權利。