標籤:
6、啟動andbug
./andbug shell -p com.android.browser
7、列舉apk中的類資訊
命令:classes
作用:列舉出指定apk中使用的所有的Class資訊,包括apk中自己實現的Class以及所調用的系統class資訊
另外classes命令後邊可以跟Class名稱的資訊,通過添加名稱資訊,可以列舉出合格class的資訊。
如:classes app
8、列舉指定類的方法資訊
命令:methods android.app.NotificationManager
功能:列舉出android.app.NotificationManager類中的所有方法資訊
名稱: 圖片10_副本.png查看次數: 2檔案大小: 206.6 KB
9、斷點操作
9.1 對類設定斷點,所有設計該類的操作都會終止下來
break java.io.File
可以通過break-list命令查看斷點設定情況
9.2 對方法進行斷點設定
通過下面命令對函數進行中斷
>> break java.io.File delete
9.3 斷點觸發的情況
設定斷點後,操作apk程式,一旦程式出發了某個設定的斷點,整個程式就會掛起,並顯示相關資訊。通過輸出的資訊可以知道,apk由於調用了java.io.File.exists()Z:0函數被中斷下來。其他資訊還包括整個調用java.io.File.exists()Z:0函數的堆棧資訊。
9.4 刪除已設定斷點
通過break-remove 536870916
將之前設定的中斷刪除掉
另外:break-remove all表示刪除所有當前設定的斷點。
10、恢複運行
命令:resume
功能:觸發斷點整個進程暫停後,通過調用resume命令,繼續運行該apk
註:由於代碼中bug的原因,需要連續兩次調用resume命令才能恢複apk的運行
11、進程暫停命令
命令:suspend
功能:暫停當前apk進程
由於還沒有與該命令配合使用的命令,實際使用中沒有太大作用
12、協助命令help
13、class-trace 類跟蹤命令
命令:class-trace java.io.File
功能:對 java.io.File類的調用情況進行跟蹤
可以看到“thread <15> BackgroundHandler”線程,調用了“java.io.File.renameTo”,調用的參數是:
-- this=Ljava/io/File; <830018592096>
-- newPath=Ljava/io/File; <830016257352>
並且可以看到整個的堆棧調用的情況。
取消跟蹤也可以使用break-remove命令實現。
14、method-trace 方法跟蹤命令
命令:method-trace java.io.File renameTo
功能:對java.io.File renameTo函數進行跟蹤,跟蹤與直接設定斷點的差別是,使用跟蹤不中斷目標進程的執行,只對相應函數的調用資訊進行輸出。
擷取函數調用的跟蹤資訊
15、列舉當前線程資訊
命令:threads
16、對線程進行跟蹤
命令:thread-trace
將main線程設定為跟蹤縣城,所有main縣城相關的調用都會被跟蹤下來,:
會列出函數調用的情況,參數,以及堆棧情況。
17、顯示指定類中的靜態變數的資訊
命令:statics com.android.internal.view.menu.MenuBuilder
18、查看對象資訊
通過class-trace命令可以跟蹤到目標函數中對象的Id資訊,
通過對象的Id使用inspect命令,可以查處該隊形的詳細資料。
由於在break命令設定斷點後,觸發斷點時反饋的資訊,沒有包含Object Id的資訊,導致inspect命令用起來不是很方便。
19、源碼關聯命令
命令:source 與原始碼關聯起來,可以是smali代碼。
命令:dump 展示指定方法的代碼。
20、Web輸出命令
命令:navi
註:為了支援navi命令,需要安**ottle庫。
需要bottle庫。應該是一個web展示的頁面
需要安**ottle庫,來實現。
21、退出命令
命令:exit
•系統營運
•雲端運算
•研發管理
•綜合
0 0 0 分享 imgimg
©1999-2012, csdn.net, All Rights Reserved
Android andbug 命令