我們知道很多apk光是靜態調試時遠遠滿足不了我們對apk的分析,這個時候,我們就需要來一波靜態調試。
此處爲個人筆記,也爲入門小白引路,這裏就不看結果了,主要是教大家怎麼結合調試。
起因是昨天剛看了動態調試的方法,我就想來試試。結果電腦上只有Android studio。好吧,那我就百度了Android studio的調試。然後用模擬器,結果那個模擬器太惱火了,慢死人,還卡。(學生黨,只能苦逼用低配筆記本)然後身邊唯一一根數據線居然罷工。沒辦法,後來突然想起來,藍疊模擬器很快了,可不可以試試。於是就有了下文。好了,不廢話了,進入正題。
一、工具
毫無疑問:Android studio(附帶SDK,這個不多說) 藍疊
然後有個大家可能大家不知道的東西 smalidea 這個百度一大堆。我就不多說了,自己去下一個就是了
然後一個反編譯的工具 jeb apkIDE AndroidKiller等等,都可以
我用的是jeb
二、環境
1.java那些環境我想這個不應該說了,然後就是adb的環境,最好是加到環境配置中去,方便,省事。
2.smalidea 這個是配置到Android studio的,配置了才能看smali文件
具體步驟:
然後選擇你本地smalidea文件,這裏說一句,最好不要有中文路徑。也行不一定會出問題,但是不一定不會出問題。
這個樣子就是OK了
一般會重啓一下Android studio
三、準備
這部分是反編譯出文件,然後導入到Android studio中去。
我這裏用的jeb反編譯的,各位請用自己喜歡的,都可以哈。
看到反編譯成功,我們就去把文件提取出來
這裏最好是也是不要放中文路徑最好
接來下比較重要,一步一步操作。
然後選擇我們放進去的反編譯的文件夾
然後點那個三角
添加一個remote
名字隨便取,端口號爲8700
之後我們打開cmd。進行adb的安裝
adb install -r apk的位置\apk全名
看到succe就知道成功了,藍疊也會有提示的(一直默認藍疊是開啓的,沒開的我就無語了)
然後進去調試狀態
adb shell am start -D -n packageName/ActivityName
藍疊也會這樣顯示
說明進入了調試狀態,這個時候千萬不要去點Force Close
四、進入調試
進入調試之前我們還需要去monitor看看我們是否端口號給正確了。
點擊我們需要調試的apk包名,把8700端口給它
然後我們就可以調試了
這個時候我們需要去源碼看看我們在哪裏下斷點了。這裏就不多說了
我直接點斷點了。在這行代碼前面點一下,就斷好了
然後點上面那個就可以進行調試了
下面是我們的信息地方,我們可以點加,進行添加寄存器
最後就可以進行調試,看看寄存器的值的變化了。F7是進入方法,F8是單步。