Android 台灣中文網

標題: apk解密實戰--線上聽歌軟體 [打印本頁]

作者: fam1001    時間: 2016-3-28 10:58
標題: apk解密實戰--線上聽歌軟體
近日使用某連線聽歌軟體,有不少兒童故事不錯,但連線聽經常出現時斷時續情形,而軟體要求積分大於1500才可整頁下載。要滿足積分條件需要手動安裝其推薦的數十個應用,簡直是坑爹。故決定破解之。
假定要破解apk的名字為mytest.apk,則破解步驟如下:
步驟 1:得到resource及smali檔案1)得到apktool工具
http://code.google.com/p/android-apktool/https://github.com/brutall/brut.apktool下載獲得,apktool-1.0.0.tar.bz2和apktool-install-windows-2.1_r01-1.zip兩個包都要下。解壓縮下載的兩個檔案包,apktool-install-windows-2.1_r01-1.zip解壓縮後得到的包裡有aapt.exe和apktool.bat.(注意要把apktool-1.0.0.tar.bz2解壓後的一個.jar 檔案copy進來)
2)DOS命令視窗下進入到apktool.bat所在的資料夾裡
1.D:android        oolapktoolapktool d C:mytest.apk C:out
命令行解釋:apktool d 要反編譯的檔案 輸出資料夾
特別注意:你要反編譯的檔案一定要放在C盤的根目錄裡,
3)開啟 C:out資料夾 就可以得到各種資源了步驟
2:得到java檔案
方法a:方法b(TBV)步驟3:破解源代碼
1)查找位置
由於此軟體要求積分大於1500才可下載,故開啟java檔案,查找1500發現有三個檔案有定義,PlayActivity$12.java,Cfg.java,ScoreDialog$5.java。
PlayActivity$12.java

  1. final class PlayActivity$12  implements Runnable
  2. {
  3. public void run()
  4. {
  5. ...
  6. int i = 1500;
  7. int j;
  8. Cfg.IS_WITHAD = j;
  9. if (j != 0)
  10. {
  11. if (this.val$arg1 >= i) //似乎為顯示廣告門限控制值
  12. break label91;
  13. boolean bool2 = Cfg.HIDDEN_GUANGGAO;
  14. label35: boolean bool3; //???
  15. Cfg.HIDDEN_GUANGGAO = bool3;
  16. Cfg.SaveBool("hiddenguanggao", bool3);
  17. }
複製代碼



ScoreDialog$5.java

  1. final class ScoreDialog$5  implements Runnable
  2. {
  3. public void run()
  4. {
  5. Object localObject1 = null;
  6. int i = 17301659;
  7. int j = 1500;       //Score
  8. ...
  9. if (localProgressDialog != null)
  10. if (this.val$arg1 < j)     //可以猜出此為定義的分數之一,如不滿足則彈出對話框
  11. {
  12. ScoreDialog localScoreDialog1 = this.this$0;
複製代碼



Cfg.java

  1. public class Cfg
  2. {...
  3. public static final int HIDDEN_GUANGGAO_NEED_SCORE = 1500; //似乎為顯示廣告與否的分數門限值
複製代碼



PlayActivity$12.java

  1. final class PlayActivity$12
  2. implements Runnable{
  3. public void run()
  4. {
  5. boolean bool1 = true;
  6. DialogInterface.OnClickListener localOnClickListener1 = null;
  7. int i = 1500;
  8. 但HIDDEN_GUANGGAO_NEED_SCORE並未被其他任何檔案應用,但保險起見任然改動此值。
複製代碼



2)更改smali檔案
smali檔案只是將java檔案的後綴改為.smali,故可找到上述三檔案對應的smali檔案
Cfg.smali

  1. .field public static final HIDDEN_GUANGGAO_NEED_SCORE:I = 0x5DC                //此處改為0x0
複製代碼



PlayActivity$12.smali

  1. .method public run()V
  2. .locals 6

  3. .prologue
  4. const/4 v2, 0x1
  5. const/4 v4, 0x0
  6. const/16 v3, 0x5DC                                                        //此處改為0x0
複製代碼



ScoreDialog$5.smali

  1. .method public run()V
  2. .locals 10
  3. .prologue
  4. const/4 v7, 0x0
  5. const v5, 0x108009b                                                          //對應17301659
  6. const/16 v6, 0x5DC                                                           //此處改為0x0
複製代碼



步驟4 將反編譯完的檔案重新打包成apk檔案out.apk
  1. apktool b c:out out_raw.apk
複製代碼



步驟5:對生成的apk簽名
1)準備工具
如沒有安裝JDK,請在Sun官方網站下載JDKhttp://www.java.net/download/jdk6/6u10/promoted/b32/binaries/jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008.exe,其實僅需要中的Keytool和Jarsigner。
2)準備簽名檔案
[java]
1."C:Program FilesJavajdk1.6.0_24inkeytool" -genkey -alias wendy.keystore -keyalg RSA -validity 20000 -keystore wendy.keystore

注意密碼為6位數,如123456。
3)簽名
[plain]
1."C:Program FilesJavajdk1.6.0_24injarsigner" -verbose -keystore wendy.keystore -signedjar out.apk out_raw.apk wendy.keystore

此處需輸入第2步的密碼123456,執行完即可生成簽名後的apk檔案out.apk.
安裝後,發現原有限制被破解了,一切成功。


作者: alarm21    時間: 2016-9-27 14:02
看完你的內容
應該可以試試看

作者: mc9765    時間: 2016-12-6 05:16

看完你的內容
應該可以試試看 !!!

作者: qweruipo3    時間: 2016-12-18 22:50


看完你的內容
應該可以試試看 !!!
作者: jaulong    時間: 2017-6-25 12:25
看完你的內容
應該我還是不會
作者: jimmy724    時間: 2018-2-22 22:04
看了你的介绍, 到想下载来试试手
作者: netleoian    時間: 2018-5-17 09:35
想請問
ScoreDialog$5.smali 跟 PlayActivity$12.smali
個別是在處理什麼嗎?
看完之後還是不太懂 怎都是兩個都是放0放回去?
作者: hytang    時間: 2020-12-10 17:02
看完你的內容
應該我也是不會!!!太難了
作者: fh7889    時間: 2021-1-28 09:28
看完你的內容
我決定了
我還是不要聽歌好了
作者: avc978    時間: 2021-1-28 15:07
很詳細,可以拿來當參考資料,趕戲ㄝ
作者: runamokula    時間: 2021-2-1 22:32
看完你的內容
應該我還是不會
作者: gzwzgs    時間: 2021-3-1 07:24
看完你的內容
應該可以試試看 !!!
作者: treehawthorn    時間: 2021-7-6 16:42
太難了!!我還是不要聽歌好了
作者: evilsp    時間: 2021-9-12 16:17
感謝大大的密技
實在是太好用了
作者: evilsp    時間: 2021-12-23 22:56
很詳細,可以拿來當參考資料,趕戲ㄝ
作者: evilsp    時間: 2021-12-23 22:59
很詳細,可以拿來當參考資料,趕戲ㄝ
作者: p0937795182    時間: 2022-2-6 17:43
看完你的內容
應該我還是不會
作者: leochen0106    時間: 2023-3-16 19:45
看完你的內容 給你一個讚!!!!!!!!
作者: great1197    時間: 2023-7-1 05:50
看完上面的做法,我都暈了~~
還是請樓上的各位大大試吧!!
作者: jackyu0215    時間: 2023-8-11 16:50
看完你的內容
應該我要試試1500遍,才可能破解成功 / \
作者: yyhung    時間: 2023-8-15 12:24
看了樓主的說明
只能說,太強大了
不過,我可能仍然學不會
無論如何
還是謝謝樓主無私的分享

作者: vic003627    時間: 2023-9-26 08:37
看完你的內容
應該我還是不會
作者: lljh80168    時間: 2024-4-6 08:45
非常詳細,趕快來實驗看看




歡迎光臨 Android 台灣中文網 (https://apk.tw/) Powered by Discuz! X3.1