標題: | 軟體控制流程之模糊化分析與評估 Analysis and Evaluation of Control Flow Obfuscations of Software Programs |
作者: | 蔡欣宜 黃育綸 電控工程研究所 |
關鍵字: | 軟體模糊化;software obfuscation |
公開日期: | 2006 |
摘要: | 模糊軟體程式碼的執行/控制流程有助於阻擋反組譯程式及防止攻擊者惡意竄改程式碼,進而達到保護軟體程式碼完整性與控制存取的保護目的。這些應用於程式碼控制流程的模糊化作業通常可經由一連串的程式碼轉換來達成,在模糊控制邏輯的同時,仍能保有相同的執行結果。然而,目前相關研究僅止於提供可用於軟體程式碼控制流程轉換的模糊化技巧,例如應用內嵌法或模組化、加入等值碼或偽碼等技巧,並未針對模糊化處理後軟體程式碼抵擋反組譯的能力、下降的執行效能與增加的程式碼成本等加以分析。因此,在本篇論文中,我們提出一套剖析原始碼及評估模糊化技巧有效度的方法,藉由搭配軟體程式控制流程的抽象概念,剖析原始碼架構,並透過正規方法來分析模糊化技巧提供的保護能力。在本論文所提出的分析方法中,我們使用數種不同類型的基本轉換元素表示現有的控制流程模糊化作業,用以轉換程式碼的控制流程,模糊化其執行邏輯,進而達到保護的目的。透過模糊轉換的正規化,我們能容易地根據提出的評量準則對模糊化後的程式碼架構進行分析。在我們提出的方法中,不但針對轉換後程式碼的複雜度和抵抗反組譯攻擊的強度加以評估,更討論各種轉換元素所造成的程式碼大小的增加,使程式碼所有者能在複雜度、抗反組譯能力與成本之間,取得最佳平衡點。 Modern control flow obfuscation techniques are usually composed of a sequence of transformations to control flows and intended to discourage reverse engineering and malicious tampering of software codes. In this thesis, we present an approach to analyzing and evaluating the effectiveness of such techniques which was not addressed in detail in the previous work. Our work is implemented on a source level basis with abstractions of control flows of a software program. Existing control flow obfuscating transformations can be decomposed and categorized into various types of atomic operators and defined in formal algorithms that take abstracted control flows as inputs. These algorithms are evaluated in terms of their complexities and robustness against reverse engineering. The side effect of space penalty of each atomic operator is also evaluated. Given the individual results, the whole software program can thus be evaluated as well, providing an objective indication of the aggregated effectiveness of the overall obfuscation result. |
URI: | http://140.113.39.130/cdrfb3/record/nctu/#GT009412534 http://hdl.handle.net/11536/80664 |
Appears in Collections: | Thesis |
Files in This Item:
If it is a zip file, please download the file and unzip it, then open index.html in a browser to view the full text content.