天天看點

靜态分析Smali添加日志

1、準備内容:

1.1、建立Android Studio項目,用于Smali增加日志處理代碼,并生成apk;(logcatCrackDemo項目)

1.2、建立Android Studio項目,并編寫MyLog.java代碼,并生成apk;(logcatDemo項目)

靜态分析Smali添加日志

2、通過ApkIDE修改Smali代碼,增加日志輸出;

2.1、ApkIDE打開logcatdemo項目,點選MyLog.smali,右鍵打開檔案夾;

靜态分析Smali添加日志

2.2、在檔案夾目錄下,拷貝MyLog.smali至logcatCrackDemo的smali檔案夾的根目錄,并在ApkIDE中重新整理smali檔案夾;

靜态分析Smali添加日志

2.3、添加代碼;

2.3.1、修改MyLog.smali代碼,由于已經将MyLog.smali放到了smali根目錄下,是以需要處理把MyLog代碼裡的命名空間删除;

靜态分析Smali添加日志

删除後

靜态分析Smali添加日志

2.3.2、從logcatdemo中的MainActivity.smali中拷貝,MyLog調用方法;

靜态分析Smali添加日志

2.3.3、上一步拷貝的代碼,放入logcatCrackDemo的MainActivity.smali檔案中,并儲存;

靜态分析Smali添加日志

2.3.4、重新生成Apk,并安裝;

靜态分析Smali添加日志

3、用logcat讀取日志

打開指令行輸入:adb logcat -s SQ;

手機打開App即可見到日志資訊

靜态分析Smali添加日志

4、備注

在加代碼的時候需要注意的是:

在invoke-static/invoke-virtual指令傳回類型是V之後可以加入;

在invoke-static/invoke-virtual指令傳回類型不是V,那麼在move-result-object指令之後可以加入。

繼續閱讀