標籤:
研究了一下android的apk困惑簽名和程式碼封裝裝,假設沒有混亂包。然後apk人們可以直接查看原始碼反編譯出來,儘管混亂包或能看懂。但不是那麼容易理解,要求在至少一些時間
假設不混淆,反編譯後的代碼例如以下:
基本上就是原始碼。
假設混淆後,反編譯後的代碼例如以下:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3lpX3RkY3E=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" >
代碼中出現非常多的a、b、c之類的變數命名,所以要讀懂就具有一定的困難了!
以下先說一下apk的簽名:
1.apk簽名必須先弄一個key,怎樣產生key呢?那麼就要運用jdk來產生。
首先必須把jdk在系統內容變數中配置好。
這個就不多說了,這是使用java就必須配置好的。
2.產生keystore
執行cmd。然後使用cd 進入 C:\Program Files\Java\jdk1.6.0_10\bin>(也就是你C盤的安裝jdk的位置)檔案夾下,然後輸入keytool -genkey -aliasandroid.keystore -keyalg RSA -validity 50000 -keystoreandroid.keystore
參數意義:-validity主要是認證的有效期間,寫50000天。
紅色的android字樣能夠隨便改成自己的命名。
命令運行後會在C:\Program Files\Java\jdk1.6.0_10\bin>檔案夾下產生 android.keystore檔案。例如以:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3lpX3RkY3E=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" >
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3lpX3RkY3E=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" >
弄到apk後就能夠打包了,而且帶上自己的簽名。
在打包前我們須要加點東西來混淆代碼。是我們打包後再反編譯後無法正常查看代碼。
混淆代碼事實上灰常簡單。在須要打包的項目下找到 project.properties這個檔案。開啟然後在最以下加上一句話就ok了,例如以:
低版本號碼的adt不是這樣寫的。高版本號碼就這樣寫就ok了,假設是低版本號碼的話是寫成 proguard.config=proguard.cfg。只是如今一般都用不上了,都是搞版本號碼的。在高版本號碼中這樣寫就會在打包的最後步驟上報錯:報錯的大概內容是:
invalid proguard configuration file path c:.../proguard.cfg dose not exist or is not regular file
加完後就能夠簽名打包apk了。
在Eclipse介面點擊 File-》Export...
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3lpX3RkY3E=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" >
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3lpX3RkY3E=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" >
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3lpX3RkY3E=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" >
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGlhb3lpX3RkY3E=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" >
然後就能夠了!成功到處帶簽名的混淆代碼的apk。
著作權聲明:本文部落格原創文章,部落格,未經同意,不得轉載。
android程式碼簽署和混亂的封裝