栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android——Android逆向工具

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android——Android逆向工具

Ⅰ、Androidkiller

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


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

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

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

二、反编译

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

    以一款计算机app为例

    点开工程管理器,便会呈现apk的目录结构


    对比得出以下结论:

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

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

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

    当点开文件会出现smali代码,点击上方Javalogo,会呈现Java源码(通过 jd-gui)

三、编译

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

四、运行
    打开Android虚拟机或外挂Android手机或模拟器,点击AndroidKiller上方的”Android“,点击上方”刷新“,选中你的设备,这样电脑就和手机设备连接了( 通过adb ,注意统一adb版本)
    (如果是真机,则需要打开开发者模式,打开USB调试功能)


    AndroidKiller通过 adb 与手机设备连接

    统一 adb 版本(版本不一样可能会造成冲突)

    点击安装,就能将程序安装到手机设备中

    点击卸载,就能卸载(doge)

    注意:重打包的软件不能和原来的在手机设备上共存(签名不一致,无法覆盖安装)
Ⅱ、Apktool
    作用
      用于反编译Android apk,可以将应用中的资源提取出来,也可以在修改资源文件后重新打包。smali 调试主要查看res文件下xml文件、AndroidManifest.xml和图片。(注意:如果直接解压.apk文件,xml文件打开全部是乱码)
    进行解包,获得smail码
    java -jar .apktool的名字 d(反编译) .要解包的apk -o(输出) 文件名

    重新打包
    java -jar .apktool的名字 b(打包) .要打包的文件夹名字
    重新打包后的apk在要打包的文件夹里的dist目录下
Ⅲ、dex2jar(dex to jar)

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


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

      第一种方法
      d2j-dex2jar < dexFilePath > -o < outputJarFilePath >
      dexFilePath: 要反编译的 .dex 文件的文件路径。
      outputJarFilePath: 反编译后输出的 .jar 文件的文件路径。
      第二种方法
      将需要反编译的dex文件(这里是classes.dex)复制到 dex2jar 解压目录下。
      打开命令行进入 d2j-dex2jar.bat 文件所在目录,输入命令 .d2j-dex2jar.bat classes.dex 。(.当前目录 …上一级目录)

    dex2jar 重编译
    dex2jar 重编译命令:d2j-jar2dex < jarFilePath > -o < outputDexFilePath >
    jarFilePath: 要重新编译的 .jar 文件的文件路径。
    outputDexFilePath: 重编译后输出的 .dex 文件的文件路径。
Ⅳ、jd-gui

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

    JD-GUI 是一个用 C++ 开发的 Java 反编译工具
    双击运行 jd-gui.exe 文件,将jar文件拖到工作区即可打开。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/736649.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号