本發(fā)明涉及android動(dòng)態(tài)調(diào)試方法,尤其涉及一種android應(yīng)用程序動(dòng)態(tài)調(diào)試的檢測(cè)方法,即通過(guò)一種ptrace進(jìn)程附加的方法,檢測(cè)經(jīng)過(guò)加了防動(dòng)態(tài)調(diào)試技術(shù)后的apk(androidpackage的縮寫,即android應(yīng)用安裝包)是否真正達(dá)到了防動(dòng)態(tài)調(diào)試保護(hù)的效果。
背景技術(shù):
隨著智能手機(jī)的熱銷,手機(jī)上網(wǎng)越來(lái)越流行,移動(dòng)互聯(lián)時(shí)代的爆發(fā)更是帶動(dòng)智能手機(jī)趨于全能化,伴隨手機(jī)用戶爆炸增長(zhǎng)、手機(jī)上網(wǎng)愈加便利而來(lái)的是,手機(jī)安全隱患越來(lái)越多、問(wèn)題越來(lái)越突出。根據(jù)中國(guó)互聯(lián)網(wǎng)絡(luò)信息中心(cnnic)發(fā)布《第28次中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告》。報(bào)告顯示,截至2012年6月底,中國(guó)手機(jī)網(wǎng)民規(guī)模首次超越臺(tái)式電腦用戶,達(dá)到3.88億,較2011年底增加了約3270萬(wàn)人。手機(jī)網(wǎng)民在總體網(wǎng)民中的比例達(dá)65.5%。
目前,一方面,智能手機(jī)系統(tǒng)已被國(guó)外產(chǎn)品壟斷:根據(jù)艾媒咨詢發(fā)布的數(shù)據(jù)顯示,2012第二季度,國(guó)外操作系統(tǒng)在我國(guó)智能手機(jī)中的占比已超過(guò)90%。其中,美國(guó)谷歌公司的android系統(tǒng)占比最高達(dá)63.1%;芬蘭諾基亞公司的塞班系統(tǒng)占比19.9%,蘋果公司的ios操作系統(tǒng)占比11.7%。因?yàn)閍ndroid系統(tǒng)采取免費(fèi)、開(kāi)源的市場(chǎng)策略,導(dǎo)致眾多山寨手機(jī)和平板電腦大量使用android系統(tǒng),而這些充斥在市場(chǎng)之上的山寨機(jī)以及變成黑客、惡意程序眼中的“肉雞”。
另一方面,智能手機(jī)信息防范能力弱:與傳統(tǒng)手機(jī)相比智能手機(jī)功能強(qiáng)大,信息覆蓋范圍廣,其操作系統(tǒng)依托于移動(dòng)互聯(lián)網(wǎng),信息泄露隱患大。智能手機(jī)內(nèi)部包含大量私人信息或涉密信息,如定位系統(tǒng)、賬戶密碼、圖像圖片、通訊錄、短信息、通話內(nèi)容等。而智能手機(jī)的諸多功能需要時(shí)時(shí)連入互聯(lián)網(wǎng)才能實(shí)現(xiàn),對(duì)于很多手機(jī)來(lái)說(shuō)在傳輸數(shù)據(jù)時(shí)缺乏有效保護(hù)和加密,從而導(dǎo)致黑客非法盜取用戶信息也更為容易。以市場(chǎng)占有量最大的android系統(tǒng)為例,雖然眾多手機(jī)廠商可以對(duì)系統(tǒng)進(jìn)行“重新包裝”,但是由于系統(tǒng)開(kāi)源,api接口被廣泛使用,通過(guò)一定的技術(shù)手段有意竊聽(tīng)通話記錄或是竊取用戶信息,完全沒(méi)有技術(shù)障礙。
再者,應(yīng)用軟件缺乏安全審查機(jī)制:由于googleplay在中國(guó)地區(qū)的不穩(wěn)定性,國(guó)內(nèi)95%的用戶都會(huì)選擇從國(guó)內(nèi)的第三方應(yīng)用市場(chǎng)下載app程序。但是當(dāng)下國(guó)內(nèi)的第三方應(yīng)用市場(chǎng)已經(jīng)變成了魚(yú)龍混雜,流氓、病毒軟件叢生之地。在國(guó)內(nèi),第三方應(yīng)用市場(chǎng)里比較幾十家,知名的有安卓、安智、應(yīng)用匯、機(jī)鋒網(wǎng)等,國(guó)內(nèi)的應(yīng)用市場(chǎng)基本都是模仿蘋果的應(yīng)用商城,對(duì)外承諾有嚴(yán)格的審核機(jī)制,但事實(shí)是這些審核基本是空架子。
而在移動(dòng)互聯(lián)網(wǎng)安全領(lǐng)域,技術(shù)標(biāo)準(zhǔn)存在真空,更缺乏法律規(guī)范來(lái)保障用戶的信息安全?;ヂ?lián)網(wǎng)的高速發(fā)展,智能手機(jī)、平板電腦等各種便攜移動(dòng)設(shè)備已經(jīng)充斥了人們的生活,各種移動(dòng)應(yīng)用迅速覆蓋了包括出行就餐、日常起居,甚至金融理財(cái)?shù)雀鱾€(gè)領(lǐng)域。然而,正所謂“玫瑰雖好,毒刺傷人”。安卓漏洞、app安全早已飽受詬病,諸如手機(jī)吸費(fèi)、隱私盜取以及各類支付風(fēng)險(xiǎn)也都如鬼魅般如影隨形。山寨app和廣告插件加劇用戶隱私暴露風(fēng)險(xiǎn),木馬病毒泛濫移動(dòng)互聯(lián)網(wǎng)安全形勢(shì)嚴(yán)峻等問(wèn)題已不可忽視。
由于移動(dòng)互聯(lián)網(wǎng)的發(fā)展迅速,隨其而生的安全問(wèn)題眼下也無(wú)法徹底解決。不斷增長(zhǎng)的手機(jī)用戶讓惡意軟件獲得了更多的生存的機(jī)會(huì)。
針對(duì)上述移動(dòng)互聯(lián)網(wǎng)應(yīng)用的安全問(wèn)題,一些android應(yīng)用安全檢測(cè)產(chǎn)品為移動(dòng)應(yīng)用提供專業(yè)的安全保護(hù)方案,其中一種方法是對(duì)app防動(dòng)態(tài)調(diào)試檢測(cè)。但是,這些防動(dòng)態(tài)調(diào)試技術(shù)是否起到的保護(hù)作用,現(xiàn)有方法還難以進(jìn)行檢測(cè)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是針對(duì)現(xiàn)有技術(shù)中的不足,提供一種android動(dòng)態(tài)調(diào)試檢測(cè)方法,通過(guò)一種基于ptrace進(jìn)程附加方法,檢測(cè)apk(androidpackage的縮寫,即android應(yīng)用安裝包)經(jīng)過(guò)防動(dòng)態(tài)調(diào)試技術(shù)是否真正達(dá)到了加固保護(hù)的效果。
為實(shí)現(xiàn)上述目的,本發(fā)明公開(kāi)了如下技術(shù)方案:
為了便于說(shuō)明,本文約定:
“apk”是androidpackage的縮寫,即android應(yīng)用安裝包;
“dalvik”是指google公司設(shè)計(jì)的用于android平臺(tái)的java虛擬機(jī);
“manifest”是指android程序運(yùn)行清單(androidmanifest.xml)。
一種android動(dòng)態(tài)調(diào)試檢測(cè)方法,通過(guò)ptrace附加到目標(biāo)進(jìn)程的方法,檢測(cè)經(jīng)過(guò)防動(dòng)態(tài)調(diào)試處理后的apk是否真正達(dá)到了安全保護(hù)的效果,具體包括如下步驟:
s1在模擬器上安裝含防動(dòng)態(tài)調(diào)試技術(shù)的apk文件;
s2通過(guò)ptrace附加到目標(biāo)進(jìn)程的方法,對(duì)目標(biāo)app進(jìn)行進(jìn)程附加,具體包括如下步驟:
s21將調(diào)試工具放入/data/local/tmp目錄下,并設(shè)置可執(zhí)行權(quán)限;
s22將目標(biāo)app運(yùn)行,查看進(jìn)程pid信息;動(dòng)態(tài)調(diào)試檢測(cè)根據(jù)app進(jìn)程pid進(jìn)行檢測(cè);
s23運(yùn)行調(diào)試工具并附加到目標(biāo)app進(jìn)程;
s3查看ptrace附加到目標(biāo)進(jìn)程后,目標(biāo)app是否退出,對(duì)含有防動(dòng)態(tài)調(diào)試apk無(wú)法附加或調(diào)試工具附加后apk會(huì)退出,從而達(dá)到檢測(cè)防動(dòng)態(tài)調(diào)試是否安全保護(hù)效果的結(jié)果。
進(jìn)一步的,所述步驟s1中,安裝運(yùn)行apk文件時(shí)在android平臺(tái)中由dalvikvm執(zhí)行。
進(jìn)一步的,所述調(diào)試工具為gdb、ida、adb、vs調(diào)試工具中的一種或幾種。
本發(fā)明公開(kāi)的一種android動(dòng)態(tài)調(diào)試檢測(cè)方法,具有以下有益效果:
本發(fā)明可以驗(yàn)證一些利用了防動(dòng)態(tài)調(diào)試應(yīng)用技術(shù)的保護(hù)效果,也是一種新型檢測(cè)apk文件安全的方法,對(duì)移動(dòng)應(yīng)用安全方面有很大的促進(jìn)作用。
附圖說(shuō)明
圖1是本發(fā)明提供防動(dòng)態(tài)調(diào)試檢測(cè)方法中的調(diào)試工具流程框圖。
圖2是本發(fā)明實(shí)施例1執(zhí)行操作的流程框圖。
圖3是本發(fā)明實(shí)施例2執(zhí)行操作的流程框圖。
具體實(shí)施方式
下面將對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明的核心是提供通過(guò)一種基于ptrace進(jìn)程附加方法,檢測(cè)apk經(jīng)過(guò)防動(dòng)態(tài)調(diào)試技術(shù)是否真正達(dá)到了加固保護(hù)的效果。
一種android動(dòng)態(tài)調(diào)試檢測(cè)方法,通過(guò)ptrace附加到目標(biāo)進(jìn)程的方法,檢測(cè)經(jīng)過(guò)防動(dòng)態(tài)調(diào)試處理后的apk是否真正達(dá)到了安全保護(hù)的效果,具體包括如下步驟:
s1在模擬器上安裝含防動(dòng)態(tài)調(diào)試技術(shù)的apk文件,防動(dòng)態(tài)調(diào)試的apk文件主要是防止被外部程序調(diào)試,以達(dá)到程序數(shù)據(jù)安全;
可選的,安裝運(yùn)行apk文件時(shí)在android平臺(tái)中由dalvikvm執(zhí)行;
s2通過(guò)ptrace附加到目標(biāo)進(jìn)程的方法,對(duì)目標(biāo)app進(jìn)行進(jìn)程附加,具體包括如下步驟:
s21將調(diào)試工具放入/data/local/tmp目錄下,并設(shè)置可執(zhí)行權(quán)限,完成調(diào)試工具的環(huán)境配置;
s22將目標(biāo)app運(yùn)行,查看進(jìn)程pid信息;動(dòng)態(tài)調(diào)試檢測(cè)根據(jù)app進(jìn)程pid進(jìn)行檢測(cè);
s23運(yùn)行調(diào)試工具(此工具是系統(tǒng)自帶調(diào)用程序的工具)并附加到目標(biāo)app進(jìn)程;
s3查看ptrace附加到目標(biāo)進(jìn)程后,目標(biāo)app是否退出,對(duì)含有防動(dòng)態(tài)調(diào)試apk無(wú)法附加或調(diào)試工具附加后apk會(huì)退出,從而達(dá)到檢測(cè)防動(dòng)態(tài)調(diào)試是否安全保護(hù)效果的結(jié)果。
若app可以附加成功,說(shuō)明其動(dòng)態(tài)調(diào)試成功,目標(biāo)app沒(méi)有含防動(dòng)態(tài)調(diào)試或該目標(biāo)app防動(dòng)態(tài)調(diào)試技術(shù)安全性沒(méi)有達(dá)標(biāo);若目標(biāo)app含有防動(dòng)態(tài)調(diào)試技術(shù)則無(wú)法對(duì)該目標(biāo)進(jìn)程進(jìn)行附加;即檢測(cè)到該apk防動(dòng)態(tài)調(diào)試技術(shù)達(dá)到了安全保護(hù)的效果。
可選的,所述調(diào)試工具為gdb、ida、adb、vs調(diào)試工具中的一種或幾種。
實(shí)施例1:
假定一個(gè)用java語(yǔ)言編寫的android應(yīng)用檢測(cè)系統(tǒng)中,利用本發(fā)明方案對(duì)含后防動(dòng)態(tài)調(diào)試的apk應(yīng)用進(jìn)行檢測(cè),檢測(cè)apk防動(dòng)態(tài)調(diào)試應(yīng)用是否產(chǎn)生效用。
設(shè)定含防動(dòng)態(tài)調(diào)試技術(shù)的應(yīng)用名稱為apk。檢測(cè)的具體步驟如下(如圖2):
1)在模擬器把gdb放入/data/local/tmp目錄下;
2)對(duì)gdb調(diào)試工具設(shè)置可執(zhí)行權(quán)限;
3)模擬器安裝apk;
4)運(yùn)行apk,此時(shí)該apk會(huì)一直檢測(cè)是否有外部程序調(diào)試本apk
5)gdb附加目標(biāo)apk進(jìn)行調(diào)試;
6)對(duì)含有防動(dòng)態(tài)調(diào)試apk無(wú)法附加或調(diào)試工具附加后apk會(huì)退出,說(shuō)明本發(fā)明方案可以對(duì)該防動(dòng)態(tài)調(diào)試檢測(cè)方法有效;
實(shí)施例2:
假定一個(gè)用java語(yǔ)言編寫的android應(yīng)用檢測(cè)系統(tǒng)中,利用本發(fā)明方案對(duì)含防動(dòng)態(tài)調(diào)試的apk應(yīng)用進(jìn)行檢測(cè),檢測(cè)apk防動(dòng)態(tài)調(diào)試應(yīng)用是否產(chǎn)生效用,設(shè)定含防動(dòng)態(tài)調(diào)試的應(yīng)用名稱為apk。具體步驟如下(如圖3):
1)在模擬器把gdb放入/data/local/tmp目錄下;
2)對(duì)gdb調(diào)試工具設(shè)置可執(zhí)行權(quán)限;
3)模擬器安裝apk;
4)運(yùn)行apk,此時(shí)該apk會(huì)一直檢測(cè)是否有外部程序調(diào)試本apk
5)gdb附加目標(biāo)apk進(jìn)行調(diào)試有效,說(shuō)明本發(fā)明方案對(duì)該防動(dòng)態(tài)調(diào)試檢測(cè)方法無(wú)效;
經(jīng)過(guò)采取防動(dòng)態(tài)調(diào)試技術(shù)后,利用本發(fā)明方案的動(dòng)態(tài)調(diào)試檢測(cè)方法,可附加進(jìn)程;說(shuō)明該防動(dòng)態(tài)調(diào)試無(wú)效;利用本發(fā)明方案的動(dòng)態(tài)調(diào)試檢測(cè)方法不成功,則說(shuō)明該apk防動(dòng)態(tài)調(diào)試是真正有效的。上述實(shí)施例1采用的防動(dòng)態(tài)調(diào)試達(dá)到了安全效果;而實(shí)施例2采用的防動(dòng)態(tài)調(diào)試技術(shù)則未達(dá)到安全保護(hù)結(jié)果。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,而非對(duì)其限制;應(yīng)當(dāng)指出,盡管參照上述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,其依然可以對(duì)上述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或?qū)ζ渲胁糠只蛘呷考夹g(shù)特征進(jìn)行等同替換;而這些修改和替換,并不使相應(yīng)的技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。