介紹
本帖主要講解動態調試release-apk,可以查看apk運行中變量值和運行邏輯,本篇爲android逆向基礎篇
本帖涉及到android一些基礎知識
1: android基礎知識
2: AndroidStuduo的基本使用
3: smali的基本語法
開發工具
工具名稱 | 工具類型 | 說明 |
---|---|---|
AndroidStuduo | 編輯工具 | 看android源碼和smali用的 |
monitor | SDK工具 | 這個sdk自帶的工具用於debug |
apkToolr | java工具 | 將apk解成smali項目 |
jadx | java工具 | 將apk解成java項目 |
smalidea | AndroidStuduo插件 | 這個是識別smali用的 |
VirtualApp | apk | 可理解成虛擬手機,打開VirtualApp添加需要調試的應用,這樣就可以成debug模式 |
開始
1:將apk解成smali文件和java文件
- 將apk轉smali(用於調試)
控制檯輸入 java -jar apkTool的絕對路徑 d apk的絕對路徑 例如:java -jar apktool.jar d test.apk
- 將apk轉成as項目(用於看源碼)
1:打開jadx的bin目錄的 jadx-gui.bat 文件(會彈出選擇文件的界面) 2:選擇你的apk,等待加載完畢 3:可以選擇選擇file → save as gradle project導出去(也可以直接在裏面看代碼)
2: AndroidStuduo導入smali
-
裝插件 file → settings → plugins → install plugin from disk 選擇剛剛下載好的smalidea這個插件,然後重啓生效
-
第二步:導入smali工程(和導入android工程一樣) , file → new → import Project 選擇剛剛導出來的smali項目
3:將AndroidStudio運行模式設置爲遠程調試模式
-
打開Edit Configurations…
-
在出現的界面,點擊左上角的“+”,在出現的下拉列表中再點擊“Remote”
-
設置遠程調試的名稱和監聽遠程的端口→將遠程名稱設置爲“8700” ,Name可以設置也可以不設置
4:ADM(AndroidDeviceMonitor)+ AS(AndroidStudio) + VirtualApp協同開始動態調試
1: 打開ADM
找到SDK 根目錄 → tools → 打開monitor.bat
2: VirtualApp使用,添加需要調試的app
1: 安裝VirtualApp,
2:安裝需要調試的apk,
3:VirtualApp添加需要調試的apk(有個添加app)
3: 開始調試
3.1:打開剛剛添加的apk,查看ADM是不是出現了進程名,如下圖
3.2:在ADM裏面選中需要調試的進程名
3.3:在開始打開smali工程的AS裏面點擊debug的圖標
3.4:這時候ADM會出現一個小瓢蟲,說明正常的debug了
3.5:smali工程就可以斷點調試了,如果程序走到這裏就會斷住