入门逆向(3)jd-gui,jadx-gui工具的使用


重点推荐jadx

Java反编译查看工具推荐jd-gui

jd的开源地址

http://java-decompiler.github.io/

apk 反编译查看工具推荐jadx-gui

jadx的开源地址

https://github.com/skylot/jadx

jd的使用

直接将class拖到jd-gui.exe上即可,同时也支持jar包的反编译查看。

支持查询检索,不过需要注意的检索框中需要勾选查询条件,这样才会把更多的内容给检索出来

jadx-gui的使用

jadx反编译功能很强大,支持apk直接反编译查看,类,方法,变量之间的引用跳转,代码颜色区别提示,检索功能也很给力。

这两个软件都支持代码保存

虽然支持代码保存,但是保存出来的项目基本上不可能当成项目源码使用的,只能说仅供分析阅读代码,不过对于我们来说逆向突破软件的最重要的就是分析突破点。

检索小技巧:

  • 在反编译过程中,有些中文会被反编译或者人为的原因将中文转义成Unicode编码,这个时候就需要将检索的内容先转成Unicode编码然后再去检索。

Unicode转换

http://tool.chinaz.com/tools/unicode.aspx

  • 反编译apk后,首先去看AndroidManifest.xml

因为通过AndroidManifest.xml可以找到程序入口:查找

字符,该段字符表示程序入口,然后向上查找,去activity标签中看android:name中的内容,该内容表示程序入口启动类

  • 其他位置的检索:其他位置的检索可以从元素(如按钮)或者弹窗(Toast)文字检索,如果文字检索不到,要考虑是否Unicode转码了。如果检索出文字在values.xml或者style.xml中,就需要在通过元素在R.id的数值进行再次检索,一般就可以找到引入该元素的activity方法体。

  • 元素定义一般在res文件中,打开res文件可以根据文件名重点去浏览浏览。

如果是有一定安卓开发基础,对这些文件结构就不会陌生,查找起来也比较得心应手,就好比某台机器是你组装的,当你拆解起来也不会太困难,正所谓

知其所以然才能知其然吧。

逆向主要是需要多方面的技能储备。

可以关注我获取系列的文章列表