Android逆向
Android逆向工具思維導圖下載下傳
環境配置
1、寫在前面
- java
- smali
- c++
- arm
2、Android開發環境
- JDK1.8
- JAVA_HOME
- JDK安裝路徑
- CLASSPATH
- .;%JAVA_HOME/lib/dt.jar;%JAVA_HOME/lib/tools.jar
- PATH
- %JAVA_HOME/bin;%JAVA_HOME/jre/bin
- JAVA_HOME
- Android Studio
- SDK
- PATH
- AndroidSDK\platform;AndroidSDK\tools
- PATH
- NDK
- Android Studio下載下傳
- SDK
3、安卓模拟器
4、一台調試手機
- Google親兒子
- 或者root手機
反編譯
Smali
- 字段資訊(.—>/)
Android Killer
- java----->classes.dex
- res------>
- res
- resources.arsc
- AndroidManifest.xml
- AndroidManifest.xml
調試方法
- (老方法:修改源程式)
- 工具:
- Apktool
- java -jar apktool d -d #.apk -o dir
- d(反編譯)
- b(回編譯)
- -d(使用debug模式)
- -o(輸出檔案夾)
- java -jar apktool d -d #.apk -o dir
- ShakaApktoo
- java -jar shakaapktool.jar d -df #.apk -o dir
- d(反編譯)
- b(回編譯)
- -df(使用架構資源檔案)解決api版本問題
- -o(輸出檔案夾)
- java -jar shakaapktool.jar d -df #.apk -o dir
- Apktool
- Android.mainfest檔案application标簽中插入
- android:debuggable=“true”
- 在入口點的類中onCreate方法中添加
- invoke-static{},Landroid/os/Debug=>waitForDebugger()V
- 反編譯修改過的apk檔案
- java -jar apktool.jar b -d dir -o #.apk
- b(會回編譯)
- java -jar apktool.jar b -d dir -o #.apk
- 手動對apk檔案進行簽名
- java -jar signapk.jar testkey.x509.pem testkey.pk8 未簽名apk 生成簽名apk
- adb install #.apk
- 導入apk代碼
- 1、Android打開反編譯後的檔案夾
- 2、找到入口onCreate函數設定斷點(invoke-static{},Landroid/os/Debug=>waitForDebugger()V)下一行設定
- 3、開啟遠端調試(run–>edit–>±->Remote(遠端)–>localhost,8700)
- 4、tools–>Android–>Android Device Monitor(SDK/tools/monitor.bat)
- 注意:
- Android Killer配置自動代碼輔助
- 工具:
- (新方法)
- 反編譯
- Android Killer
- apktool
- apktool
- jadx
- 解壓單個dex2
- Android Studio/IDEA打開反編譯檔案夾
- 配置遠端調試模式
- Remote(local,8700)
- Monitor
- 使用adb以debug方式啟動apk
- adb install #.apk
- adb shell am start -D -n packageName/ActivityName
- packageName:
- AndroidManifest.xml
- ActivityName:
- AndroidManifest.xml(android:name)
- packageName:
- 下好斷點
- 對關注的寄存器添加watch
- 反編譯
- 注意:
- smali檔案修改:
- 1、跳轉修改
- 2、添加log
- 3、手動修改調用類中的方法
- smali檔案修改:
Android Monitor
AndroidSDK中提供的一款全面監控Android系統應用,功能非常強大,無論是做開發還是做破解都是無法離開這款工具的
Monitor日志過濾(老版本)
Android Studio日志過濾(新版本)
JD-GUI
把smali自動變換位java代碼的工具,免費的,并且反編譯結果較為準确,友善平時檢視用,對于一些小型apk軟體很好用
JEB
一個大型的smail代碼反編譯工具,需要購買,價格較貴,相對來說功能比較強大,反編譯結果相對于上面那個的來說要更加準确,當然,對主機要求較高
基本操作:
- 1、重名名
- 2、跟蹤
- 3、傳回
1、插件幫助檔案
- jeb/doc/apidoc
2、插件編寫
- 語言
- java
- python
去除應用廣告
1、抓包
- Charls
- Fiddler