[發明專利]一種基于逆向工程的安卓閉源服務類型信息提取方法在審
| 申請號: | 202110557657.8 | 申請日: | 2021-05-21 |
| 公開(公告)號: | CN113296834A | 公開(公告)日: | 2021-08-24 |
| 發明(設計)人: | 曹春;廖祥森;馬曉星;徐經緯 | 申請(專利權)人: | 南京大學 |
| 主分類號: | G06F8/74 | 分類號: | G06F8/74 |
| 代理公司: | 南京樂羽知行專利代理事務所(普通合伙) 32326 | 代理人: | 李玉平 |
| 地址: | 210023 江蘇*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 逆向 工程 安卓閉源 服務 類型 信息 提取 方法 | ||
1.一種基于逆向工程的安卓閉源服務類型信息提取方法,其特征在于,包括如下步驟:
步驟一、從安卓ROM中提取出服務相關編譯產物所處文件;
步驟二、結合服務所處應用或進程的配置信息,從編譯產物所處文件中提取出待測服務通信序列化函數的字節碼與ARM匯編代碼;
步驟三、從字節碼或ARM匯編代碼中還原服務通信序列化函數的控制流結構,以提取出服務接口的編碼與對應的序列化指令串;
步驟四、從字節碼與ARM匯編的序列化指令串中還原出Parcel序列化API調用,以此推斷出服務接口參數與返回值的類型信息。
2.根據權利要求1所述的基于逆向工程的安卓閉源服務類型信息提取方法,其特征在于,所述步驟一提取服務相關編譯產物所處文件,Java應用服務對應于APK文件、Java系統服務對應于DEX文件、Native系統服務對應于ELF與init配置文件。
3.根據權利要求1所述的基于逆向工程的安卓閉源服務類型信息提取方法,其特征在于,所述步驟二中服務通信序列化函數位于Binder通信協議下的服務端Stub中,函數名為onTransact,負責將進程間調用反序列化為對本地方法的調用參數,并將結果反序列化以返回給客戶端Proxy;
提取所述Java應用服務的通信序列化onTransact函數,先從APK的AndroidManifest配置文件中篩選出暴露服務名稱與所在類名,然后通過逆向數據流分析,計算該服務類onBind方法返回值的具體類型,從該返回值的父類中即可確定服務端Stub類名。
4.根據權利要求2所述的基于逆向工程的安卓閉源服務類型信息提取方法,其特征在于,提取所述Java系統服務的通信序列化onTransact函數,先讀取system_server進程的虛擬內存使用情況表,篩選出system_server進程所加載的字節碼文件,從這些字節碼文件中根據類名與函數簽名確定服務端Stub類名。
5.根據權利要求2所述的基于逆向工程的安卓閉源服務類型信息提取方法,其特征在于,提取所述Native系統服務的的通信序列化onTransact函數,先根據init配置文件確定服務所在進程的可執行文件,再提取出可執行文件所依賴的動態鏈接庫文件,從這些動態鏈接庫文件的符號表中根據函數簽名篩選出onTransact函數的地址。
6.根據權利要求1所述的基于逆向工程的安卓閉源服務類型信息提取方法,其特征在于,所述步驟三中,控制流結構包括switch-case結構與return語句,所述switch-case結構以接口編號code為參數,每個分支對應該接口的參數與返回值的序列化過程,一個分支中可能存在多條以return語句結尾的指令序列,返回值為零的指令序列代表對應的數據滿足接口類型約束。
7.根據權利要求1所述的基于逆向工程的安卓閉源服務類型信息提取方法,其特征在于,從所述字節碼中還原switch-case結構,該switch-case結構編譯后生成記錄分支跳轉條件的sparse-switch指令與標記分支起始指令的sswitch標簽;
從所述ARM匯編中還原switch-case結構,編譯時根據該結構的分支跳轉數量,若分支數小于4則生成多重分支跳轉結構,否則生成jump table跳表;
所述多重分支跳轉結構通過組合多個CMP指令實現,這些CMP指令以保存有接口編號code的寄存器為參數,分支跳轉條件為立即數;
所述跳表是一個以分支數量為長度的數組,數組項代表了跳轉分支目標地址的計算方式:在ARM32中,通過TBB或TBH指令使用跳表,相應的數組寬度為1個或2個字節,跳表數據內容緊隨該指令之后,跳轉目標地址的計算公式為“跳表基址+ 2 * 數組項”;在AArch64中,先通過指令計算跳表基址,讀取對應數組項保存到寄存器中,最后使用BR指令跳轉到目標地址,跳轉目標地址的計算公式為“跳表基址+數組項”。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京大學,未經南京大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110557657.8/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:多角度復雜牛腿十字型柱的制作方法
- 下一篇:一種膠印機定距自動裁紙裝置





