999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于JAVA的安卓應用代碼混淆技術研究

2019-09-12 11:49:04呂苗苗

呂苗苗

基于JAVA的安卓應用代碼混淆技術研究

呂苗苗

江蘇醫藥職業學院醫學技術學院, 江蘇 鹽城 224005

隨著安卓應用軟件的使用量不斷增加,關于安卓應用安全保護問題也越來越突出。本文在分析安卓軟件攻擊的基礎上,提出一種基于JAVA的安卓應用代碼混淆技術,旨在提高安卓應用代碼的隱蔽性,進而使安卓應用得到更有效的保護。該技術包括對安卓應用代碼的抽離、映射、注冊以及解釋執行等步驟。然后通過實驗分析,以驗證該技術的有效性及相關性能。結果表明:該技術有較強的有效性,能夠更好地保護安卓應用,但是在性能方面,無論是APK文件包大小還是內存消耗量,都有比較明顯的增加,因此在技術推廣中需要考慮性能方面的影響。

JAVA; 安卓應用代碼; 混淆技術

安卓是目前應用最廣泛的移動終端系統,基于安卓平臺的各種軟件應用數不勝數,在給手機用戶帶來便捷體驗的同時,安全問題也不斷涌現,極大地威脅到人們的財產權和隱私權。安卓系統有著很強的開放性,攻擊者可以隨時隨地獲取目標的動態行為數據,探測用戶的隱私[1]。由于安卓軟件基本上都是通過JAVA代碼構建的,采用DEX格式的編譯形成可執行文件,在APK文件包中直接打包,方便用戶的操作使用,但也給攻擊者留下漏洞。攻擊者可以逆向編譯JAVA代碼,將可執行文件重新修改和打包,形成惡意代碼的注入,若手機用戶中木馬,很有可能造成財產損失[2]。據相關統計,在惡意應用中有80%以上屬于修改JAVA代碼重新打包型[3]。針對這種現狀,本文提出一種基于JAVA的安卓應用代碼混淆技術,通過抽離和映射代碼,達到代碼混淆的目的,以抵御惡意攻擊。首先抽離安卓軟件中的code_item代碼,然后映射混淆抽離出的代碼,形成混淆代碼索引表,在SO中進行封裝。最后采取JNI機制注冊封裝后的代碼,生成特定的執行環境。安卓應用代碼混淆技術可以有效實現安卓應用保護,有較大的推廣價值。

1 安卓應用代碼混淆技術分析

1.1 基于JAVA的安卓應用代碼抽離和映射

在各種安卓應用軟件中,通常采用JAVA語言將操作程序編譯成DEX格式的可執行文件,該類型文件主要由code_item代碼組成。所以基于JAVA的安卓應用代碼抽離,首要步驟就是在APK文件包中的DEX文件里找出相應的code_item代碼,然后將該代碼抽離出來。在這一過程中需要分析code_item中的Dalvik字節碼,并通過運算指令和返回指令實現代碼抽離。

當安卓應用代碼抽離出來之后,下一步執行映射操作,將Dalvik字節碼進行映射混淆。按照DEX文件格式,通過映射使code_item代碼中的insns字段能夠指向Dalvik。首先按照Dalvik語法確定insns的指令操作信息,其次以操作碼映射表為依據,一步步將每一個操作碼重新映射為新操作碼,以達到映射混淆的目的,最后將這些新操作碼組成code_item代碼索引表,利用C或者C++語言編譯并在SO中封裝該索引表。

1.2 基于JAVA的安卓應用代碼注冊

為使映射后的Dalvik字節碼能夠在安卓應用Native層中被正確執行,需要通過JAVA語言注冊該混淆代碼。首先定義解釋執行的入口類,即MethodStub類,按照JAVA下不同的返回類型,使入口方法得到不同的定義。入口參數一般是可變參數,利用JNI機制在Native層中實現解釋執行的調用。基于JAVA注冊混淆代碼之后,原code_item代碼會變更為注冊后的code_item代碼,因而在執行原code_item代碼時,并不會在安卓運行環境中動態加載,同時經過注冊的code_item代碼,也不會包含原有邏輯,從而能夠有效抵御惡意攻擊的風險。

1.3 映射解釋執行環境的構建

當code_item代碼經過映射混淆之后,需要在安卓應用Native層中通過映射解釋器實施映射解釋執行操作,構建映射解釋執行環境是關鍵一步。映射解釋器主要按照操作碼映射表以及Dalvik標準解釋混淆代碼,在映射解釋執行環境中處于核心地位,如圖1所示。未使用代碼混淆技術的安卓應用會直接在ART中執行,而混淆后的安卓應用代碼,則可以使用映射解釋器以及JNI接口與安卓ART實施交互,而沒有混淆的部分代碼也可以直接在ART中執行。

2 實驗與分析

通過實驗測試基于JAVA的安卓應用代碼混淆技術,測試用例包括算術運算、系統方法和自定義方法調用、JNI方法調用、Native方法等。整個實驗由安卓應用代碼混淆技術有效性驗證以及相關性能測試組成。

