Android——Android逆向工具

Ⅰ、Androidkiller

Android Killer是一款可以对APK进行反编译的工具,它能够对反编译后的Smali文件进行修改,并将修改后的文件进行打包
apktool、dex2jar、jd-gui的集合体


(注意:androidKiller版本可能太旧,导致反编译失败,需要下载版本更新补丁包或及时更新工具版本

jdk1.8.0 + 已加补丁整合包下载路径
链接:https://pan.baidu.com/s/1oIigQ5QEUnJag-AB0EE4dg
提取码:59lw

一、配置环境

  1. “AndroidKiller”的文件夹目录结构,如图1.1所示,双击打开“AndroidKiller.exe”文件,此时,会弹出一个窗口,提示没有Java SDK环境,直接点击OK进入AndroidKiller工具界面。
    在这里插入图片描述
  2. 选中“主页”菜单栏下的“配置”,选项点击“Java”图标配置JDK安装路径。点击编辑框右边的“文件夹”图标,找到之前安装的JDK目录,选择自己安装的jdk文件夹下的“bin”目录(找“bin”目录下的Java.exe文件),点击确定按钮
    在这里插入图片描述
    在这里插入图片描述

二、反编译

  1. 将需要反编译的 apk 拖进 AndroidKiller 里,进行反编译(通过apk-tool、dex2jar
    当出现 APK 所有反编译工作全部完成!!!时,说明反编译成功

    以一款计算机app为例
    在这里插入图片描述

  2. 点开工程管理器,便会呈现apk的目录结构
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R3ajvSuW-1644761177838)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/72641b65-70af-4fed-bf41-89966394c07f/Untitled.png)]
    在这里插入图片描述
    对比得出以下结论:

    无 META-INF 文件的原因:对apk的反编译过程中,对apk的整体性造成破坏,apk的签名没有存在意义,所以在反编译时被处理掉

    AndroidManifest.xml 文件转换为 values 文件:AndroidManifest.xml 的反编译结果存放在了values开头的文件夹中,(对字符操作时,如汉化,需要修改values文件)

    classses.dex 文件反编译为 smali 代码文件

  3. 当点开文件会出现smali代码,点击上方Javalogo,会呈现Java源码(通过 jd-gui
    在这里插入图片描述
    在这里插入图片描述

三、编译

当对反编译的文件做完操作后,重编译、签名打包成apk,点击上方”Android“后,点击左上角“编译“
当出现APK 所有编译工作全部完成!!!(包括编译与重签名) ,说明反编译成功
在这里插入图片描述
在这里插入图片描述

四、运行

  1. 打开Android虚拟机或外挂Android手机或模拟器,点击AndroidKiller上方的”Android“,点击上方”刷新“,选中你的设备,这样电脑就和手机设备连接了( 通过adb ,注意统一adb版本)
    (如果是真机,则需要打开开发者模式,打开USB调试功能)
    在这里插入图片描述
    在这里插入图片描述
    AndroidKiller通过 adb 与手机设备连接
    在这里插入图片描述
    统一 adb 版本(版本不一样可能会造成冲突)

    在这里插入图片描述
  2. 点击安装,就能将程序安装到手机设备中
    在这里插入图片描述
    在这里插入图片描述
  3. 点击卸载,就能卸载(doge)
    在这里插入图片描述
    注意:重打包的软件不能和原来的在手机设备上共存(签名不一致,无法覆盖安装)
    AndroidKiller会显示Apk安装失败,需要先卸载原APP
    在这里插入图片描述

五、其他

  1. 批量操作与调试
    在这里插入图片描述
  2. 类方法索引
    在这里插入图片描述
  3. 方法操作
    在这里插入图片描述
  4. 类操作
    在这里插入图片描述
  5. 自定义代码块一键插入
    在这里插入图片描述
  6. 关键字语法显示在这里插入图片描述
  7. Unicode转换
    在这里插入图片描述

Ⅱ、Apktool

  1. 作用

    1. 用于反编译Android apk,可以将应用中的资源提取出来,也可以在修改资源文件后重新打包。
    2. smali 调试
    3. 主要查看res文件下xml文件、AndroidManifest.xml和图片。(注意:如果直接解压.apk文件,xml文件打开全部是乱码)
  2. 进行解包,获得smail码

    java -jar .\apktool的名字 d(反编译) .\要解包的apk -o(输出) 文件名
    

    在这里插入图片描述
    在这里插入图片描述

  3. 重新打包

     java -jar .\apktool的名字 b(打包) .\要打包的文件夹名字
    

    重新打包后的apk在要打包的文件夹里的dist目录下
    在这里插入图片描述

Ⅲ、dex2jar(dex to jar)

Android 中的一个反编译工具,它可以将 Android 程序安装包 Apk 文件中的 .dex 文件反编译成一个 .jar 文件,也可以将反编译后的 .jar 文件重新编译成 .dex 文件。


  1. 安装
    将下载的 dex2jar-2.0.zip 压缩文件直接解压到任意文件夹下。
    将 dex2jar-2.0 文件夹的路径配置到 PATH 环境变量中去。
    在命令行窗口输入 d2j-dex2jar 命令按回车键在这里插入图片描述
  2. dex2jar 反编译
    1. 将 Android Apk 文件后缀名 .apk 改成 .zip 文件并解压,获取到它的 .dex 文件(解压后有可能有多个 dex 文件),dex2jar 主要对 classes.dex 文件反编译。
      在这里插入图片描述
    2. 输入dex2jar 反编译命令
      • 第一种方法

        d2j-dex2jar < dexFilePath > -o < outputJarFilePath >
        

        dexFilePath: 要反编译的 .dex 文件的文件路径。
        outputJarFilePath: 反编译后输出的 .jar 文件的文件路径。
        在这里插入图片描述

      • 第二种方法
        将需要反编译的dex文件(这里是classes.dex)复制到 dex2jar 解压目录下。
        打开命令行进入 d2j-dex2jar.bat 文件所在目录,输入命令 .\d2j-dex2jar.bat classes.dex (.\当前目录 …\上一级目录)
        在这里插入图片描述

  3. dex2jar 重编译
    dex2jar 重编译命令:d2j-jar2dex < jarFilePath > -o < outputDexFilePath >
    jarFilePath: 要重新编译的 .jar 文件的文件路径。
    outputDexFilePath: 重编译后输出的 .dex 文件的文件路径。
    在这里插入图片描述

Ⅳ、jd-gui

将源代码转换成二进制执行代码的过程叫“编译”,那么反编译就是将二进制执行代码转换成源代码。
在java开发里,源代码是.java文件,然后经过编译后生成计算机识别的.class文件,但是.class文件是计算机识别的我们一般看不明白,因此需要反编译变成我们能读懂的源码

  1. JD-GUI 是一个用 C++ 开发的 Java 反编译工具
    在这里插入图片描述
  2. 双击运行 jd-gui.exe 文件,将jar文件拖到工作区即可打开。
    在这里插入图片描述

Ⅴ、jadx-gui

jadx是一款反编译器,同时支持命令行和图形界面,能以最简便的方式完成apk的反编译操作。

jadx 支持 Windows、Linux、 macOS,能够打开.apk, .dex, .jar,.zip等格式的文件


  1. 安装jadx
    链接:https://pan.baidu.com/s/1FXaqUEobcuunVeQA-aGJdw?pwd=1234
    提取码:1234
    然后将build/jadx/bin加入到环境变量。

  2. 使用jadx
    通用File - Open file选择文件或者直接将apk拖进窗口中,就可以查看某个 apk 的Java源码(自动分类源代码和资源文件)
    在这里插入图片描述
    用途:更直接地帮助分析代码

Ⅵ、JEB

JEB是一款为安全专业人士设计的功能强大的Android应用程序反编译工具。用于逆向工程或审计APK文件,可以提高效率,减少工程师的分析时间。JEB支持Windows, Linux和Mac OS


  1. 安装jeb

    链接:https://pan.baidu.com/s/1842GhhbKsk8WNaSiJMRVxw?pwd=1234
    提取码:1234

    下载完成后进行解压,解压完成后打开文件夹,运行安装目录下的.bat后缀的文件,等待一会就会出现jeb面板,这就说明我们的jeb工具能成功打开了。
    在这里插入图片描述
    如果cmd窗口显示一个检查更新出错,直接无视就可以了。

    如果没有出现JEB面板,检查一下JDK环境是否配置了“JAVA_HOME”。如果已经配置,就要检查配置的路径是否正确以及检查jdk版本是否过高。

  2. 菜单栏使用

    文件:文件的打开、导入、保存、另存为等操作。

    编辑栏:文件的复制粘贴、搜索、语言设置、style设置字体、选项设置等操作。

    行为栏:包含了快捷键操作:①Q:转换成伪代码 ② /:添加注释 ③ N:重命名 ④ Delete:删除

    窗口:窗口显示的相关设置,使用默认即可。

    帮助:官方的相关信息。
    在这里插入图片描述

  3. 使用JEB反编译
    将APK安装包拖进主界面即自动反编译,结构如下图,如果有外部引用还会有Libraries文件夹。
    在这里插入图片描述
    在这里插入图片描述

Ⅶ、Ul Automator Viewer

链接:https://pan.baidu.com/s/1nkZ32sK3IlanhTEAz21qjA?pwd=1234
提取码:1234
点击uiautomaatorviewer.bat,点击后会出现一个console黑窗口,使用时不要关掉。
在这里插入图片描述
打开APP,在 Ul Automator Viewer 点击 Device Screenshot
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值