Android开发涉及java层和native层开发,所以静态分析也要分两部分来讲。
目前用得比较多的静态分析工具:
APKToolkit,集合了大部分APK逆向的功能,目前稳定的版本是3.0
功能还算强大,但界面做得比较简单。
另外一个工具就是APKIDE,听名字就知道这是一个IDE工具,虽然是IDE但还是不能调试,但查看反编译后的资源文件及smali文件却是相当方便,
关键字还要高亮显示,却是一款不错的静态分析良品工具。
要学习smali语法的可以百度下,应该有很多内容。
但对于很多人来讲,查看smali还不是很方便,接着这些个工具都提供了dex2jar的功能,再用jd-gui工具就可以直接看到java源代码了,
注意这些java代码仅供参考,对于想了解其实现逻辑来讲,看看应该够了,但要直接拿来用,你还是需要对照smali代码来看,反编译出来的难免
存在一些问题。如果加上apk有proguard混淆的话,反编译出来的代码可考性就会大大降低。
但是比起arm 汇编还是轻松不少,所以java层的静态逆向分析,说到底最后都是考验一个分析人员的耐心和运气。
而目前对于so文件,比较好的逆向分析工具就是IDA了,最终会逆向出arm汇编,这方面的资料大家也可以网上找找。