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