2.1 安卓應用代碼混淆技術有效性驗證

為驗證安卓應用代碼混淆技術的有效性,第一步采用Jadx、Jeb等JAVA的逆向編譯工具,分析抽離映射之后的混淆代碼在靜態下能否逆向發現原邏輯。其中使用Jadx逆向編譯算術運算用例,得出的結果并不能發現原邏輯。進一步測試其它用例,整個測試結果如表1所示。

表 1靜態下能否逆向發現原邏輯的測試結果

Table 1 Whether the test results of the original logic can be retrieved in static state

從實驗測試結果看,所有測試用例在靜態下都不能發現原邏輯,這是因為在DEX可執行文件中抽離映射code_item代碼之后,形成了混淆代碼,而JAVA的逆向編譯工具是以DEX可執行文件為基礎分析code_item代碼,當代碼混淆時,JAVA的逆向編譯工具就無法正確發現原邏輯,這極大地提高了安卓應用的安全性。第二步采用安卓通用脫殼工具Dexhunter分析動態下能否發現混淆代碼的原邏輯,其中算術運算用例的實驗結果如圖2所示。

圖2 動態下能否逆向發現原邏輯的測試結果

從圖2的測試結果可以看出,安卓通用脫殼工具獲得算術運算APK文件,然后利用ART加載對內存數據進行運算,但是混淆后的代碼并不會加載原始信息,因此也不能逆向發現原邏輯。其它測試用例的結果同樣如此。這說明無論在靜態和動態下,本技術都能很好地保護安卓應用。

2.2 安卓應用代碼混淆技術的性能測試

本實驗對安卓應用代碼混淆技術的性能測試,主要從APK文件包大小測試、內存消耗測試兩個方面進行,對比代碼混淆技術使用前后的性能情況。第一步選取算術運算和自定義方法調用兩個用例進行測試,查看APK文件包大小變化,測試結果如表2所示。根據表2測試結果,使用代碼混淆技術之后,APK文件包增加20多KB,主要是因為混淆映射及解釋處理所增加的代碼量導致APK文件包變大。

表 2 安卓應用代碼混淆技術使用前后的APK文件包大小變化情況(Byte)

第二步選取算術運算和自定義方法調用兩個用例,利用adb shell命令查看安卓應用在代碼混淆技術使用前后的內存消耗情況,測試結果如表3所示。從實驗測試結果可以看出,當使用代碼混淆技術之后,安卓應用的內存增加7000多KB,主要是因為映射解釋執行時加載SO文件所消耗的內存量,還有增加保護方法所消耗的內存量。當前的智能手機內存基本在64 GB以上,因此所增加的內存消耗量并不會影響手機的正常使用。

表 3 安卓應用代碼混淆技術使用前后的內存消耗量變化情況(KB)

3 討論

安卓應用軟件的廣泛使用也導致安全問題頻發,用戶的隱私與財產受到嚴重威脅,如何保護安卓應用成為國內外的一個熱門課題。Vecchiato等研究了安卓通用脫殼工具使用情況,認為以加密技術為基礎對安卓應用進行加殼保護能夠收到一定效果,該方案首先對DEX文件進行加密處理,使相關文件得到隱藏,然后通過殼程序封裝處理后的文件。在需要使用時再次通過殼程序解密,實現DEX文件的動態加載,但是在加密解密的過程中,攻擊者依然有機會利用脫殼技術得到原DEX文件[4]。Azfar等針對安卓應用DEX文件脫殼破解的問題,提出一種基于JNI機制的SO加固技術,主要使用C或C++語言在SO中封裝DEX文件,利用JNI機制實現動態加載,能夠起到較好的反編譯阻斷效果,但無法形成安卓應用的全過程保護[5]。Peisen等提出一種以LZW編碼技術為基礎的安卓應用混淆技術,通過該技術重新排列指令次序,以提高安卓應用指令的隱蔽性,但這種方法的編碼表較多,而且每一個編碼表都是獨立的,這影響到加密的工作量,該技術的安全效果與編碼表的加密強度息息相關[6]。總體來看,相關研究或多或少都存在一些缺陷,而本文的安卓應用代碼混淆技術,則從代碼方面打亂邏輯,形成安卓應用全過程保護,因此有較大的推廣價值。

4 結論

隨著智能手機的普及以及安卓應用軟件的大量開發,關于安卓應用安全保護問題在國內外引起了廣泛關注。本文針對惡意攻擊的路徑原理,提出一種基于JAVA的安卓應用代碼混淆技術,旨在提高代碼的隱蔽性,防止安卓應用數據信息的原邏輯被輕易破解。首先對安卓應用代碼混淆技術的步驟過程進行介紹,然后通過實驗分析,驗證代碼混淆技術的有效性及相關性能。總體來看,該技術對安卓應用的保護效果較高,但也要考慮到性能方面的影響,尤其要注意內存消耗的影響。目前的性能影響并不大,若隨著該技術的不斷開發,會出現更多的保護方法,內存消耗的增加難以避免,因此在今后的研究中應加以重視。

