發表文章

[Android]反編譯apk以及去廣告

參考: [Android] 人人都會的 apk 反編譯 、 Android APK反编译及去广告汉化,apk优化签名等 、 Android:Keystore 建立與管理 事前準備 首先,我們需要一個用來被破解的 apk,隨便找一個就可以了,也可以使用自己寫的檔案。 接著你需要一些非常好用的工具(建議都放在同一個資料夾) apktool jd-gui dex2jar 如何安裝就不再贅述了,大家看看文件或是上網搜尋一下就會有一堆解答 apktool 是拿來把 apk 拆開用的 ,可以反編譯 apk 之後,看到 smali 檔案跟 resource dex2jar 可以把 apk 轉成 jar ,再用 jd-gui 檢視 java code   實際動手(需要對cmd操作有基本認識) 接著我們開啟 PowerShell,到剛剛那個示範 apk 的目錄底下,執行 .\apktool d APKNAME.apk 執行以後,會自動生成一個 APKNAME 的資料夾,裡面就是反編譯出來的東西了 smali 這個資料夾,其實這裡面就是source code,只是格式不太一樣 修改 而我們想要修改掉的廣告,則是去layout裡面修改跟廣告有關的xml即可 把寬高都設為0dip android:layout_width="0dip" android:layout_height="0dip"  確定都有改完以後,就可以把這些程式碼再度「組裝」回去 還記得剛剛反編譯的指令嗎? .\ apktool d APK_NAME.apk 這邊的 d 就是 decompile 的意思,所以如果要逆向組裝回去,就是 b , build .\apktool b APK_NAME 執行完之後可以在 APK_NAME/dist 下面找到一個 apk 要注意的是這個 apk 還沒有被 sign 過,因此無法安裝 可以隨便生成一個 keystore 或是找現成的來簽署 jarsigner -verbose -digestalg SHA1 -keystore KEY.jks APK_NA