安卓系統(tǒng)平臺(tái)的成功基于它的開(kāi)源和Linux內(nèi)核的可移植性,安卓的開(kāi)源為它的成功提供了助力,也導(dǎo)致安卓成為移動(dòng)終端系統(tǒng)中最容易被攻擊的操作系統(tǒng)。攻擊者可以利用一系列攻擊手段對(duì)安卓應(yīng)用程序進(jìn)行分析和篡改。隨著篡改和病毒數(shù)量的增加,安卓平臺(tái)應(yīng)用軟件的保護(hù)受到越來(lái)越多的關(guān)注。近年來(lái)無(wú)論是研究機(jī)構(gòu)還是科技公司,都投入了一定的資源致力于安卓平臺(tái)軟件保護(hù)的研究。本文在分析現(xiàn)有軟件保護(hù)技術(shù)的基礎(chǔ)上結(jié)合自己所學(xué)知識(shí),設(shè)計(jì)和實(shí)現(xiàn)了一套基于防逆向篡改技術(shù)的安卓應(yīng)用軟件保護(hù)系統(tǒng)。本文的主要工作有以下內(nèi)容:(1)dex文件的保護(hù)本文通過(guò)分析dex文件的結(jié)構(gòu)和加載方式,結(jié)合常用的軟件保護(hù)方法,實(shí)現(xiàn)了一種通過(guò)代碼集替換之后再進(jìn)行加密的dex文件保護(hù)解決方案。該方案可以有效抵抗反編譯和靜態(tài)分析,程序不運(yùn)行就不恢復(fù)原始的dex文件,即使攻擊者解壓或者反編譯apk都獲取不到原始文件,能夠很好地保護(hù)dex文件。(2)SO文件的保護(hù)當(dāng)程序員把關(guān)鍵邏輯代碼編寫到SO庫(kù)文件,攻擊也隨之轉(zhuǎn)移到了SO文件。本文在分析安卓調(diào)用jni代碼執(zhí)行的流程之后發(fā)現(xiàn),SO文件加載過(guò)程中真正將文件載入內(nèi)存之前可以進(jìn)行預(yù)處理,開(kāi)發(fā)者可以在預(yù)處理函數(shù)中加入自定義邏輯。運(yùn)用這一發(fā)現(xiàn)實(shí)現(xiàn)了對(duì)SO文件頭字段進(jìn)行替換再加密SO庫(kù)文件的保護(hù)方案,該方案可以有效杜絕攻擊者對(duì)SO文件的靜態(tài)分析。(3)遠(yuǎn)程保護(hù)關(guān)鍵信息現(xiàn)有保護(hù)方案都將密鑰信息經(jīng)過(guò)加密或者變形存放于本地文件中,這種方法的缺陷是密鑰信息無(wú)論是編寫在SO文件中還是加密或變形之后單獨(dú)存放于apk文件的其它位置,都有被破解和找到的可能。本文將Axis2提供遠(yuǎn)程服務(wù)的功能加入到保護(hù)系統(tǒng)中,通過(guò)這個(gè)方法可以實(shí)現(xiàn)密鑰信息和其他需要保護(hù)的關(guān)鍵信息和程序完全解耦,能進(jìn)一步提高軟件的安全性。(4)防止動(dòng)態(tài)調(diào)試防動(dòng)態(tài)分析與防靜態(tài)分析是相輔相成的,一個(gè)安卓軟件保護(hù)系統(tǒng)既要考慮防靜態(tài)分析的保護(hù),還需要加入抵抗動(dòng)態(tài)調(diào)試的功能。本文在分析動(dòng)態(tài)調(diào)試運(yùn)行機(jī)制之后,發(fā)現(xiàn)調(diào)試器調(diào)試安卓設(shè)備必須與android_server連接才能進(jìn)行,并且二者是利用面向連接的TCP協(xié)議進(jìn)行連接的。根據(jù)這兩個(gè)特點(diǎn),實(shí)現(xiàn)了一個(gè)基于android_server連接資源占用的反動(dòng)態(tài)調(diào)試解決方案,該方案通過(guò)被保護(hù)應(yīng)用軟件與android_server進(jìn)行TCP連接阻止調(diào)試器的連接,進(jìn)而阻止動(dòng)態(tài)調(diào)試的進(jìn)行,該方案比目前使用的反調(diào)試解決方案更高效且狀態(tài)更持久。
【學(xué)位授予單位】:中北大學(xué)
【學(xué)位級(jí)別】:碩士
【學(xué)位授予年份】:2017
【分類號(hào)】:TP316;TP309;TP311.5
文章目錄
摘要
Abstract
1 引言
1.1 研究背景及意義
1.2 國(guó)內(nèi)外發(fā)展動(dòng)態(tài)
1.3 論文主要工作
1.4 論文結(jié)構(gòu)
2 安卓結(jié)構(gòu)體系
2.1 Android體系架構(gòu)介紹
2.2 安卓安全狀況簡(jiǎn)介
2.3 Dalvik虛擬機(jī)介紹
2.3.1 Dalvik虛擬機(jī)概述
2.3.2 Dalvik虛擬機(jī)與Java虛擬機(jī)的區(qū)別
2.4 本章小結(jié)
3 防逆向篡改關(guān)鍵技術(shù)研究
3.1 dex文件的保護(hù)方案
3.1.1 dex文件結(jié)構(gòu)簡(jiǎn)介
3.1.2 dex保護(hù)方案的實(shí)現(xiàn)
3.2 動(dòng)態(tài)鏈接庫(kù)的保護(hù)方案
3.2.1 SO文件加載過(guò)程分析
3.2.2 SO文件保護(hù)方案的實(shí)現(xiàn)
3.3 抵制動(dòng)態(tài)調(diào)試實(shí)現(xiàn)方案
3.3.1 常用反調(diào)試技術(shù)實(shí)現(xiàn)
3.3.2 基于搶占連接的反調(diào)試方案的實(shí)現(xiàn)
3.4 本章小結(jié)
4 安卓軟件保護(hù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
4.1 系統(tǒng)設(shè)計(jì)
4.2 PC加固系統(tǒng)的實(shí)現(xiàn)
4.2.1 系統(tǒng)設(shè)計(jì)
4.2.2 系統(tǒng)實(shí)現(xiàn)
4.3 終端校驗(yàn)系統(tǒng)的實(shí)現(xiàn)
4.3.1 脫殼模塊的實(shí)現(xiàn)
4.3.2 防動(dòng)態(tài)調(diào)試模塊
4.4 遠(yuǎn)程服務(wù)系統(tǒng)的實(shí)現(xiàn)
4.4.1 Axis2引擎
4.4.2 遠(yuǎn)程服務(wù)的實(shí)現(xiàn)
4.4.3 Axis2安全訪問(wèn)的實(shí)現(xiàn)
4.5 本章小結(jié)
5 系統(tǒng)測(cè)試與結(jié)果分析
5.1 系統(tǒng)運(yùn)行測(cè)試
5.2 系統(tǒng)可用性測(cè)試
5.3 系統(tǒng)處理結(jié)果分析
5.4 系統(tǒng)執(zhí)行效率分析
5.5 本章小結(jié)
6 總結(jié)與展望
6.1 工作總結(jié)
6.2 工作展望
參考文獻(xiàn)
攻讀碩士學(xué)位期間所獲得的研究成果
致謝
【參考文獻(xiàn)】
相關(guān)期刊論文 前10條
1 張建新;;一種基于遠(yuǎn)程校驗(yàn)的安卓軟件保護(hù)方案[J];計(jì)算機(jī)時(shí)代;2017年05期
2 左玉丹;丁滟;魏立峰;;Linux內(nèi)核提權(quán)攻擊研究[J];計(jì)算機(jī)工程與科學(xué);2016年11期
3 李文唐;江帆;孫偉;;Android應(yīng)用程序惡意代碼靜態(tài)注入方法及實(shí)現(xiàn)[J];信息安全研究;2016年07期
4 萬(wàn)一;朱志祥;吳晨;馬文;;一種基于數(shù)據(jù)加密技術(shù)的安卓軟件保護(hù)方案[J];電子科技;2016年02期
5 卿斯?jié)h;;Android安全研究進(jìn)展[J];軟件學(xué)報(bào);2016年01期
6 張譯恬;王純;;基于安卓系統(tǒng)JNI機(jī)制的SO庫(kù)加固方案設(shè)計(jì)[J];電信技術(shù);2014年10期
7 余超君;李春強(qiáng);尚云海;張培勇;;基于Trace合并和寄存器分配的Dalvik優(yōu)化[J];計(jì)算機(jī)工程;2014年10期
8 葉乃溪;王晰巍;崔鳳玲;劉鳳娟;;基于信息生態(tài)鏈的企業(yè)綠色信息協(xié)同模式研究[J];情報(bào)科學(xué);2013年07期
9 王暢;薛素靜;;劫持Linux系統(tǒng)調(diào)用封殺Core Dump漏洞攻擊[J];計(jì)算機(jī)安全;2009年06期
10 岳昆,王曉玲,周傲英;Web服務(wù)核心支撐技術(shù):研究綜述[J];軟件學(xué)報(bào);2004年03期
本文編號(hào):
2141005
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/2141005.html