Apk文件Hack試驗

試驗1:反編譯dex文件並查看
(1)將Apk文件作爲zip文件解壓縮得到classes.dex
(2)使用dex2jar(http://code.google.com/p/dex2jar/ )工具將dex文件轉爲jar文件
(3)使用jd-gui(http://java.decompiler.free.fr/?q=jdgui )工具查看得到的jar包

試驗2: 修改apk文件的圖標或者文本
1)使用android-apktool(http://code.google.com/p/android-apktool/ )工具解包apk。
    apktool d apk文件 輸出目錄
(2)編輯res目錄下面有圖片文件以及保存有文本的xml文件
(3)編輯smali目錄下的代碼文件,有些文本可能是直接寫到代碼中的,比如文件路徑。
    smali是一種彙編形式的dex代碼,具體參見http://code.google.com/p/smali/
(4)重新打包生成apk
    apktool b apk文件 輸入目錄
(5)簽名併發布
    生成簽名庫,生成的簽名庫可以重複使用。
    keytool -genkey -alias asaiAndroid.keystore -keyalg RSA -validity 20000 -keystore asaiAndroid.keystore
    -alias 後面跟的是別名這裏是 asaiAndroid.store
    -keyalg 是加密方式這裏是RSA
    -validity 是有效期 這裏是20000
    -keystore 就是要生成的keystore的名稱 這裏是asiAndroid.keystore
    然後按回車鍵
    按回車後首先會提示你輸入的密碼:這個在簽名時要用的,要記住
    然後會再確認你的密碼。
    之後會依次叫你輸入姓名、組織單位、組織名稱、城市區域、省份名稱、國家代碼 (CN)等。
(6)簽名
    jarsigner -verbose -keystore asaiAndroid.keystore -signedjar Lotteryonline_signed.apk LotteryOnline.apk    asaiAndroid.keystore
    -keystore: keystore的名稱
    LotteryOnline_signed.apk: 簽名後的APK
    LotteryOnline.apk: 簽名前的APK
    asaiAndroid.keystore要使用的key條目名稱,一個keystore中可能有多個key條目。如果忘記了可以用keytool -list -keysotre store的路徑 來查看
    如何判斷一個apk是否已經簽名?
    jarsigner.exe -verify android_assistant.apk

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章