安卓逆向_10 --- Log 日志的插入和分析、toast方法、栈跟踪
?
From:https://blog.csdn.net/weixin_42680210/article/details/90384358
?
?
在安卓逆向中,常常用到?棧跟蹤、toast方法、Log日志的插入 等,以便于我們更好的分析代碼,下面就演示下這三個方法的使用及簡單的分析。。。
?
?
1. 插入 Log 信息輸出:
?
在方法的開始處,右擊 ---> 插入代碼 ---> Log信息輸出
插入代碼:
然后 反編譯 apk,并安裝到模擬器,打開 ddms 查看 log 日志
這里我們就看到了剛剛在更新代碼添加的 log 信息。
?
?
2. toast 彈窗的輸出
?
簡單起見,在剛剛的 log 代碼位置下面,右擊 ---> 插入代碼 ---> toast輸出? 插入一段 toast 代碼
反編譯 apk,安裝后我們查看效果
此時我們也可以在 ddms 中查看到日志輸出,由此我們可以分析:?
? java.lang.Exception: denglibo Toast callstack! strTip=我是toast提示?at android.widget.Toast.show(Toast.java:127)at com.reader.activity.MainActivity.showMustUpdateDialog(MainActivity.java:327)程序先執行了 MainActivity 文件的 showMustUpdateDialog 方法,然后執行了 show 方法( 注意:程序的運行順序由下往上執行輸出?)。通過簡單的插入?toast輸出,就可以查看程序的執行順序,方便我們分析復雜的程序執行順序。
?
?
3. 棧跟蹤的使用
?
在剛剛的 toast 代碼下面,我們右擊->插入代碼->stack trace棧跟蹤 插入一段棧跟蹤代碼
smali 代碼:
# 棧跟蹤 new-instance v0, Ljava/lang/Exception; const-string v1, "print trace" invoke-direct {v0, v1}, Ljava/lang/Exception; -><init>(Ljava/lang/String;)V invoke-virtual {v0}, Ljava/lang/Exception; ->printStackTrace()V # 棧跟蹤回編譯 apk,安裝,打開安裝好的 apk 和 ddms 查看
同樣的我們也可以通過棧跟蹤的方法查看到程序執行的順序!
?
?
?
總結
以上是生活随笔為你收集整理的安卓逆向_10 --- Log 日志的插入和分析、toast方法、栈跟踪的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【进阶】 --- 多线程、多进程、异步I
- 下一篇: Spring Data JPA 从入门到