900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > MAC下Apktool dex2jar jd-gui的安装和反编译 回编译 重新签名简单使用

MAC下Apktool dex2jar jd-gui的安装和反编译 回编译 重新签名简单使用

时间:2023-05-07 12:39:06

相关推荐

MAC下Apktool dex2jar jd-gui的安装和反编译 回编译 重新签名简单使用

一、安装

1、安装Apktool

方法1:普通下载安装

下载Apktool下载Apktool安装包脚本

macOS:

下载Mac 包装器脚本(右键单击,将链接另存为apktool)

下载apktool-2(在这里找到最新的)

将下载的jar重命名为 apktool.jar

将两个文件(apktool.jar&apktool)移动到/usr/local/bin(需要root)

确保两个文件均可执行(chmod +x)

尝试apktool通过cli 运行

$:cd /usr/local/bin$:chmod +x apktool

方法2:使用homebrew安装

或者您可以通过Homebrew安装apktool :

如本页所述安装Homebrew

brew install apktool在终端中执行命令(无需root)。最新版本将安装/usr/local/Cellar/apktool/[version]/并链接到/usr/local/bin/apktool。

尝试apktool通过cli 运行

注意 -包装脚本不是必需的,但很有用,因此您不必java -jar apktool.jar一遍又一遍地输入。

brew install apktool# 验证安装结果apktool -version

2、安装dex2jar

需要注意的是,假如使用dex2jar遇到

报错 com.googlecode.d2j.DexException: not support version。

则说明你安装的版本不兼容,所以尽量安装最新版本。

下载地址:/pxb1988/dex2jar/tree/2.1-nightly-28

点击右下角的Latest按钮,选择最新版本进行下载;

最后点击下载zip文件,解压就OK了。我比较懒,直接把dex2jar放在了桌面,也方便我使用。

3、安装JD-GUI

官网下载地址:http://java-decompiler.github.io/

把app文件拖到Application文件夹下就ok了。

二、反编译流程

现在桌面上有一个demo.apk文件,我们复制一份,demo副本.apk

将副本文件名的后缀改为zip,即demo副本.zip

1. 获取xml反编译文件和smail代码

启动终端

$:cd /Users/apple/Desktop $:apktool d demo.apk

注意,demo.apk 要在控制台的当前目录下,因为demo.apk 在桌面,所以我先cd到了桌面的目录。

其中d是decode的意思,表示我们要对Demo.apk这个文件进行解码。那除了这个基本用法之外,我们还可以再加上一些附加参数来控制decode的更多行为:

· f 如果目标文件夹已存在,则强制删除现有文件夹(默认如果目标文件夹已存在,则解码失败)。

·o 指定解码目标文件夹的名称(默认使用APK文件的名字来命名目标文件夹。

·s 不反编译dex文件,也就是说classes.dex文件会被保留(默认会将dex文件解码成smali文件)。

·r 不反编译资源文件,也就是说resources.arsc文件会被保留(默认会将resources.arsc解码成具体的资源文件)。

常用用法就这么多了,那么上述命令的执行结果如下图所示:

原文链接:/u013082948/article/details/52195514

2. 反编译calss.dex文件

刚刚的demo副本.zip解压获得demo副本文件夹,进入文件夹后拷贝classes.dex(如果解压失败,换一个解压软件,不用系统自带的)

打开dex2jar 解压的目录,将classes.dex文件复制进去

由于我的dex2jar文件夹在桌面上,所以终端直接执行:

apple@fenglolodeMacBook-Pro ~ % cd /Users/apple/Desktop/dex-tools-2.1 apple@fenglolodeMacBook-Pro dex-tools-2.1 % ./d2j-dex2jar.sh classes.dex

如果没有执行权限

apple@fenglolodeMacBook-Pro ~ % cd /Users/apple/Desktop/dex-tools-2.1 apple@fenglolodeMacBook-Pro dex-tools-2.1 % chmod +x ./*apple@fenglolodeMacBook-Pro dex-tools-2.1 % ./d2j-dex2jar.sh classes.dex

这个时候文件夹下回多出一个jar文件classes-dex2jar.jar

3. 查看jar文件代码

打开 JD-GUI ,将 jar 拖拽到 JD-GUI 区域就可以看代码了(该代码是混淆之后的)

三、回编译流程

以demo.apk通过apktool d demo.apk反编译生成的demo文件为例:

命令行窗口输入

apktool b demo

新生成的apk会在demo/dist/目录下面。若报错则输入apktool -r b name,资源文件不反编译,避免资源报错

四、apk 签名,打包

命令行窗口输入

jarsigner -verbose -keystore 签名文件名字 -signedjar newName.apk oldName.apk 签名文件名字输入密钥库的密码短语:

备注:

签名文件名字:如abc.keystore

newName.apk:签名后的apk的名字,可自定义

oldName.apk:需要被签名的apk的名字,如我的案例中应为demo.apk

然后输入你的签名文件的密码就开始重新签名了,签名后的apk为你自定义的newName.apk。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。