標籤:android 惡意計費 安全軟體 程式 字串
最近在弄關於移動端安卓通訊的問題,總結下來,主要分為三方面防護,今天先記錄第一點:防止惡意代碼的注入。
“Android APP二次打包”則是盜版正規Android APP,破解後植入惡意代碼重新打包。不管從效能、使用者體驗、外觀它都跟正規APP一模一樣但是背後它確悄悄運行著可怕的程式,它會在不知不覺中浪費手機電量、流量,惡意計費、偷窺隱私等等行為。
要實現代碼內部防止APP被二次打包首先得瞭解APK的機器識別原理,APK的唯一識別是依靠包名和簽名來做評鑑的,類似豌豆夾的洗白白、360手機衛士等安全軟體對APK的山寨識別,他們就是依賴包名來確定APK然後通過簽名來確定其是否山寨。所以說自己的程式內部在啟動的時候可以通過擷取APK本身的簽名然後和正確的簽名做對比來識別自己是否被二次打包。
通過PackageManag對象可以擷取APK自身的簽名650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/89/1D/wKioL1gId5GjrIcwAACGYGP89uQ920.png-wh_500x0-wm_3-wmp_4-s_1944800041.png" title="圖片1.png" alt="wKioL1gId5GjrIcwAACGYGP89uQ920.png-wh_50" />
通過對簽名的碼的分解得到一串20左右的字串,此字串則是APK的簽名的MD5值,通過擷取的簽名MD5值與正確的MD5值進行對比,就可以識別其APK是否被盜版。
650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/89/1D/wKioL1gId7fQDhOlAACN_iiYYko204.png-wh_500x0-wm_3-wmp_4-s_3086113814.png" title="圖片2.png" alt="wKioL1gId7fQDhOlAACN_iiYYko204.png-wh_50" />
經過比對,如果MD5值不一樣,則可判斷為二次打包,可以進行退出程式等處理。
本文出自 “移動平台開發” 部落格,請務必保留此出處http://liuxudong1001.blog.51cto.com/10877072/1863910
Android安全通訊(一)