vc2010中开始执行不调试灰的_反编译动态调试smali全过程
點擊上方藍字關注我,每天進步一點點
大家都知道我們在逆向分析的時候,很多時候主要在分析邏輯。網絡抓包、數據來源流向分析、頁面邏輯跳轉分析、動態調試等。由于很多代碼都會混淆,很多時候我們直接通過代碼可能看不出邏輯走向,所以我們就會選擇斷點來進行調試。
C層一般會使用IDA進行調試分析,Java層常常就會需要對Smali代碼進行調試分析。
工具準備
我這邊是使用的Android studio + smaliidea(as插件) 配合調試
smaliidea最新下載地址;smaliidea 網上有很多提供的下載的文件都比較小,不是真正的smaliidea插件,所以在as安裝的時候會失敗。
開始實踐
工具準備好了,接下來就開始怎么調試呢。首先反編譯一個apk,把AndroidManifest.xml在application節點添加一句android:debugable="true" 表示apk 可以調試。改好之后,用apktool 回編譯好。反編譯參考我的另一片文章-反編譯-替換APP的首頁
安裝插件
apk準備好之后就該配置as了。先安裝smaliidea插件
安裝完后重啟as
把smali文件作為source目錄。
配置as
創建Remote調試器
我看好多通過monitor 查看要調試應用的進程。我這邊搗鼓半天monitor也不好用,一直白屏,果斷放棄,
不就是看要調試應用的pid嗎,用命令行也可以
adb shell ps | grep com.zzx.demo
u0_a359 ? ? ?22189 ? 626 4460076 ?36324 0
上面22189就是我要調試應用的pid
然后執行調試adb 命令
adb shell am start -D -n com.zzx.demo/.MainActivityStarting: Intent { cmp=com.zzx.demo/.MainActivity }進行端口映射
adb forward tcp:port_A jdwp:pid ? ?//其中,port_A 為添加 remote 調試時指定的端口號,pid 即為第二步中獲得對應調試進程的 pid
比如我的就需要執行:
adb forward tcp:5005 jdwp:22189
5005就是我上面remote 配置的端口號,22189是我要調試應用的pid
接下來在as中選中調試的應用,就可以進入調試狀態
使用 run -> attach debugger to Android Process 選項,根據提示選擇待調試進程即可。正確操作時,移動設備上的 waiting for debugger 對話框會消失。
成功截圖:
通過上述方法啟動調試之后,即可進行正常的調試過程。常見的方案是在經過分析所得的可能執行路徑上事先設置斷點,之后在移動設備上進行對應的 app 操作,若分析正確,則 app 會執行對應的流程,從而觸發斷點,從而可以進行進一步的分析。
總結:
好多東西看別人寫的文章挺簡單,輪到自己試的時候,各種坑,只有經歷過才知道,所以能動手走一趟盡量動手,會遇到你想不到的坑,哈哈哈
點個在看你最好看
總結
以上是生活随笔為你收集整理的vc2010中开始执行不调试灰的_反编译动态调试smali全过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 总线上加三个终端电阻可以吗_什么是RS4
- 下一篇: 怎么设置ppt页面的长度和宽度_在PPT