標題: 在靜態二元碼轉換中針對 ARM/Thumb-1 混合指令二元檔之代碼發現問題The code-discovery problem for ARM/Thumb-1 mixed ISA binaries in static binary translation 作者: 歐冠翬楊武Yanag, Wuu資訊科學與工程研究所 關鍵字: 靜態二元碼轉換;程式碼發現問題;Static binary translation;Code-discovery problem 公開日期: 2012 摘要: 靜態二元碼轉譯器不需要執行二元碼可以將一個平台的二元碼轉換成另一個平台可以使用的二元碼。然而，靜態二元碼轉譯器在實作時會遇到程式碼發現問題 (Code-discovery problem) 所以在實作上會非常困難。構成程式碼發現問題的主要原因有四個，程式碼和資料混合、指令長度不固定、間接跳躍指令、和位元組對齊。在一些 RISC 架構中，所有的指令都有相同的長度，這讓程式碼發現問題變得很好處理。在其他 RISC 架構中，指令長度有兩種。舉例來說，在 ARM 架構裡，指令長度有兩個位元組和四個位元組的長度。在這種架構下的可執行檔稱做混合指令的可執行檔。大部分的 CISC 架構中，指令長度可以從一個位元組到十幾個位元組。這篇論文主要提出一個可以在靜態分析轉譯器中可以解決混合指令的可執行檔的程式碼發現問題。我們目前的實作主要實作在針對 ARM/Thumb-1 的混合指令的可執行檔。A static binary translator converts the executable for one architecture to another without running the code. However, a static binary translator is hard to implement since it may suffers from code-discovery problem. The code-discovery problem is caused by data intermixing with code, variable-length instruction sets, indirect branches, and padding bytes. In some RISC architecture, all instructions have the same length. This makes the code-discovery problem easier to solve. In other RISC architectures, instructions comes in a few different lengths. For example, in ARM architectures, instructions are either two or four bytes long. Executables for such architectures are called mixed-mode executables. In most advanced CISC architectures, instruction lengths could vary from 1 to ten of bytes. We propose solutions to the code-discovery problem for mixed-mode executables. Our solutions are implemented in a static binary translator for the ARM/Thumb-1 mixed-mode executables. URI: http://140.113.39.130/cdrfb3/record/nctu/#GT079955570http://hdl.handle.net/11536/50484 Appears in Collections: Thesis