APP防二次打包技術破解演示

http://www.ijiami.cn/Video?v=4android


 

        Android系統的開放性和免費性等特徵讓開發者和用戶趨之若鶩,用戶也漸漸習慣了Android應用的這種免費午飯,但在免費的背後卻有着巨大的安全陰影。安全

       「Android APP二次打包」則是盜版正規Android APP,破解後植入惡意代碼從新打包。無論從性能、用戶體驗、外觀它都跟正規APP如出一轍可是背後它確悄悄運行着可怕的程序,它會在不知不覺中浪費手機電量、流量,惡意扣費、偷窺隱私等等行爲。ide

        面對二次打包很多公司都有本身的防範措施,知名公司的APP幾乎都是本身在程序內部作過處理防止其APP被二次打包,一旦打包後從新運行則程序自動退出。接下來,我就來詳解一下如何防止APP被二次打包。性能

        要實現代碼內部防止APP被二次打包首先得了解APK的機器識別原理,APK的惟一識別是依靠包名和簽名來作鑑定的,相似豌豆夾的洗白白、360手機衛士等安全軟件對APK的山寨識別,他們就是依賴包名來肯定APK而後經過簽名來肯定其是否山寨。因此說本身的程序內部在啓動的時候能夠經過獲取APK自己的簽名而後和正確的簽名作對比來識別本身是否被二次打包。spa


 

         經過PackageManag對象能夠獲取APK自身的簽名。orm



 

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

 

        下圖是一些已作過保護的APP的代碼塊分析:開發



  

        上圖是」XX電池管家」的防止二次打包的關鍵代碼字符串

 

        以上兩處都是smali層的代碼,以上2處代碼的截圖都是下載量很是高的APP所作的防止二次打包的處理,其處理的代碼確定會使用到的關鍵代碼是get

        Landroid/content/pm/PackageInfo;->signatures:[Landroid/content/pm/Signature。

         此方法可以起到必定的安全做用,通常的打包黨面對它是迫不得已的,若是你瞭解一些smali語法它的做用就等於0了。

相關文章
相關標籤/搜索