日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pk破解实战

發布時間:2025/3/21 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pk破解实战 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://blog.csdn.net/cloudwu007/article/details/6851800?reload

近日使用某在線聽歌軟件,有不少兒童故事不錯,但在線聽經常出現時斷時續情形,而軟件要求積分大于1500才可整頁下載。要滿足積分條件需要手動安裝其推薦的數十個應用,簡直是坑爹。故決定破解之。


假定要破解apk的名字為mytest.apk,則破解步驟如下:


步驟 1:得到resource及smali文件。

1)得到apktool工具

http://code.google.com/p/android-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所在的文件夾里。

??? D:\android\tool\apktool\apktool d C:\mytest.apk? C:\out?

命令行解釋:apktool d 要反編譯的文件 輸出文件夾

特別注意:你要反編譯的文件一定要放在C盤的根目錄里,

3).打開?C:\out文件夾 就可以得到各種資源了。

步驟2:得到java文件

方法a:

1)、把apk文件改名為.zip,然后解壓縮出其中的class.dex文件

2)、安裝把dex文件反編譯為jar文件的工具dex2jar。http://code.google.com/p/dex2jar/downloads/list

3)、把class.dex拷貝到dex2jar.bat所在目錄。
4)、生成jar文件classes.dex.dex2jar.jar
[java] view plaincopyprint?
  • dex2jar.bat?classes.dex??
  • 5)、安裝把jar反編譯為java的工具。(JD-GUI)http://java.decompiler.free.fr/?q=jdgui

    6)、運行JD-GUI工具,打開上面的jar文件

    7)、File -> Save All Sources將生成Java源代碼文件到c:\out

    方法b(TBV):

    1).從out目錄下取得dexdump。

    2).adb shell dexdump -d -f -h /data/dalvik-cache/data@app@mytest.apk@classes.dex > twitpic.text


    步驟3:破解源代碼

    1).查找位置

    由于此軟件要求積分大于1500才可下載,故打開java文件,查找1500發現有三個文件有定義,PlayActivity$12.java,Cfg.java,ScoreDialog$5.java。


    PlayActivity$12.java

    [java] view plaincopyprint?
  • final?class?PlayActivity$12??implements?Runnable??
  • {??
  • ??public?void?run()??
  • ??{??
  • ...??
  • ????int?i?=?1500;??
  • ????int?j;??
  • ????Cfg.IS_WITHAD?=?j;??
  • ????if?(j?!=?0)??
  • ????{??
  • ??????if?(this.val$arg1?>=?i)?//似乎為顯示廣告門限控制值??
  • ????????break?label91;??
  • ??????boolean?bool2?=?Cfg.HIDDEN_GUANGGAO;???
  • ??????label35:?boolean?bool3;?//?????
  • ??????Cfg.HIDDEN_GUANGGAO?=?bool3;??
  • ??????Cfg.SaveBool("hiddenguanggao",?bool3);??
  • ????}??
  • ScoreDialog$5.java

    [java] view plaincopyprint?
  • final?class?ScoreDialog$5??implements?Runnable??
  • {??
  • ??public?void?run()??
  • ??{??
  • ????Object?localObject1?=?null;??
  • ????int?i?=?17301659;??
  • ????int?j?=?1500;???????//Score??
  • ...??
  • ?if?(localProgressDialog?!=?null)??
  • ??????if?(this.val$arg1?<?j)?????//可以猜出此為定義的分數之一,如不滿足則彈出對話框??
  • ??????{??
  • ????????ScoreDialog?localScoreDialog1?=?this.this$0;??

  • Cfg.java [java] view plaincopyprint?
  • public?class?Cfg??
  • {...??
  • ??public?static?final?int?HIDDEN_GUANGGAO_NEED_SCORE?=?1500;?//似乎為顯示廣告與否的分數門限值??
  • PlayActivity$12.java
    [java] view plaincopyprint?
  • final?class?PlayActivity$12??
  • ??implements?Runnable??
  • {??
  • ??public?void?run()??
  • ??{??
  • ????boolean?bool1?=?true;??
  • ????DialogInterface.OnClickListener?localOnClickListener1?=?null;??
  • ????int?i?=?1500;??
  • 但HIDDEN_GUANGGAO_NEED_SCORE并未被其他任何文件應用,但保險起見任然改動此值。??

  • 2)更改smali文件
    smali文件只是將java文件的后綴改為.smali,故可找到上述三文件對應的smali文件
    Cfg.smali
    [java] view plaincopyprint?
  • .field?public?static?final?HIDDEN_GUANGGAO_NEED_SCORE:I?=?0x5DC????????????????//此處改為0x0??

  • PlayActivity$12.smali
    [java] view plaincopyprint?
  • .method?public?run()V??
  • ????.locals?6??
  • ??
  • ????.prologue??
  • ????const/4?v2,?0x1??
  • ????const/4?v4,?0x0??
  • ????const/16?v3,?0x5DC????????????????????????????????????????????????????????//此處改為0x0??

  • ScoreDialog$5.smali
    [java] view plaincopyprint?
  • .method?public?run()V??
  • ????.locals?10??
  • ????.prologue??
  • ????const/4?v7,?0x0??
  • ????const?v5,?0x108009b??????????????????????????????????????????????????????????//對應17301659??
  • ????const/16?v6,?0x5DC???????????????????????????????????????????????????????????//此處改為0x0??
  • 步驟4 將反編譯完的文件重新打包成apk文件out.apk???

    [java] view plaincopyprint?
  • 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] view plaincopyprint?
  • "C:\Program?Files\Java\jdk1.6.0_24\bin\keytool"?-genkey?-alias?wendy.keystore?-keyalg?RSA?-validity?20000?-keystore?wendy.keystore??
  • 注意密碼為6位數,如123456。

    3)、簽名

    [plain] view plaincopyprint?
  • "C:\Program?Files\Java\jdk1.6.0_24\bin\jarsigner"?-verbose?-keystore?wendy.keystore?-signedjar?out.apk?out_raw.apk?wendy.keystore??

  • 此處需輸入第2步的密碼123456,執行完即可生成簽名后的apk文件out.apk.


    安裝后,發現原有限制被破解了,一切成功。

    ref:

    1.一個APK反編譯利器Apktool1

    2.如何反編譯apk

    3.反編譯Android apk文件

    總結

    以上是生活随笔為你收集整理的pk破解实战的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。