[發明專利]一種Android平臺軟件保護系統、方法及設備有效
| 申請號: | 201110429661.2 | 申請日: | 2011-12-20 |
| 公開(公告)號: | CN102760219A | 公開(公告)日: | 2012-10-31 |
| 發明(設計)人: | 肖梓航;李柏松 | 申請(專利權)人: | 北京安天電子設備有限公司 |
| 主分類號: | G06F21/22 | 分類號: | G06F21/22 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 100084 北京市海*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 android 平臺 軟件 保護 系統 方法 設備 | ||
技術領域
本發明涉及一種計算機軟件保護技術,特別是用于Android平臺的軟件防泄密和版權保護系統及方法、服務器和智能終端。
背景技術
目前,由Google公司主導開發的Android操作系統已經是全球市場占有率最高的移動智能終端平臺。Android的應用軟件數量不斷增長,并建立了良好的軟件銷售模式。與傳統PC平臺一樣,Android應用軟件的成功商業化,也引發了對它們的逆向分析和破解。
對應用軟件的逆向分析(reversing?analysis)包括:
一、?對軟件的可執行代碼采用反匯編、反編譯、調試等方法進行分析,以了解其代碼的執行流程和算法實現等;
二、?對軟件的配置文件和數據文件進行分析,以獲得這些文件的格式和語義等;
三、?對軟件的網絡通信數據進行分析,以獲得軟件與服務器通信的協議格式、協議語義、數據加密方法和數據具體含義等。
其中,后兩類分析建立在第一類分析的基礎之上,即需要先分析可執行代碼,才能進一步分析配置文件、數據文件、網絡通信數據等。
通過逆向分析,攻擊者可以獲得軟件中的商業機密。例如,在手機的反病毒軟件中,惡意代碼檢測算法、特征匹配算法等可執行代碼,以及惡意代碼特征庫等數據文件,一旦被攻擊者逆向分析得到具體細節,既可能被其他同類軟件所利用,也可能被惡意代碼作者進行針對性防御或攻擊。再比如,在手機的網銀支付軟件中,通過網絡傳輸的數據涉及用戶的身份認證和金融賬戶信息,一旦軟件代碼、配置文件、網絡通信數據等被攻擊者通過逆向分析徹底了解,就有可能導致進一步的惡意攻擊,對個人和銀行造成直接的經濟損失。
破解(cracking)是在逆向分析基礎上的一種具有專門目的的攻擊。商業軟件需要用戶付費后使用。對未付費用戶,一般不允許使用,或只能使用少量功能,或只能使用一段試用期。為了保障這一策略,商業軟件通常包含對用戶許可(License)和用戶身份的鑒別(以下將負責這一鑒別工作的代碼片段稱為“鑒權代碼”),以判斷用戶是否已經付費。攻擊者通過對鑒權代碼的逆向分析,并進一步篡改代碼執行流程、篡改、復制或偽造相關配置文件、篡改網絡數據、修改內存數據等,使未付費用戶也可以獲得付費用戶才擁有的功能。這種攻擊稱之為破解,它極大地損害了軟件開發者的經濟權益,違反了知識產權保護的相關法律。
Android平臺的應用軟件開發一般采用Java語言。源代碼被編譯成Java類文件,再用Android?SDK(Software?Development?Kit,軟件開發工具包)中的工具轉換為DEX格式的二進制可執行文件,最后與軟件配置、資源文件等一起打包成APK格式文件,即Android應用軟件安裝包。用戶下載APK格式文件,并安裝到Android終端。應用軟件運行時,DEX格式文件中的指令在Android系統中的Dalvik虛擬機之中執行。
Android是一個源代碼完全開放的操作系統。無論是DEX格式文件的指令編碼方法,還是Dalvik虛擬機的工作原理,都因為源碼公開而已經被人們所知。目前已經出現了針對DEX格式文件的各類逆向分析工具,包括反匯編工具smali、反編譯工具dex2jar,以及針對APK格式文件的apktool等自動化工具。此外,逆向分析和破解的技術在傳統PC平臺上已經出現多年,Android平臺的攻擊者已經借鑒了傳統的方法。在這些工具和方法的幫助下,目前攻擊者已經可以輕易地對絕大部分Android應用軟件進行逆向分析和破解。
例如,常見的破解流程是:使用apktool解開APK文件,apktool會調用smali對其中的DEX格式文件進行反匯編;攻擊者分析smali的反匯編結果,了解該應用軟件的代碼流程;然后找到鑒權代碼,對關鍵的部分進行修改,例如把鑒權時的條件跳轉指令改成無條件跳轉指令;再使用apktool將這些修改過的代碼重新打包成APK格式文件,并重新簽名。這樣就得到了一個破解后的APK文件。
此外,Android應用程序還可以使用NDK(Native?Development?Kit,原生開發工具包)開發。Android系統運行于Linux之上,每個應用軟件所在的Dalvik虛擬機是一個獨立的Linux進程。Android?NDK提供了這樣一種開發方法:程序員用C語言編寫軟件的部分功能,由NDK的工具將源碼編譯為Linux中的動態鏈接文件(SO格式文件);用Java語言編寫其他功能,用SDK工具編譯為DEX格式文件;最后由SDK將SO格式文件和DEX格式文件一起打包為APK格式文件。在運行時,DEX中的代碼加載SO格式文件,并調用其提供的函數接口。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京安天電子設備有限公司,未經北京安天電子設備有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110429661.2/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:插座連接器
- 下一篇:一種具有表面增強拉曼散射效應的活性基底的制備方法





