歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android混淆代碼bug跟蹤

Android混淆代碼bug跟蹤

日期:2017/3/1 10:15:33   编辑:Linux編程

Android混淆代碼bug跟蹤:

一. 代碼混淆的意義

代碼混淆的一個主要的目的是為了能夠保證代碼的安全性:我們的代碼發布出去以後,有的用戶可能會使用某些反編譯工具查看我們的代碼,為了避免這樣的行為,故有代碼混淆。

代碼混淆以後,原有代碼的包名,類名和方法名會被修改。

二.反編譯工具介紹

Android平台目前常用的反編譯工具主要是:smali這個jar包,其他的工具基本上是對該工具的包裝,這裡有一個比較便捷的工具包dex2jar,該工具可以直接將apk包中的dex文件轉換成jar文件,這樣我們就可以使用jd-gui這樣的工具查看代碼了。

三.問題定位

問題的定位是比較復雜的,基本的思路是

1.准備:錯誤日志、mapping文件、被混淆的apk文件、源代碼

2.反編譯:使用dex2jar反編譯apk包中的dex文件,之後使用jd-gui打開

3.進反編譯的代碼:根據錯誤日志,在jd-gui中找到相應的錯誤位置。(這裡強調使用反編譯的代碼定位錯誤日志主要考慮以下幾點原因:a.重名的方法比較多,反編譯的代碼可以提供二外的信息【參數的個數和類型】;b.便於堆棧的追溯)

4.根據上一步中的定位,使用mapping文件迅速定位到源碼位置

Copyright © Linux教程網 All Rights Reserved