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
-
-
Android Studio
-
SDK
-
PATH
- AndroidSDK\platform;AndroidSDK\tools
-
-
NDK
- Android Studio下載
-
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(輸出文件夾)
-
-
ShakaApktoo
-
java -jar shakaapktool.jar d -df #.apk -o dir
- d(反編譯)
- b(回編譯)
- -df(使用框架資源文件)解決api版本問題
- -o(輸出文件夾)
-
-
-
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(會回編譯)
-
-
手動對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)
-
-
-
下好斷點
-
對關注的寄存器添加watch
-
-
注意:
-
smali文件修改:
- 1、跳轉修改
- 2、添加log
- 3、手動修改調用類中的方法
-
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