Android逆向java
經常使用Android快速定位關鍵代碼介紹編程
根據程序運行中出現的特徵字詞進行搜索,從而獲取定位到程序相關位置之中,之前用的比較多,不過如今通常難以找到想要的關鍵字,有時候須要對特徵字進行拆分來進行搜索,才能得到一點提示api
經過掛鉤關鍵的系統api,從而截取程序運行時候的數據,分析程序行爲從行爲上入手,一步一步地逼近關鍵點,這點算是比較難用到的技巧,須要對Android函數以及編程方面至關的熟悉,才能使用框架
使用到Xposed或者cydia之類的Hook框架,手動編寫Hook代碼,勾取須要的函數,動態dump出須要的信息ide
Android Log信息,是Android程序運行過程當中,產生的一些運行信息,這些信息多是因爲目標程序產生的,也有多是系統進程產生的。總之,能夠提供很是多的信息,遇到問題,先找log,確定是對的。函數
跟蹤程序運行中的各個Thread的調用與運行類調試
進程函數調用跟蹤,通常會跟蹤到不少的Trace函數,比較複雜,須要花費不少的時間去分析Trace數據
startMethodTracing()—stopMethodTracing()進程
對本身關注的地方,手動插入log數據,自動打印出程序運行時候的參數ci
動態調試很強大,熟悉了對程序分析頗有用字符串
log插入爲例
如一個靜態返回helloword的方法:
.class public Lf8/helloword/helloStr;.super Ljava/lang/Object;.method public static retHello()Ljava/lang/String;.locals 1const-string v0,「hello word」return-object v0.end method