学了安全的人大部分都会知道,最近的安全行业一直都是人们关注的热点,我国对安全行业的人员需求越来越大,可是在安全逐渐壮大的队列中,有一个行业正悄悄得茁壮成长。
那个鲜为人知的行业就是安卓逆向,为什么会没人知道,原因很简单,如下图所示
我们可以知道,一个开发工程师,除了需要开发经验,也需要安全运营的经验,因此对安卓开发工程师有了一个新的要求:安卓逆向分析。而招聘的表面却是Android开发工程师,这就是安卓逆向的优先权。
而我将安卓逆向工程的工具分为三大主要工具:
Android killer:一款可视化的安卓应用逆向工具,集Apk反编译、Apk打包、Apk签名,编码互转,ADB通信(应用安装-卸载-运行-设备文件管理)等特色功能于一身,支持logcat日志输出,语法高亮,基于关键字(支持单行代码或多行代码段)项目内搜索,可自定义外部工具;吸收融汇多种工具功能与特点,打造一站式逆向工具操作体验,大大简化了安卓应用/游戏修改过程中各类繁琐工作。
主要功能:
1、可视化、全自动的反编译、编译、签名;支持批量编译APK。
2、以树形目录管理反编译出的Apk源码文件,浏览、打开、编辑、都可以统一在软件中实现,不同项目间可以自由切换,方便快捷。
3、自动识别图像资源,并提供该类资源的快捷替换功能,方便修改这类图片资源。
4、内置代码编辑器,支持包含(但不限于).samli、.xml、.html等各类格式文件的语法高亮显示,根据 smali文件格式的自动匹配相应语法;同时支持使用系统编辑器来编辑代码文件。
5、内置基于文件内容的单行或多行代码关键字搜索、可显示无穷多个搜索结果以标签的形式分门别类;可指定搜索范围(整个项目或在指定的文件或文件夹中搜索)、大小写,编码类型;从此无需再借助其他工具,即可轻松的完成搜索任务。
6、内嵌Unicode、UTF8、ANSI编码互转工具,方便硬编码文字的检索以及相关汉化类修改。
7、内置Log等调试工具,方便应用进程、logcat输出查看等进阶操作,监测修改apk的运行状况,以助于分析和查找错误
8、内置ADB功能,包括使用ADB向设备(或模拟器)安装、卸载、运行修改后的apk,进行测试,并可管理所连接设备的存储文件(包括系统以及用户文件)
9、所有操作步骤、结果都会显示在日志窗口,方便查看。
10、默认支持记事本、计算器等小工具,开放设置接口可根据需要自定义外部工具,满足个性化需求。
Jeb: JEB是一个功能强大的为安全专业人士设计的Android应用程序的反编译工具。用于逆向工程或审计APK文件,可以提高效率减少许多工程师的分析时间。
主要功能:
1.全面的Dalvik反编译器。
JEB的独特功能是,其Dalvik字节码反编译为Java源代码的能力。无需DEX-JAR转换工具。我们公司内部的反编译器需要考虑的Dalvik的细微之处,并明智地使用目前在DEX文件的元数据。
2.交互性
分析师需要灵活的工具,特别是当他们处理混淆的或受保护的代码块。JEB的强大的用户界面,使您可以检查交叉引用,重命名的方法,字段,类,代码和数据之间导航,做笔记,添加注释,以及更多。
3.可全面测试APK文件内容。
检查解压缩的资源和资产,证书,字符串和常量等。
追踪您的进展情况。
不要让研究的工时浪费。保存您的分析对JEB数据库文件,通过JEB的修订历史记录机制和跟踪进展。
4.多平台。
JEB支持Windows, Linux和Mac OS。
特点:
第三方Java反编译器输出
·静态代码,没有互动性
·反编译错误(箭头)
·结果在不可读性和可用性差
工程师进行了分析后的JEB的输出代码。
JADX:
这一款是我最喜欢的一款软件,反编译能力极强,相当不错的java反编译器,支持jar,aar,dex,apk的反编译
主要功能:
1. 操作方便快捷,一步到位
2.有较为完善的gui界面,带有较多实用功能
3.反编译代码可读性高
4.支持全局搜索class、method、field、code
就目前这个技术,我已经破译超过20款存在危险。