[發明專利]反編譯數據的處理方法和裝置有效
| 申請號: | 201510994114.7 | 申請日: | 2015-12-25 |
| 公開(公告)號: | CN106919429B | 公開(公告)日: | 2021-05-04 |
| 發明(設計)人: | 徐勝 | 申請(專利權)人: | 阿里巴巴集團控股有限公司 |
| 主分類號: | G06F8/53 | 分類號: | G06F8/53 |
| 代理公司: | 北京博浩百睿知識產權代理有限責任公司 11134 | 代理人: | 宋子良 |
| 地址: | 英屬開曼群島大開*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 反編譯 數據 處理 方法 裝置 | ||
本發明公開了一種反編譯數據的處理方法和裝置。其中,該方法包括:創建三維數組模型,三維數組模型包括:第一維數組、第二維數組和第三維數組;在將應用程序反編譯為反編譯程序之后,遍歷反編譯程序所包含的多個方法,獲取每個方法的標識信息,其中,方法的標識信息包括:方法類名和方法簽名信息;獲取每個方法對應的多維向量對象,以及每個多維向量對象之間的調用關系;將每個方法的標識信息、對應的多維向量對象以及每個多維向量對象之間的調用關系分別記錄至第一維數組中、第二維數組中和第三維數組中。本發明解決了現有技術將基本塊結構體以指針方式構建函數調用關系,在全分支覆蓋執行方面遍歷速度慢的技術問題。
技術領域
本發明涉及反編譯數據領域,具體而言,涉及一種反編譯數據的處理方法和裝置。
背景技術
Android程序運行在Dalvik虛擬機中,由Dalvik虛擬機解釋執行Android程序的Dalvik指令,Dalvik指令經過反編譯輸出方便人閱讀的smali指令。
對Android程序進行執行流追蹤,一般分為兩類:靜態追蹤和動態追蹤。動態追蹤即運行時追蹤,存在執行分支覆蓋不全的缺點;靜態追蹤分支覆蓋全,但是,涉及程序的切片技術和函數調用追蹤技術。現有的靜態追蹤技術中會把切片后的基本塊以指針形式串接起來表達函數調用關系。
現有技術將基本塊結構體以指針方式構建函數調用關系,雖然,能解決從某個函數出發正向深度遞歸遍歷某個分支執行流,但是,對于定位執行入口,全分支覆蓋執行,反向追蹤執行方面加重了程序設計、編碼的難度,使程序不易理解,降低了程序穩定性、可擴展性和靈活性。
針對現有技術將基本塊結構體以指針方式構建函數調用關系,在全分支覆蓋執行方面遍歷速度慢的技術問題,目前尚未提出有效的解決方案。
發明內容
本發明實施例提供了一種反編譯數據的處理方法和裝置,以至少解決現有技術將基本塊結構體以指針方式構建函數調用關系,在全分支覆蓋執行方面遍歷速度慢的技術問題。
根據本發明實施例的一個方面,提供了一種反編譯數據的處理方法,包括:創建三維數組模型,三維數組模型包括:第一維數組、第二維數組和第三維數組;在將應用程序反編譯為反編譯程序之后,遍歷反編譯程序所包含的多個方法,獲取每個方法的標識信息,其中,方法的標識信息包括:方法類名和方法簽名信息;獲取每個方法對應的多維向量對象,以及每個多維向量對象之間的調用關系;將每個方法的標識信息、對應的多維向量對象以及每個多維向量對象之間的調用關系分別記錄至第一維數組中、第二維數組中和第三維數組中。
根據本發明實施例的另一方面,還提供了一種反編譯數據的處理裝置,包括:創建模塊,用于創建三維數組模型,裝置三維數組模型包括:第一維數組、第二維數組和第三維數組;第一獲取模塊,用于在將應用程序反編譯為反編譯程序之后,遍歷裝置反編譯程序所包含的多個方法,獲取每個方法的標識信息,其中,裝置方法的標識信息包括:方法類名和方法簽名信息;第二獲取模塊,用于獲取裝置每個方法對應的多維向量對象,以及裝置每個多維向量對象之間的調用關系;記錄模塊,用于將裝置每個方法的裝置標識信息、對應的裝置多維向量對象以及每個多維向量對象之間的調用關系分別記錄至裝置第一維數組中、裝置第二維數組中和裝置第三維數組中。
在本發明實施例中,可以在將應用程序反編譯為反編譯程序之后,遍歷反編譯程序所包含的多個方法,獲取每個方法的標識信息,每個方法對應的多維向量對象和每個多維向量對象之間的調用關系,并將每個方法的標識信息,對應的多維向量對象和每個多維向量對象之間的調用關系記錄至創建好的三維數組模型。
容易注意到,由于可以通過將遍歷反編譯程序獲取到每個方法的標識信息,對應的多維向量對象和每個多維向量對象之間的調用關系全部記錄到創建的三維數組模型中,實現根據方法的類名和簽名信息從三維數組模型中快速定位到多維向量對象的目的,因此,通過本申請實施例所提供的方案,可以根據需要的方法的類名和簽名信息從三維數組模型中快速定位到多維向量對象,然后對所有向量采用深度優先遞歸遍歷,完成全分支覆蓋。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于阿里巴巴集團控股有限公司,未經阿里巴巴集團控股有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201510994114.7/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種螺旋高頻速熱型水龍頭
- 下一篇:一種球墨管件搶修用哈夫節
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





