[發明專利]應用程序脫殼方法及裝置有效
| 申請號: | 201710526710.1 | 申請日: | 2017-06-30 |
| 公開(公告)號: | CN107392018B | 公開(公告)日: | 2020-09-15 |
| 發明(設計)人: | 王加水 | 申請(專利權)人: | 阿里巴巴集團控股有限公司 |
| 主分類號: | G06F21/56 | 分類號: | G06F21/56 |
| 代理公司: | 北京博思佳知識產權代理有限公司 11415 | 代理人: | 林祥 |
| 地址: | 英屬開曼群島大開*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 應用程序 脫殼 方法 裝置 | ||
一種應用程序脫殼方法及裝置,用于提供一種通用的代碼脫殼方案。方法包括:通過安卓虛擬機DVM將待脫殼應用程序的加殼Dex代碼加載到內存中;對于所述待脫殼應用程序的目標類,定位所述目標類對應的Dex代碼所處的內存片段;在主動加載時刻,將所述內存片段中的Dex代碼主動加載到所述DVM使用的內存對象中,所述主動加載時刻在所述加殼Dex代碼被全部加載到所述內存中之后,且在所述內存中的Dex代碼被運行結束之前;將所述內存對象中的Dex代碼還原為所述目標類對應的脫殼Dex代碼,并生成包含所述脫殼Dex代碼的Dex文件。
技術領域
本申請涉及軟件技術領域,尤其涉及一種應用程序脫殼方法及裝置。
背景技術
為防止應用(Application,APP)的代碼被反匯編或破解,一般需要對APP的代碼進行加殼。隨著移動互聯網的發展,一些惡意APP也使用了加殼技術,使得安全分析者較難實現對惡意APP的成功識別。為此,目前存在對各類加殼APP的加殼代碼進行脫殼的需求。當前,對APP的代碼進行加殼的規則多種多樣,還沒有出現一種通用的脫殼方案。
發明內容
為克服相關技術中存在的問題,本申請實施例提供一種應用程序脫殼方法及裝置。
根據本申請實施例的第一方面,提供一種應用程序脫殼方法,包括:
通過安卓虛擬機DVM將待脫殼應用程序的加殼Dex代碼加載到內存中;
對于所述待脫殼應用程序的目標類,定位所述目標類對應的Dex代碼所處的內存片段;
在主動加載時刻,將所述內存片段中的Dex代碼主動加載到所述DVM使用的內存對象中,所述主動加載時刻在所述加殼Dex代碼被全部加載到所述內存中之后,且在所述內存中的Dex代碼被運行結束之前;
將所述內存對象中的Dex代碼還原為所述目標類對應的脫殼Dex代碼,并生成包含所述脫殼Dex代碼的Dex文件。
根據本申請實施例的第二方面,提供一種應用程序脫殼裝置,包括:
DVM加載單元,通過安卓虛擬機DVM將待脫殼應用程序的加殼Dex代碼加載到內存中;
定位單元,對于所述待脫殼應用程序的目標類,定位所述目標類對應的Dex代碼所處的內存片段;
類主動加載單元,在主動加載時刻,將所述內存片段中的Dex代碼主動加載到所述DVM使用的內存對象中,所述主動加載時刻在所述加殼Dex代碼被全部加載到所述內存中之后,且在所述內存中的Dex代碼被運行結束之前;及,
Dex生成單元,將所述內存對象中的Dex代碼還原為所述目標類對應的脫殼Dex代碼,并生成包含所述脫殼Dex代碼的Dex文件。
根據本申請實施例的第三方面,提供一種計算機可讀存儲介質,其上存儲有計算機程序,該程序被處理器執行時實現以下步驟:
通過安卓虛擬機DVM將待脫殼應用程序的加殼Dex代碼加載到內存中;
對于所述待脫殼應用程序的目標類,定位所述目標類對應的Dex代碼所處的內存片段;
在主動加載時刻,將所述內存片段中的Dex代碼主動加載到所述DVM使用的內存對象中,所述主動加載時刻在所述加殼Dex代碼被全部加載到所述內存中之后,且在所述內存中的Dex代碼被運行結束之前;
將所述內存對象中的Dex代碼還原為所述目標類對應的脫殼Dex代碼,并生成包含所述脫殼Dex代碼的Dex文件。
通過以上技術方案可以看出,本申請提供了一種通用對加殼代碼進行脫殼的方案,可以不受APP的加殼規則的限制,實現對大多數APP的脫殼過程,從而有助于分析出惡意APP。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于阿里巴巴集團控股有限公司,未經阿里巴巴集團控股有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710526710.1/2.html,轉載請聲明來源鉆瓜專利網。





