mac版smali2java_Android反编译apk并重新打包签名(Mac环境)

本文介绍了在Mac系统中如何使用apktool进行APK反编译,详细步骤包括下载配置环境、反编译获取AndroidManifest.xml和资源文件,使用dex2jar和jd-gui转换查看Java代码,以及如何进行回编译和重新签名。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工具下载

4ce4d73b102d4016ce46be0adaffcb2f.png

根据apktool网站提示的下载方法,右击wrapper script,链接存储为apktool,不要带拓展名

9e69a88f9c31a279c4c387c82c1eb63d.png

然后点击find newest here下载apktool.jar,选择第一个下载最新版本

78165b5be0b6867b4c8053f8d1f4601b.png

下载完把apktool_2.3.3.jar重命名为apktool.jar,然后把apktool.jar和apktool一起拷贝到/usr/local/bin路径下

bb80e977cc6bd5a5de37f84c411650eb.png

7e736a3f5f2eca907e33ce2dbaf1c429.png

这样环境就配好啦,打开终端,输入apktool命令,看到以下输出说明apktool配置成功

05bdc2b2f1256047fc4ffbd1bd62f7c7.png

新建个MyTest目录方便管理,随便放个test.apk进去作为测试包

f705a0173e7b6cb24a5749b54edb3198.png

反编译

终端输入cd /Users/zachary/zachary/MyTest进入到测试apk所在目录,输入apktool d test.apk开始反编译

8270c00d614bda7ba5778445c60db29c.png

编译结束可以看到MyTest目录下多了个test文件夹,里面就是反编译以后的产物,我们想要的AndroidManifest.xml和res/.等资源文件

dba35f4245780b162d4fd36b42dce1a1.png

此时资源文件反编译就完成了,下面继续反编译java代码,这是就要用到dex2jar和 jd-gui

下载完dex2jar和 jd-gui解压一下就可以了,复制到MyTest目录方便操作

9f75d12135eba716011187b2bd44e228.png

终端进入MyTest目录,输入命令sh dex2jar-2.0/d2j-dex2jar.sh test.apk(如果提示Permission Deny权限问题,先输入命令chmod +x dex2jar-2.0/d2j-dex2jar.sh改一下权限就好了)

d86ccaf877a590301905be9941893aac.png

运行结束,在MyTest目录会生成文件test-dex2jar.jar,就是我们需要的java代码压缩文件

632efb1affefa796b099964f18fbdd2b.png

右击用jd-gui打开(或者先打开jd-gui再把test-dex2jar.jar拖到jd-gui自动导入,就可以看到java代码啦

772b0eecf5c0c7cef4412751e4f275ac.png

回编译

刚才我们执行apktool d test.apk反编译得到了test目录

4bc6c0b96dcd556d2dfc4bfdace67ff2.png

回编译就是执行命令apktool b test

dd64aba832b78fb01c92fc113a4d5de0.png

成功之后,test目录下会生成build和dist目录

7f8e7e17e7cc92bbcf88a2b239eb3870.png

build目录下存放的是打包后的dex文件和资源文件(和apk解压后一样一样的)

32d275b39d4b0a39cf36de6f46579cc0.png

image.png

dist目录下存放的是重新打包后的apk文件

7eacd6a8d3a8e6b6b78dff6155597167.png

重新签名

复制签名文件到dist目录下方便操作

03ea43df8a0c517a78ab112aed28de99.png

终端进入dist目录,执行命令jarsigner -verbose -keystore [your_key_store_path] -signedjar [signed_apk_name] [usigned_apk_name] [your_key_store_alias] -digestalg SHA1 -sigalg MD5withRSA

字段说明:

[your_key_store_path]:密钥所在位置的绝对路径

[signed_apk_name]:签名后安装包名称

[usigned_apk_name]:未签名的安装包名称

[your_key_store_alias]:密钥的别名

因为我们把秘钥和test.apk放在同一路径,所以密钥所在位置的绝对路径直接填testkey就好啦,macjenkinskey是我的秘钥别名,别误会(邪恶.jpg)

da225894d0fa9ecb919bc05b9cc01b8d.png

输一下密码,看不到输入的,开始签名

08af0e5668d274df8e69c3cf6fa70c23.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值