ARM反編譯中的類型分析技術研究
發(fā)布時間:2021-03-07 21:43
以ARM微處理器為核心的嵌入式系統(tǒng)在國防、通信等領域的關鍵電子設備中得到普遍應用,利用逆向工程技術對其代碼的結構和功能進行分析理解具有十分重要的意義,類型分析技術是代碼反編譯的關鍵步驟之一。本文在分析ARM匯編指令語義信息的基礎上,結合類型變量的定義,歸納總結了類型特征的提取規(guī)則,實現(xiàn)了ARM匯編指令類型特征的提;結合中間語言的特性,設計了中間語言語句的類型屬性生成方法,重點闡述了針對中間語言語句表達式中不同種類運算符的處理方法,為原始的未包含類型信息的中間語言添加了類型屬性;利用中間語言的類型屬性,提出了基于雙向數(shù)據(jù)流分析的類型傳播方法,解決了類型信息精確化的問題;分析了存儲單元尋址表達式之間的關系特性,設計了數(shù)組及結構類型的重構方法;設計并實現(xiàn)了用于ARM反編譯的類型分析原型工具。通過大量實例驗證了基本類型和復合類型分析方法的正確性,對ARM反編譯中的類型分析問題討論地比較全面、實現(xiàn)簡單,具有較強的實用性和可推廣性。
【文章來源】:戰(zhàn)略支援部隊信息工程大學河南省
【文章頁數(shù)】:71 頁
【學位級別】:碩士
【部分圖文】:
反編譯的典型階段長期以來,微軟系列的操作系統(tǒng)在辦公、家庭計算機中占據(jù)主導地位,運行于這些計
uuu:R3二 Rl;;;u:R3二 Rl;;;u:R4二 Rl<<R2;;;圖4表達式傳播示例如圖4所示的中間語句序列(a)中,由于(l)、(2)兩處都對Rl進行了定義,不滿足條件1,因此不能進行傳播;中間語句序列(b)中語句(l)處對R3的重新定義改變了R3的值,因此不能進行傳播;中間語句序列(c)中語句51與u、s2與u都滿足兩個傳播條件,因此可以進行傳播,傳播結果為 R4:(Rl+2)<<(R3)。2.無用代碼刪除在經(jīng)過表達式傳播之后,中間代碼中的一些語句不再影響程序的執(zhí)行,成為冗余的指令
類型信息進行重構的過程。其基本思想是根據(jù)變量的使用方式發(fā)掘隱含在程序中的數(shù)據(jù)類型信息,首先分析基本數(shù)據(jù)類型,之后在基本數(shù)據(jù)類型分析結果的基礎上進行復合數(shù)據(jù)類型的分析。本文中類型分析的目標是標準C語言中的基本類型(int,shortini,unsignedini等)和部分復合類型(數(shù)組、結構體)。首先通過對單條ARM匯編指令的類型特征進行分析可以得到一些基本的類型信息,而中間語句中的表達式是由多個操作數(shù)和運算符構成的,不同的運算符對參與運算的各個操作數(shù)之間的類型存在一定的類型制約關系。因此,可以對這些制約關系進行分析并將其作為中間語言指令類型的推導規(guī)則,由己知類型信息的操作數(shù)推導得到未知類型信息的操作數(shù)的類型,從而得到中間語言的類型屬性。而類型屬性中的類型信息很有可能是一些基本類型的集合,這種類型的信息并不是類型分析的最終目標,必須通過一定的方法盡可能地得到更小的類型信息集合即更精確的類型。最后,通過對基本類型信息的綜合分析,對部分復合類型進行重構。綜合上述描述,類型分析框架如圖5所示,此框架也是論文研究的整體框架。///指令類型型型型型型型型型型
【參考文獻】:
期刊論文
[1]非純變量下標的數(shù)組類型恢復[J]. 陳凱明,劉宗田. 計算機工程與設計. 2001(05)
[2]8086C逆編譯數(shù)據(jù)類型恢復技術[J]. 劉宗田,李力. 計算機研究與發(fā)展. 1992(04)
碩士論文
[1]反編譯中的數(shù)據(jù)類型恢復問題[D]. 夏靚.東南大學 2005
本文編號:3069850
【文章來源】:戰(zhàn)略支援部隊信息工程大學河南省
【文章頁數(shù)】:71 頁
【學位級別】:碩士
【部分圖文】:
反編譯的典型階段長期以來,微軟系列的操作系統(tǒng)在辦公、家庭計算機中占據(jù)主導地位,運行于這些計
uuu:R3二 Rl;;;u:R3二 Rl;;;u:R4二 Rl<<R2;;;圖4表達式傳播示例如圖4所示的中間語句序列(a)中,由于(l)、(2)兩處都對Rl進行了定義,不滿足條件1,因此不能進行傳播;中間語句序列(b)中語句(l)處對R3的重新定義改變了R3的值,因此不能進行傳播;中間語句序列(c)中語句51與u、s2與u都滿足兩個傳播條件,因此可以進行傳播,傳播結果為 R4:(Rl+2)<<(R3)。2.無用代碼刪除在經(jīng)過表達式傳播之后,中間代碼中的一些語句不再影響程序的執(zhí)行,成為冗余的指令
類型信息進行重構的過程。其基本思想是根據(jù)變量的使用方式發(fā)掘隱含在程序中的數(shù)據(jù)類型信息,首先分析基本數(shù)據(jù)類型,之后在基本數(shù)據(jù)類型分析結果的基礎上進行復合數(shù)據(jù)類型的分析。本文中類型分析的目標是標準C語言中的基本類型(int,shortini,unsignedini等)和部分復合類型(數(shù)組、結構體)。首先通過對單條ARM匯編指令的類型特征進行分析可以得到一些基本的類型信息,而中間語句中的表達式是由多個操作數(shù)和運算符構成的,不同的運算符對參與運算的各個操作數(shù)之間的類型存在一定的類型制約關系。因此,可以對這些制約關系進行分析并將其作為中間語言指令類型的推導規(guī)則,由己知類型信息的操作數(shù)推導得到未知類型信息的操作數(shù)的類型,從而得到中間語言的類型屬性。而類型屬性中的類型信息很有可能是一些基本類型的集合,這種類型的信息并不是類型分析的最終目標,必須通過一定的方法盡可能地得到更小的類型信息集合即更精確的類型。最后,通過對基本類型信息的綜合分析,對部分復合類型進行重構。綜合上述描述,類型分析框架如圖5所示,此框架也是論文研究的整體框架。///指令類型型型型型型型型型型
【參考文獻】:
期刊論文
[1]非純變量下標的數(shù)組類型恢復[J]. 陳凱明,劉宗田. 計算機工程與設計. 2001(05)
[2]8086C逆編譯數(shù)據(jù)類型恢復技術[J]. 劉宗田,李力. 計算機研究與發(fā)展. 1992(04)
碩士論文
[1]反編譯中的數(shù)據(jù)類型恢復問題[D]. 夏靚.東南大學 2005
本文編號:3069850
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/3069850.html
最近更新
教材專著