[發明專利]一種安卓應用程序防逆向破解的加固方法、系統及解密方法有效
| 申請號: | 201611265457.0 | 申請日: | 2016-12-30 |
| 公開(公告)號: | CN106778103B | 公開(公告)日: | 2020-03-13 |
| 發明(設計)人: | 鄭偉;龔蔚 | 申請(專利權)人: | 上海掌門科技有限公司 |
| 主分類號: | G06F21/14 | 分類號: | G06F21/14 |
| 代理公司: | 北京辰權知識產權代理有限公司 11619 | 代理人: | 郎志濤 |
| 地址: | 201203 上海*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 應用程序 逆向 破解 加固 方法 系統 解密 | ||
1.一種安卓應用程序防逆向破解的加固方法,包括以下步驟:
使用安卓安裝包編譯工具對安卓應用程序進行反向匯編,生成中間文件;
遍歷生成中間文件中的類,對需要加載的類設置對應的類構造器;
抽取出除了類構造器和初始化函數之外的所有中間文件進行加密并存儲,對所述中間文件進行抽取操作,生成空殼程序文件和入口地址文件,
調用動態鏈接庫對可執行文件進行加固;以及
將加固文件寫入空殼程序文件中;其中
所述設置對應的類構造器包括:遍歷smali文件中的類函數,確定那些類是需要執行的,自動添加<clinit>標記;當讀到<clinit>標記時,表示要指引執行這段程序。
2.根據權利要求1所述的方法,在抽取出除了類構造器和初始化函數之外的所有中間文件進行加密之前,還包括:使用安卓安裝包編譯工具對上述設置了類構造器的中間文件進行匯編處理,重新編譯成可執行文件。
3.根據權利要求1所述的方法,對所述中間文件進行加密還包括:
對所述入口地址文件進行修改操作,生成修改入口。
4.根據權利要求1所述的方法,所述空殼程序文件中還包括解密流程,該解密流程包括:當類需要裝載的時候,調用類構造器,通過類構造器調用底層函數進而解密出代碼;使用數學統計方法探測虛擬機是否被惡意篡改。
5.根據權利要求4所述的方法,所述數學統計方法包括方差均化方式。
6.一種安卓應用程序防逆向破解的加固系統,包括以下單元:
獲取安裝包單元:用于獲取原始安卓安裝包;
反向匯編單元:利用安卓安裝包編譯工具對安卓應用程序反向匯編從而得到中間文件;
類構造器單元:遍歷生成的中間文件中的類,對需要加載的類設置對應的類構造器;所述設置對應的類構造器包括:遍歷smali文件中的類函數,確定那些類是需要執行的,自動添加<clinit>標記;當讀到<clinit>標記時,表示要指引執行這段程序;
抽取加密單元:抽取出除了類構造器和初始化函數之外的所有中間文件進行加密并存儲,對所述中間文件進行抽取操作,生成空殼程序文件和入口地址文件;
加固單元,調用動態鏈接庫對可執行文件進行加固;以及
寫入單元,用于將動態鏈接庫寫入空殼程序文件中。
7.根據權利要求6所述的系統,所述抽取加密單元在抽取出除了類構造器和初始化函數之外的所有中間文件進行加密之前,還包括:使用安卓安裝包編譯工具對上述設置了類構造器的中間文件進行匯編處理,重新編譯成可執行文件。
8.根據權利要求6所述的系統,所述抽取加密單元還包括:
對所述入口地址文件進行修改操作,生成修改入口。
9.根據權利要求6所述的系統,所述空殼程序文件中還包括解密單元,該解密單元用于當類需要裝載的時候,調用類構造器,通過類構造器調用底層函數進而解密出代碼;使用數學統計方法探測虛擬機是否被惡意篡改。
10.根據權利要求9所述的系統,所述數學統計方法包括方差均化方式。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海掌門科技有限公司,未經上海掌門科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611265457.0/1.html,轉載請聲明來源鉆瓜專利網。





