2021-12-30 20:25:43|已瀏覽:2484次
安卓系統是由谷歌推出的一款移動終端,由于開源,所以國內出現了許多使用相關系統的廠商,比如小米,oppo,vivo,魅族等。
在國內,這些系統的用戶群體甚多。我們日常使用的社交、游戲、工作等應用,很多都裝在安卓系統上。
由于安卓系統的開源性,很多安全問題也隨之而來。那么,在安卓系統上運行的應用又是如何保證自身安全的呢?
本文通過實戰挖洞,展現一下Android應用的防守與攻擊方式。
1
簡介
為了避免應用被攻擊,各種應用在投產前會用一些技術手段進行加固。但是在持續對抗下,總會出現各種反加固的手段。
部分開發者可能忽視應用的安全性,各大應用市場上也有很多未采取加固手段或進行簡單加固的應用。
首先,我們來看一看一個未進行任何加固手段的應用,運行起來有多危險。
AES算法能保證身份證號以密文形式在網絡上傳輸,不被他人竊取,將代碼打包安裝在我們手機中運行。
由于安卓應用包很容易獲取,源碼包被攻擊者拿去反編譯:
對比開發者寫的代碼和攻擊者反編譯的代碼,幾乎完全一樣,攻擊者很容易分析出我們的代碼邏輯,從而造成破壞。
上面程序,拿到我們加密算法邏輯,對傳輸中的加密內容進行解密,來獲取身份證號。
由此可見,沒有做任何安全防護的安卓源碼猶如“裸奔”。
2
防守原理
上面實例可見,沒有加固的安卓應用,運行起來是相當危險的。下面介紹幾種常見的應用加固方式。包括源碼混淆、應用加殼、應用運行環境檢測。
源代碼混淆保護
混淆是將代碼中的類、方法、變量等信息進行重命名,把它們改成一些如“a,b,c,d”這樣毫無意義的名字,這樣就增加了攻擊者逆向難度。混淆效果圖如下:
應用加殼保護
加殼是在二進制的程序中植入一段代碼,在運行的時候優先取得程序的控制權,做一些額外的工作。
應用加固的一種手法對原始二進制原文進行隱藏。簡單描述就是代碼隱藏了,只有程序運行時才會還原。
我們將上面加密身份證號的應用加殼,然后使用工具反編譯如下,已經看不到任何源碼信息。
攻擊者如果想要攻擊,第一步就需要脫殼。我這里是只進行簡單的加固,對安卓的關鍵dex文件整體加固,只有在運行的時候才會還原原有dex文件。當然還有其他不同類型的加殼手段。
本文由培訓無憂網長沙牛耳教育課程顧問老師整理發布,希望能夠對想在長沙參加安卓軟件開發培訓的學生有所幫助。更多課程信息可關注培訓無憂網電腦IT培訓頻道或添加老師微信:15033336050
注:尊重原創文章,轉載請注明出處和鏈接 http://m.dedgn.cn/news-id-11334.html 違者必究!部分文章來源于網絡由培訓無憂網編輯部人員整理發布,內容真實性請自行核實或聯系我們,了解更多相關資訊請關注手機開發頻道查看更多,了解相關專業課程信息您可在線咨詢也可免費申請試課。關注官方微信了解更多:150 3333 6050