Android 有沒有逆向工程的工具? 效果如何?


1、有。

a)源碼逆向:安卓的安裝程序apk就是個壓縮包,你可以直接用解壓工具(winrar等)直接解壓,出來最主要的是有個dex文件(classes.dex,程序代碼都在這個裡面),可以通過dex2jar逆向成jar文件,用jdgui等工具查看源碼。一般程序都會經過混淆了,所以閱讀起來比較有難度(方法、類名基本都是a、b、c這樣無意義命名的)。

b)資源逆向:安卓界面布局主要使用xml文件進行靈活配置,可能也是被處理加密過了,所以你直接打開解壓後的xml文件可能會是亂碼,可以使用AXMLPrinter進行解密;或者也可以使用主要用於漢化等的AndroidResEdit_By_hanhualangzi_v_1.5.exe的gui工具;

2、效果不一定,取決於多方面的。主要如果是程序編譯沒有經過混淆的話,一般你逆向之後得到的就和原源碼比較接近了(出於編譯優化,注釋會被去掉,還有一些處理會被優化)。


52破解的愛盤裡面有專門的Android逆向工具集,down.52pojie.cn/Tools/Android_Tools/,你所需要的常用Android逆向工具都包含在裡面了。上級目錄還有別的一些逆向工具。

常用的比如

1、AndroidKiller,核心使用ShakaApktool進行反編譯,可以直接用AndroidKiller對反編譯的smali代碼進行修改並直接進行回編譯和簽名,還可以結合Android Studio進行彙編代碼級調試。

使用比較方便,裡面還有個工具可以顯示java代碼,不過準確性還有待驗證。總體來說很好使,比較適合新手入門。

2、AutoAPKTool,一些小工具集


github上有個逆向工具收集,可以看下https://github.com/Juude/droidReverse,個人推薦jadx,可以一鍵反編譯apk


apkide改之理,很好用


說的不錯


推薦閱讀:

有軟體逆向工程師這個職業嗎?
威鋒網友寫的 360 App 逆向分析結果可信么?
安全行業的逆向工程有多難?
那些年病毒用過的損招——反調試技術
要脫掉VMP3.1的殼子需要掌握哪些知識?

TAG:逆向工程 | 軟體工程 | 工程學 | Android |