[1] 繆小川,汪睿,許蕾,等.使用敏感路徑識別方法分析安卓應用安全性[J].軟件學報,2017,28(9):2248-2263

[2] Mente R, Bagadi A. Android Application Security[J]. Advances in computational sciences and technology, 2017,10(5):1207-1210

[3] Chanajitt R, Viriyasitavat W, Choo KKR.Forensic analysis and security assessment of Android m-banking apps[J]. Australian journal of forensic sciences, 2017,50(1):3-19

[4] Vecchiato D, Vieira M, Martins E.The Perils of Android Security Configuration[J].Computer, 2016,49(6):15-21

[5] Azfar A, Choo KKR, Lin L. Android mobile VoIP apps: a survey and examination of their security and privacy[J]. Electronic commerce research, 2016,16(1):73-111

[6] Yu BC, Song P, Xu XY. An android malware static detection scheme based on cloud security structure[J]. International Journal of Security and Networks, 2018,13(1):51-57

Study on Android Application Code Obfuscation Technology on Java

LV Miao-miao

224005,

With the increasing use of Android application software, the security protection of Android application is becoming more and more prominent. Based on the analysis of Android software attacks, this paper proposes a JAVA-based code obfuscation technology for Android applications, aiming at improving the concealment of Android application code and making Android applications more effectively protected. The technology includes the steps of extracting, mapping, registering and interpreting the Android application code. Then, the effectiveness and related performance of the technology are verified through experimental analysis. The results show that the technology is effective and can better protect Android applications, but in terms of performance, whether APK file package size or memory consumption, there is a significant increase, so the impact of performance needs to be considered in the promotion of technology.

JAVA; Android application code; obfuscation technology

TP309

A

1000-2324(2019)04-0671-04

2018-04-28

2018-05-30

江蘇省社會科學基金項目:大數據背景下智慧校園建設的策略與實踐研究(15JYC001)

呂苗苗(1983-),女,碩士,講師,主要研究方向為計算機技術和醫學信息技術. E-mail:277243949@qq.com

主站蜘蛛池模板: 亚洲色图欧美在线| 成年女人a毛片免费视频| 热久久这里是精品6免费观看| 国产丝袜啪啪| 青青草原国产| 免费在线一区| 2021国产乱人伦在线播放| 丁香亚洲综合五月天婷婷| 免费看av在线网站网址| 综合五月天网| 91福利在线观看视频| 一级福利视频| 福利在线免费视频| 精品乱码久久久久久久| 中文字幕在线观看日本| 青青草原国产精品啪啪视频| 青青草91视频| 国产高清色视频免费看的网址| 久操线在视频在线观看| 91在线精品免费免费播放| 免费无码AV片在线观看国产| 日本在线欧美在线| 欧美一级黄色影院| 国产亚洲欧美在线人成aaaa| 亚洲清纯自偷自拍另类专区| 亚洲人网站| 国产在线观看一区精品| 日本精品视频一区二区| 亚洲美女一级毛片| 欧美性爱精品一区二区三区| 欧美在线天堂| 国产在线精品99一区不卡| 狠狠色婷婷丁香综合久久韩国| 欧洲成人免费视频| 欧美激情综合| 日本午夜三级| 国产人人射| 国产精品手机视频一区二区| 亚洲男人天堂2020| 美女一级毛片无遮挡内谢| 成人在线第一页| 91无码人妻精品一区| 第一页亚洲| 色综合中文| 国产一区二区三区在线观看视频 | 精品无码日韩国产不卡av| 亚洲色欲色欲www网| 欧美日本视频在线观看| 亚洲人成在线精品| 国产美女视频黄a视频全免费网站| 国产一级精品毛片基地| 91久草视频| 欧美97色| 极品私人尤物在线精品首页| 在线国产91| 日韩精品无码一级毛片免费| 日本精品视频| 亚洲成综合人影院在院播放| 欧美啪啪一区| 免费jizz在线播放| 国产日本欧美在线观看| 久久一级电影| 亚洲最新在线| 亚洲美女一级毛片| 欧美精品啪啪一区二区三区| 国产精品浪潮Av| 亚洲精品天堂在线观看| 国产精品污视频| 2021最新国产精品网站| 欧美亚洲综合免费精品高清在线观看 | 亚洲欧洲自拍拍偷午夜色无码| 国产制服丝袜91在线| 粉嫩国产白浆在线观看| 色婷婷天天综合在线| 国产成人精品免费av| 国产成人精品一区二区三区| 国产99久久亚洲综合精品西瓜tv| 久久久91人妻无码精品蜜桃HD| 久久这里只有精品2| 日韩高清一区 | 红杏AV在线无码| 色婷婷综合激情视频免费看|