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