先談談反組譯APK好了,當你開開心心的使用原生語言(Java)完成你的Android App後,所產生的APK檔案,事實上有心人可以透過幾個工具讓他還原成可以看的懂的樣子。
這也是許多網站提供破解版,無廣告版的由來,反組譯後把廣告,收費的程式碼改掉後,再塞入他們自己的一些善意程式,像是偷聯絡資訊之類的。
使用dex2jar來反組譯apk,你可以到這個網站下載。
隨便選一個連結來下載吧。
如果沒載錯,應該會有一個資料夾裡面裝了很多.sh .bat的檔案。
接著隨便找一個你想反組譯的apk,並且把他的副檔名改成.zip
解壓縮後複製裡面的classes.dex檔。
丟到我們剛才下載的dex2jar資料夾裡面。
開啟你的終端機,移動到dex2jar的資料夾裡面。
MAC
./d2j-dex2jar.sh
Windows
d2j-jar2dex.bat
如果他跟你說權限不足,就輸入以下的指令修改權限
chmod a+x *.sh
把所有.sh的檔案權限都修改。
接著你應該可以使用它了,利用他把dex檔轉成Jar
MAC
./d2j-dex2jar.sh classes.dex
Windows
d2j-jar2dex.bat classes.dex
你的資料夾內會多一個classes-dex2jar.jar的檔案,你可以使用這個工具來開啟它。
接著你就能看到這個Apk的程式碼了。
左邊是我原本專案的程式碼,右邊是反編譯解開後看到的程式碼。
連你implements哪些東西都看得見
那麼該怎麼辦呢,你可以做的其中一件事就是使用ProGuard。
點開你的bulid.gradle,把minifyEnabled改成true就可以了
再拿相同的檔案進行反組譯看看。
你會發現變數名稱,方法名稱,類別名稱都會變成比較難辨識的abcdef...
這樣雖然無法完全保護你的程式碼,只是讓破解變的稍微難一點,不過有做總比沒做好,你總不希望你的心血被人家偷過去吧。
沒有留言:
張貼留言