文章目錄
- 前言
- 下載并使用adb安裝
- 使用apktool反編譯apk
- 設定動態除錯環境
- 開始除錯
前言
本文是對52pojie《教我兄弟學Android逆向系列課程》按照自己思路的實踐,不完全按照原文思路,
原文思路筆者認為走了彎路,且使用了較多工具,
此文使用到的工具僅為:adb、apktool、idea
原文鏈接:教我兄弟學Android逆向04 動態除錯smali代碼
下載并使用adb安裝
apk鏈接:https://pan.baidu.com/s/1smNIrST 密碼:uzsa
下載完成后,使用adb進行安裝
adb install jwx02.apk
安裝完成后,在所有應用中可以找到:

應用界面:

使用apktool反編譯apk
apktool d jwx02.apk
反編譯完成后,在apk檔案夾下會生成一個和apk同名的檔案夾,內容如下:

其中的smali檔案夾就是反編譯后的smali檔案,
由于smalidea插件不支持android studio 4.1版本,因此這里使用idea進行除錯,
smalidea插件下載地址:download page
在idea中安裝:
file->setting->plugins->install plugin from disk

安裝完成后,需要重啟idea并完成如下修改:
file->setting->editor->filetype

點擊加號并填入*.smali, 然后點擊確定,
將使用apktool反編譯生成的smali檔案夾拖入idea中,不出意外的話,這里已經可以對檔案下斷點了,

設定動態除錯環境
尋找要除錯apk的包名和入口activity,可以在apktool反編譯的檔案夾下的AndroidManifest.xml檔案中找到:

輸入命令開啟除錯:
adb shell am start -D -n hfdcxy.com.myapplication/hfdcxy.com.myapplication.MainActivity
找到對應包名的pid
adb shell ps

這里是14288
然后使用adb轉發本地埠:
adb forward tcp:8800 jdwp:14288

緊接在idea中配置遠程除錯:

選擇remote jvm debug

埠填為剛剛寫的轉發的埠:8800

點擊OK就設定完成了,
開始除錯
打開main activity, 找到check函式,并設定斷點:

點擊右上角的debug

在程式中輸入用戶名和密碼,并點擊登錄,可以成功斷在斷點位置:

除錯資訊如下圖所示

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/261761.html
標籤:其他
