簡易檢索 / 詳目顯示

研究生: 莊鍾一
Zhong-Yi Zhuang
論文名稱: 使用 LLVM Machine Code 之靜態二進制轉譯器
Static Binary Translator Using LLVM Machine Code
指導教授: 黃元欣
Yuan-shin Hwang
口試委員: 謝仁偉
Jen-wei Hsieh
李育杰
Yuh-jye Lee
學位類別: 碩士
Master
系所名稱: 電資學院 - 資訊工程系
Department of Computer Science and Information Engineering
論文出版年: 2015
畢業學年度: 104
語文別: 中文
論文頁數: 51
中文關鍵詞: 二進制轉譯器
外文關鍵詞: Binary Translator
相關次數: 點閱:182下載:2
分享至:
查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報

Binary Translation 技術是將某一平台架構之Binary Executable 轉換成另一種平台架構的 Binary Executable 。 Binary Translation 的分類大致上又可分為兩類:Static Binary Translation 以及 Dynamic Binary Translation,而能夠支援多種平台架構間相互轉換的Binary Translator,又稱其具有Resourceable 和 Retargetable (Adaptable) 的性質。
在本篇論文中,將實作一個利用 LLVM Machine Code Layer 來轉譯的 Static Binary Translator。主要機制是透過 LLVM Backend 的 Machine Code layer 來分析 Binary Executable,將 Binary Executable 回到LLVM Intermediate Representation Layer , 再利用LLVM 編譯器本身能產生多種平台的Binary Executable 之特性來達成在多個平台能夠轉譯至不同平台之目的 , 提升程式的相容性。


Binary Translation Technology is a platform architecture of the Binary Executable into another platform architecture Binary Executable. Binary Translation classification generally can be divided into two categories: Static Binary Translation and Dynamic Binary Translation, and can support a variety of inter-platform architecture conversion of Binary Translator, also known as having Resourceable and Retargetable (Adaptable) in nature.
In this paper, we will make a real use LLVM Machine Code Layer to translate the Static Binary Translator. The main mechanism is through the LLVM Backend of Machine Code layer to analyze the Binary Executable, the Binary Executable Back LLVM Intermediate Representation Layer, re-use LLVM compiler itself generates characteristic Binary Executable of a variety of platforms to reach multiple platforms can translate to different purpose platform, the upgrade program compatibility.

摘要 誌謝 圖目錄 表目錄 第一章序論 1.1 研究背景 1.2 研究動機 1.3 研究目的 1.4 研究方法 1.5 論文架構 第二章文獻回顧 2.1 Binary Translation 2.2 The University of Queensland Binary Translator(UQBT) Framework 2.3 LLVM 2.4 LLVM Machine Code layer 第三章方法 3.1 概念 3.2 資料結構 3.3 LLVM Machine Code Layer Front-End 3.4 Static Translator 3.5 LLVM Back-End 第四章實驗結果 4.1 實驗環境 4.2 效能評估 第五章結論 5.1 結論 5.2 未來展望 參考文獻

[1] F. Bellard, “Qemu, a fast and portable dynamic translator,” in USENIX Annual Technical Conference, FREENIX Track, 2005, pp. 41–46.

[2] C. Cifuentes and V. M. Malhotra, “Binary Translation: Static, Dynamic,Retargetable?” in Proceedings of the 1996 International Conference on Software Maintenance, ser. ICSM ’96. Washington, DC, USA: IEEE Computer Society, 1996.

[3] C. Lattner and V. Adve, “LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation,” in Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization, ser. CGO ’04. Washington, DC,USA: IEEE Computer Society, 2004, pp. 75–.

[4] V. Bala, E. Duesterwald, and S. Banerjia, “Dynamo: a transparent
dynamic optimization system,” in PLDI ’00: Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation. New York, NY, USA:
ACM, 2000, pp. 1–12.

[5] V. Adve, C. Lattner, M. Brukman, A. Shukla, and B. Gaeke. LLVA: A Low-level Virtual Instruction Set Architecture. In 36th Int’l Symp. on Microarchitecture, pages 205–216, San Diego, CA, Dec 2003.

[6] S. Sridhar, J. S. Shapiro, E. Northup, and P. P. Bungale, “HDTrans: An Open Source, Low-Level Dynamic Instrumentation System”, Proceedings of VEE’06, June 2006, Ottawa, Ontario, Canada, pp.175–185.

[7] C. Cifuentes and M. V. Emmerik, “UQBT: Adaptable Binary Translation at Low Cost,” Computer, vol. 33, pp. 60–66, March 2000.

[8] C. Lattner and V. Adve. LLVM Language Reference Manual. http://llvm.cs.uiuc.edu/docs/LangRef.html.

[9]“Tiny Code Generator (TCG) Documentation,”
http://wiki.qemu.org/Documentation/TCG.

[10] “CLANG,” http://clang.llvm.org.

[11] Chi-Keung et al Luk. Pin: building customized program analysis tools with dynamic instrumentation. In PLDI ’05: Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation, pages 190–200, New York, NY, USA, 2005. ACM.

[12] M. R. Guthaus et al. MiBench: A free, commercially representative embedded benchmark suite. In IEEE 4th Workshop on Workload Characterization, Dec. 2001.

[13] “GCC, the GNU Compiler Collection,” http://gcc.gnu.org/.

[14] T. Austin, E. Larson, and D. Emst. Simplescalar: An infrastruc-ture for computer system modeling. In IEEE Computer, 35(2):59–67, 2002.

[15] B. De Sutter, B. De Bus, K. De Bosschere, P. Keyngnaert, and B. Demoen, “On the Static Analysis of Indirect Control Transfers in Binaries”, Proc. International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA), 2000.

[16] C. Cifuentes and M. Van Emmerik, “Recovery of Jump Table Case Statements from Binary Code” Proceedings of the International Workshop on Program Comprehension, May 1999

[17] H. Theiling, “Extracting Safe and Precise Control Flow from Binaries” Proceedings of the 7th Conference on Real-Time Computing Systems and Applications, Dec. 2000.

[18] Kruegel, Christopher, et al. "Static disassembly of obfuscated binaries."Proceedings of the 13th USENIX Security Symposium. 2004

[19] Jhong-Jhe Wu "SQEMU:A Retargetable Static Binary Translator"

[20] LLVM Project Blog : Intro to the LLVM MC Project

[21] LLVM Project Blog : The x86 Disassembler

[22] Howto: Implementing LLVM Integrated Assembler

[23] Life of an instruction in LLVM

無法下載圖示
全文公開日期 本全文未授權公開 (校外網路)
全文公開日期 本全文未授權公開 (國家圖書館:臺灣博碩士論文系統)
QR CODE