首頁 > 手機周邊

【愛加密】Android APP如何防止二次打包

2019-11-23 17:33:15

    Android被破解的現象層出不窮,被二次打包的APP無論是對開發者還是使用者,都造成了很大的損失。而怎樣能有效的防止二次打包呢?愛加密APP安全加固保護平台為您解憂!

1

????? Android系統的開放性和免費性等特徵讓開發者和使用者趨之若鶩,使用者也漸漸習慣了Android應用的這種免費午餐,但在免費的背後卻有著巨大的安全陰影。?????「Android APP二次打包」則是盜版正規Android APP,破解後植入惡意程式碼重新打包。不管從效能、使用者體驗、外觀它都跟正規APP一模一樣但是背後它確悄悄執行著可怕的程式,它會在不知不覺中浪費手機電量、流量,惡意扣費、偷窺隱私等等行為。? ? ?面對二次打包不少公司都有自己的防範措施,知名公司的APP幾乎都是自己在程式內部做過處理防止其APP被二次打包,一旦打包後重新執行則程式自動退出。接下來,我就來詳解一下如何防止APP被二次打包。?
? ?要實現程式碼內部防止APP被二次打包首先得瞭解APK的機器識別原理,APK的唯一識別是依靠包名和簽名來做鑑定的,類似豌豆夾的洗白白、360手機衛士等安全軟體對APK的山寨識別,他們就是依賴包名來確定APK然後通過簽名來確定其是否山寨。所以說自己的程式內部在啟動的時候可以通過獲取APK本身的簽名然後和正確的簽名做對比來識別自己是否被二次打包。
然後通過簽名來確定其是否山寨。所以說自己的程式內部在啟動的時候可以通過獲取APK本身的簽名然後和正確的簽名做對比來識別自己是否被二次打包。

2

通過PackageManag物件可以獲取APK自身的簽名。


3

通過對簽名的碼的分解得到一串20左右的字串,此字串則是APK的簽名的MD5值,通過獲取的簽名MD5值與正確的MD5值進行對比,就可以識別其APK是否被盜版。


4

 下圖是一些已做過保護的APP的程式碼塊分析:


5

 上圖是「XX省電王「的防止二次打包的關鍵程式碼


6

?上圖是」XX電池管家」的防止二次打包的關鍵程式碼以上兩處都是smali層的程式碼,以上2處程式碼的截圖都是下載量非常高的APP所做的防止二次打包的處理,其處理的程式碼肯定會使用到的關鍵程式碼是Landroid/content/pm/PackageInfo;->signatures:[Landroid/content/pm/Signature。此方法能夠起到一定的安全作用,一般的打包黨面對它是無可奈何的,如果你了解一些smali語法它的作用就等於0了。

7

 愛加密——專業的APP安全保護加固平台!



IT145.com E-mail:sddin#qq.com