Android 逆向工程概述

dexfire · 2020-4-11 · 次阅读


Android 逆向工程概述

逆向工程,指的是反编译原始代码,最终获取或者近似获取源代码为目的。当然,这通常属于违法行为,而且通常商业产品会对二进制代码进行保护,以防止恶意的反编译。不过呢,反编译也是学习的好方法,我们可以通过反编译,来对大公司产品架构窥知一二,也可以通过分析了解一些核心方法的逻辑,饶过应用逻辑来获取部分应用中的资源。

  • 定义:对Android程序进行解包、转化、反编译等操作,获取和修改源代码。
  • 常用工具
    • APKDB:一款国人开发的工具集,利用了一些工具包,可以进行反编译,回编译,查看代码等。
    • JEB:国外一款针对Android的反编译工具,类似于IDE平台,付费。
    • dx.jar:处理dex文件,转换为jar文件
    • jdax:java编写的反编译工具,可以处理dex,apk文件,反编译得到java代码,可以进行查看,搜索,编辑等操作
    • dexdump:查看dex文件结构
    • dexlist:查看dex的符号名称
    • NDK 工具链:可以对elf、so文件进行分析
  • 一般方法:
  • 分类:
    • 资源修改:替换资源文件,美化,翻译等
    • 查看代码:反编译,或者查看smail代码
    • 修改代码:修改后进行回编译
    • 注入代码:类似于xposed的效果,指定位置注入代码。