ARM設(shè)備固件裝載基址定位的研究
發(fā)布時(shí)間:2024-03-13 04:04
嵌入式設(shè)備已經(jīng)遍及生活生產(chǎn)的各個(gè)方面,所有這些設(shè)備都運(yùn)行著固件,固件和傳統(tǒng)軟件一樣通常有缺陷或者漏洞,使得設(shè)備存在安全威脅,甚至可能導(dǎo)致設(shè)備失效。逆向工程是對(duì)嵌入式設(shè)備固件進(jìn)行安全性分析的常用方法,反匯編是整個(gè)逆向工程的基礎(chǔ)和重要組成部分。對(duì)固件進(jìn)行反匯編時(shí),需要獲得設(shè)備的處理器類型和固件裝載基址,通過(guò)拆解設(shè)備或者查閱設(shè)備手冊(cè)可以了解設(shè)備的處理器類型,但固件的裝載基址卻不容易確定。輸入正確的固件裝載基址才能使反匯編工具建立準(zhǔn)確的代碼交叉引用和數(shù)據(jù)交叉引用,這些交叉引用信息對(duì)于分析固件的行為、評(píng)估固件的安全性具有非常重要的意義。然而,大部分嵌入式系統(tǒng)的固件是非標(biāo)準(zhǔn)的、格式未知的二進(jìn)制文件,據(jù)我們所知,目前尚不存在自動(dòng)化工具或方法可以獲得這類文件的裝載基址。據(jù)統(tǒng)計(jì)當(dāng)前大約有63%的嵌入式設(shè)備處理器是基于ARM架構(gòu)的,因此本文以ARM體系結(jié)構(gòu)下的嵌入式設(shè)備固件文件為研究對(duì)象,通過(guò)研究固件中二進(jìn)制函數(shù)指令特點(diǎn)、函數(shù)入口表、字符串存儲(chǔ)規(guī)律以及引用方式、文字池的存儲(chǔ)規(guī)律等方面內(nèi)容,本文提出了4種定位ARM設(shè)備固件裝載基址的方法,主要貢獻(xiàn)如下:(1)根據(jù)函數(shù)入口表和二進(jìn)制函數(shù)序言的特點(diǎn),提出了基于函...
【文章頁(yè)數(shù)】:127 頁(yè)
【學(xué)位級(jí)別】:博士
【文章目錄】:
摘要
ABSTRACT
第1章 緒論
1.1 研究背景
1.1.1 逆向工程
1.1.2 針對(duì)固件安全的逆向工程
1.1.3 固件裝載基址定位的意義
1.2 國(guó)內(nèi)外研究現(xiàn)狀及發(fā)展趨勢(shì)
1.2.1 固件逆向工程的關(guān)鍵步驟
1.2.2 固件的校驗(yàn)及分析
1.2.3 人工定位固件裝載基址的方法
1.3 本文的主要研究?jī)?nèi)容
1.4 論文的組織結(jié)構(gòu)
第2章 裝載基址定位相關(guān)技術(shù)
2.1 文件裝載的基本概念
2.2 本文相關(guān)的ARM指令
2.2.1 函數(shù)序言常見指令
2.2.2 ARM處理器狀態(tài)切換指令BX
2.2.3 MOV指令的立即數(shù)限制
2.2.4 LDR指令對(duì)字符串地址加載
2.2.5 ADR指令對(duì)字符串的引用
2.3 固件裝載基址的人工定位方法
2.3.1 基于跳轉(zhuǎn)表定位裝載基址
2.3.2 基于指令中立即數(shù)定位裝載基址
2.3.3 定位裝載基址的其他方法
2.4 本文中用到的工具軟件
2.4.1 固件解壓工具
2.4.2 反匯編工具
2.4.3 二進(jìn)制文件查看工具
2.5 本章小結(jié)
第3章 基于函數(shù)入口表的裝載基址定位
3.1 引言
3.2 函數(shù)入口表的識(shí)別
3.2.1 函數(shù)入口表的產(chǎn)生及其規(guī)律
3.2.2 函數(shù)入口表識(shí)別算法FIND-FET
3.2.3 函數(shù)入口表誤判分析
3.3 利用函數(shù)入口表定位裝載基址
3.3.1 ARM平臺(tái)下二進(jìn)制函數(shù)指令規(guī)律
3.3.2 DBMFET算法
3.4 實(shí)驗(yàn)結(jié)果與分析
3.4.1 識(shí)別函數(shù)入口表的實(shí)驗(yàn)結(jié)果
3.4.2 定位裝載基址的實(shí)驗(yàn)結(jié)果及分析
3.4.3 0xB5陷阱及解決方法
3.5 本章小結(jié)
第4章 基于字符串地址集合的裝載基址定位
4.1 引言
4.2 固件中的字符串及其地址識(shí)別
4.2.1 固件中的字符串及其識(shí)別算法
4.2.2 字符串地址的識(shí)別
4.3 利用字符串地址匹配定位裝載基址
4.4 實(shí)驗(yàn)結(jié)果與分析
4.4.1 字符串和LDR指令中地址識(shí)別實(shí)驗(yàn)結(jié)果
4.4.2 定位裝載基址的實(shí)驗(yàn)結(jié)果及分析
4.5 本章小結(jié)
第5章 基于文字池匹配的裝載基址定位
5.1 引言
5.2 字符串和文字池識(shí)別
5.2.1 固件中的字符串
5.2.2 文字池的識(shí)別
5.3 利用文字池匹配定位裝載基址
5.4 實(shí)驗(yàn)結(jié)果與分析
5.4.1 字符串和文字池識(shí)別實(shí)驗(yàn)結(jié)果
5.4.2 定位裝載基址實(shí)驗(yàn)結(jié)果及分析
5.5 本章小結(jié)
第6章 基于字符串存儲(chǔ)長(zhǎng)度分組匹配的裝載基址定位
6.1 引言
6.2 ARM固件加載字符串地址的方式
6.3 利用字符串存儲(chǔ)長(zhǎng)度分組匹配定位裝載基址
6.4 實(shí)驗(yàn)結(jié)果與分析
6.4.1 字符串和LDR指令中地址識(shí)別實(shí)驗(yàn)結(jié)果
6.4.2 定位裝載基址的實(shí)驗(yàn)結(jié)果
6.5 本章小結(jié)
第7章 定位固件裝載基址方法對(duì)比
7.1 方法總結(jié)
7.2 失敗原因分析
7.3 效率測(cè)試與對(duì)比分析
7.3.1 裝載基址定位方法的效率測(cè)試
7.3.2 效率對(duì)比
7.4 本章小結(jié)
結(jié)論
1 本文主要工作和創(chuàng)新點(diǎn)
2 下一步工作展望
參考文獻(xiàn)
附錄
附錄A IDC腳本
附錄B 實(shí)驗(yàn)結(jié)果
B.1 基于函數(shù)入口表的裝載基址定位方法實(shí)驗(yàn)結(jié)果
B.2 基于字符串地址集合的裝載基址定位方法實(shí)驗(yàn)結(jié)果
B.3 基于文字池匹配的裝載基址定位方法實(shí)驗(yàn)結(jié)果
B.4 基于字符串存儲(chǔ)長(zhǎng)度分組匹配的裝載基址定位方法實(shí)驗(yàn)結(jié)果
攻讀學(xué)位期間發(fā)表論文與研究成果清單
致謝
本文編號(hào):3927159
【文章頁(yè)數(shù)】:127 頁(yè)
【學(xué)位級(jí)別】:博士
【文章目錄】:
摘要
ABSTRACT
第1章 緒論
1.1 研究背景
1.1.1 逆向工程
1.1.2 針對(duì)固件安全的逆向工程
1.1.3 固件裝載基址定位的意義
1.2 國(guó)內(nèi)外研究現(xiàn)狀及發(fā)展趨勢(shì)
1.2.1 固件逆向工程的關(guān)鍵步驟
1.2.2 固件的校驗(yàn)及分析
1.2.3 人工定位固件裝載基址的方法
1.3 本文的主要研究?jī)?nèi)容
1.4 論文的組織結(jié)構(gòu)
第2章 裝載基址定位相關(guān)技術(shù)
2.1 文件裝載的基本概念
2.2 本文相關(guān)的ARM指令
2.2.1 函數(shù)序言常見指令
2.2.2 ARM處理器狀態(tài)切換指令BX
2.2.3 MOV指令的立即數(shù)限制
2.2.4 LDR指令對(duì)字符串地址加載
2.2.5 ADR指令對(duì)字符串的引用
2.3 固件裝載基址的人工定位方法
2.3.1 基于跳轉(zhuǎn)表定位裝載基址
2.3.2 基于指令中立即數(shù)定位裝載基址
2.3.3 定位裝載基址的其他方法
2.4 本文中用到的工具軟件
2.4.1 固件解壓工具
2.4.2 反匯編工具
2.4.3 二進(jìn)制文件查看工具
2.5 本章小結(jié)
第3章 基于函數(shù)入口表的裝載基址定位
3.1 引言
3.2 函數(shù)入口表的識(shí)別
3.2.1 函數(shù)入口表的產(chǎn)生及其規(guī)律
3.2.2 函數(shù)入口表識(shí)別算法FIND-FET
3.2.3 函數(shù)入口表誤判分析
3.3 利用函數(shù)入口表定位裝載基址
3.3.1 ARM平臺(tái)下二進(jìn)制函數(shù)指令規(guī)律
3.3.2 DBMFET算法
3.4 實(shí)驗(yàn)結(jié)果與分析
3.4.1 識(shí)別函數(shù)入口表的實(shí)驗(yàn)結(jié)果
3.4.2 定位裝載基址的實(shí)驗(yàn)結(jié)果及分析
3.4.3 0xB5陷阱及解決方法
3.5 本章小結(jié)
第4章 基于字符串地址集合的裝載基址定位
4.1 引言
4.2 固件中的字符串及其地址識(shí)別
4.2.1 固件中的字符串及其識(shí)別算法
4.2.2 字符串地址的識(shí)別
4.3 利用字符串地址匹配定位裝載基址
4.4 實(shí)驗(yàn)結(jié)果與分析
4.4.1 字符串和LDR指令中地址識(shí)別實(shí)驗(yàn)結(jié)果
4.4.2 定位裝載基址的實(shí)驗(yàn)結(jié)果及分析
4.5 本章小結(jié)
第5章 基于文字池匹配的裝載基址定位
5.1 引言
5.2 字符串和文字池識(shí)別
5.2.1 固件中的字符串
5.2.2 文字池的識(shí)別
5.3 利用文字池匹配定位裝載基址
5.4 實(shí)驗(yàn)結(jié)果與分析
5.4.1 字符串和文字池識(shí)別實(shí)驗(yàn)結(jié)果
5.4.2 定位裝載基址實(shí)驗(yàn)結(jié)果及分析
5.5 本章小結(jié)
第6章 基于字符串存儲(chǔ)長(zhǎng)度分組匹配的裝載基址定位
6.1 引言
6.2 ARM固件加載字符串地址的方式
6.3 利用字符串存儲(chǔ)長(zhǎng)度分組匹配定位裝載基址
6.4 實(shí)驗(yàn)結(jié)果與分析
6.4.1 字符串和LDR指令中地址識(shí)別實(shí)驗(yàn)結(jié)果
6.4.2 定位裝載基址的實(shí)驗(yàn)結(jié)果
6.5 本章小結(jié)
第7章 定位固件裝載基址方法對(duì)比
7.1 方法總結(jié)
7.2 失敗原因分析
7.3 效率測(cè)試與對(duì)比分析
7.3.1 裝載基址定位方法的效率測(cè)試
7.3.2 效率對(duì)比
7.4 本章小結(jié)
結(jié)論
1 本文主要工作和創(chuàng)新點(diǎn)
2 下一步工作展望
參考文獻(xiàn)
附錄
附錄A IDC腳本
附錄B 實(shí)驗(yàn)結(jié)果
B.1 基于函數(shù)入口表的裝載基址定位方法實(shí)驗(yàn)結(jié)果
B.2 基于字符串地址集合的裝載基址定位方法實(shí)驗(yàn)結(jié)果
B.3 基于文字池匹配的裝載基址定位方法實(shí)驗(yàn)結(jié)果
B.4 基于字符串存儲(chǔ)長(zhǎng)度分組匹配的裝載基址定位方法實(shí)驗(yàn)結(jié)果
攻讀學(xué)位期間發(fā)表論文與研究成果清單
致謝
本文編號(hào):3927159
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/3927159.html
最近更新
教材專著