新四季網

一種固件代碼反彙編中端模式差異的處理方法

2023-04-28 13:26:16

專利名稱:一種固件代碼反彙編中端模式差異的處理方法
技術領域:
本發明涉及一種涉及計算機學科中的硬體結構、固件逆向工程技術,尤其是涉及一種固件代碼反彙編中端模式差異的處理方法。
背景技術:
逆向工程技術是指分析特定目標系統的結構組成及其相互關係並建立更高級更具抽象化的系統的過程。固件代碼的反彙編就是把目標固件中的機器代碼轉換為彙編代碼的過程,亦即從低級語言向高級語言的轉換,該技術被廣泛地運用於計算機軟體破解、病毒分析以及軟體漢化等領域。
固件逆向工程是逆向工程技術的重要分支,其特徵主要是由固件的差異引起的,計算機中的端模式差異是一個典型例子。端模式差異,簡而言之,就是計算機中內存中的數據存放順序不同數據的高位保存在內存的低地址,而數據的低位保存在內存的高地址中,這樣的存儲模式稱為大端(Big-Endian)模式;與之相反,數據的高位保存在內存的高地址,而數據的低位保存在內存的低地址中,這樣的存儲模式稱為小端(Little-Endian)模式。由於內存中數據的存放方式的差異,固件代碼反彙編的結果也會大相逕庭。儘管近年來針對固件的反彙編工具不斷湧現,其中有IDA、W32Dasm等,但是這些工具大多沒有明確說明解決端模式差異的解決方案。

發明內容
本發明的上述技術問題主要是通過下述技術方案得以解決的提出問題計算機端模式差異,大端和小端會影響機器碼的真實順序和值。一般地,在反彙編之前要做的是將代碼從固件之中提取出來,根據給定的硬體,可以很容易得知其內部的端模式,但是去除硬體的約束,任意給出一段機器碼,怎樣獲知其運行環境下的端模式信息進而合理地反彙編?分析問題在運行環境確定,即微處理器型號已知的情況下,我們可以直接得到兩種情況即兩種端模式下的高級指令,分別進行語法語義判斷,選取其中最合理的作為最優解,因為原始機器碼錶徵的高級程序顯然是確定並且在語法語義上是正確的,這樣得到的最優解顯然也是最接近原始高級程序的。解決問題反彙編的流程是由二進位代碼得到指令,二進位代碼的順序直接影響最終結果。而端模式的差異恰恰體現在機器碼的順序差異方面。因此解決問題的思路即在反彙編處理(靜態掃描或者動態掃描)之前調整機器碼為合理的順序。因此,本發明涉及的一種固件代碼反彙編中端模式差異的處理方法,其特徵在於,包括以下步驟步驟I :由初始化模塊將從晶片中提取的機器碼存放在數組C中;通常情況下機器碼樣本為二進位形式或十六進位形式,若為二進位形式,則將其轉換為十六進位形式;
步驟2 :由檢測模塊進行機器碼檢測,即檢測機器碼的長度L,保證L是N的整數倍,若不足則補零,將步驟一中的數組C轉換成數組D。其中N是依據不同硬體情況決定,若硬體的存儲單元大小為Mbit,則N=M/2 ;步驟3 :由局部逆置模塊將步驟2中的數組D中的元素以每N個元素為一個單元U,單元內部對半調換,即前N/2個元素和後N/2個元素整體調換位置;步驟4:由全局逆置模塊將步驟3中的單元U編號為0、1、……、n_l,分別將編號之和為n-1的兩個單元的內容進行逆置,即0單元和n-1單元交換內容;1單元和n-2單元交換內容;2單元和(n-3)單元交換內容......m單元和(n-m-1)單元交換內容。因此,本發明具有如下優點本發明根據硬體不同產生的端模式差異,調整機器代碼順序,有助於提升反彙編的準確度,並能有效解決各種微處理器的反彙編機器碼的正確性問題。


圖I是本發明中Big-Endian模式下內存和數據映射示意圖。圖2是本發明中Little-Endian模式下內存和數據映射示意圖。圖3是本發明中Little-Endian模式下機器碼處理示意圖。
具體實施例方式下面通過實施例,並結合附圖,對本發明的技術方案作進一步具體的說明。實施例本發明的方法的目的是解決反彙編過程中微處理器端模式的差異引起的結果的不準確性,為了方便闡述,現在以M16C微處理器的反彙編為例進行說明。圖I和圖2分別是Big-Endian模式和Little-Endian模式下的內存和數據的映射示意圖,從提取機器碼的角度出發,我們默認提取出來的機器碼的內存實際地址是從小到大遞增的方向,那麼在Big-Endian模式下,由於地址的方向性未被破壞,因此可以直接進行下一步的反彙編;而在Little-Endian模式下,機器碼的地址遞增的方向與真實指令的字節方向相反,所以需要進行處理。在Little-Endian模式下,考慮M16C嵌入式微處理器,其內存單元為8位,處理的過程如圖3所示,假設提取的機器碼用十六進位表示為「0123456789ABCDEF02468ACE」,那麼在Little-Endian模式下,進行反彙編的代碼應當為「CE8A4602EFCDAB8967452301 」。
經過分析發現,這一步的過程等價為
權利要求
1. 一種固件代碼反彙編中端模式差異的處理方法,其特徵在於,包括以下步驟 步驟I :由初始化模塊將從晶片中提取的機器碼存放在數組C中;通常情況下機器碼樣本為二進位形式或十六進位形式,若為二進位形式,則將其轉換為十六進位形式; 步驟2 :由檢測模塊進行機器碼檢測,即檢測機器碼的長度L,保證L是N的整數倍,若不足則補零,將步驟一中的數組C轉換成數組D,N是依據不同硬體情況決定,若硬體的存儲單元大小為M bit,則N = M / 2 ; 步驟3 由局部逆置模塊將步驟2中的數組D中的元素以每N個元素為一個單元U,單元內部對半調換,即前N/2個元素和後N/2個元素整體調換位置; 步驟4:由全局逆置模塊將步驟3中的單元U編號為0、1、……、n-l,分別將編號之和為η-l的兩個單元的內容進行逆置,即O單元和η-l單元交換內容;1單元和n-2單元交換內容;2單元和(n-3)單元交換內容......m單元和(n-m-1)單元交換內容。
全文摘要
本發明涉及一種固件代碼反彙編中端模式差異的處理方法。首先初始化機器碼;然後由檢測模塊進行機器碼檢測,檢測機器碼的長度L,保證L是N的整數倍,若不足則補零,將數組C轉換成數組D。其中N是依據不同硬體情況決定,若硬體的存儲單元大小為Mbit,則N=M/2;再由局部逆置模塊將數組D中的元素以每N個為一個單元U,單元內部對半調換;最後由全局逆置模塊將單元U編號為0、1、……、n-1,分別將編號之和為n-1的兩個單元的內容進行逆置。利用本發明可以有效解決各種微處理器的反彙編機器碼的正確性問題,在反彙編之前對智能電能表內部MCU晶片提取的機器碼的順序加以調整,提高最終生成的高級語言的精確度。
文檔編號G06F9/45GK102968330SQ20121048930
公開日2013年3月13日 申請日期2012年11月27日 優先權日2012年11月27日
發明者劉金碩, 王謝兵, 李少騰, 章喻龍, 劉源, 劉天曉, 王亞鴿, 曾秋梅 申請人:武漢大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