apktool 反编译、回编译以及签名

课题需要,系统学习了一下 apktool 反编译、回编译以及签名流程期间遇到的问题简单跟大家分享一下。

apktool工具下载

apktool 下载地址: https://ibotpeaches.github.io/Apktool/
在上面网站上下载 apktool.jar 和 apktool.bat 放在同一文件夹下:
图1. apktool.jar/apktool.bat
下载之后我们可以配置环境变量,以便我们在任何位置都可以使用apktool命令,配置方法笔者不在这里赘述,不懂得可以去查相关博客。当然我们也可以不配置,到指定目录执行命令。

反编译命令

直接上命令

 apktool d (your apkName).apk

在这里插入图片描述
apktool目录下出现反编译出来的test文件夹
在这里插入图片描述
到这里反编译大功告成 。

回编译

直接上命令

apktool b test

在这里插入图片描述
在test文件下会出现dist文件夹里面会有回编译完成的test.apk.在这里插入图片描述
在这里插入图片描述
将此apk安装到手机上运行会怎么样呢?我哦们来试一试。
在这里插入图片描述
说我们的应用没有签名,说明apktool回编译回来的apk并没有为我们添加签名,我们需要自己为test.apk添加签名。

签名

第一步生成签名文件

keytool -genkey -keystore C:\Users\Administrator\Desktop\apktool\test.keystore -alias test -keyalg RSA -validity 10000

命令解释:

Keytool 选项 描述
-genkey 产生一个键值对(公钥和私钥)
-v 允许动作输出
-alias 键的别名。只有前八位字符有效。
-keyalg 产生键的加密算法。支持DSA和RSA。
-keysize 产生键的长度。如果不支持,keytool用默认值1024 bits.通常我们用2048 bits 或更长的key。
-dname 专有名称,描述谁创建的密钥。该值被用作自签名证书的颁发者和主题字段。注意你可以不在命令行指定。如果没有指定keytool会提示你(CN,
OU, and so on)。
-keypass 键的密码。 主要为了安全起见,如果没提供,keytool会提示你输入。
-validity 键的有效期,单位:天
-keystore.keystore 用于存储私钥的文件。
在这里插入图片描述
上面的问题随便填一下就可以。
这里有两个问题需要注意
1.如果中文乱码 : chcp 936 命令转化为 gbk编码
2.密钥口令最好用纯数字。
在这里插入图片描述
在你输入的文件目录(C:\Users\Administrator\Desktop\apktool\test.keystore)中成功生成 test.keystore.
第二步为你的apk签名

jarsigner -verbose -keystore C:\Users\Administrator\Desktop\apktool\test.keystore -signedjar  C:\Users\Administrator\Desktop\apktool\signatureTest.apk  C:\Users\Administrator\Desktop\apktool\test.apk test

命令分为 3部分:
第一部分:C:\Users\Administrator\Desktop\apktool\bm.keystore 你的签名文件地址。
第二部分:C:\Users\Administrator\Desktop\apktool\haha.apk 目标apk输出地址
第三部分:C:\Users\Administrator\Desktop\apktool\haha.apk bm 源apk地址

在这里插入图片描述
在C:\Users\Administrator\Desktop\apktool\ 出现签名过的apk文件
在这里插入图片描述
OK,基本已经完工,将signatureTest.apk放在android手机上可以正常运行。

《APK+Dex文件反编译回编译工具》 简称:APKDB 是一款,针对Android OS系统的APK程序,直接反编译修改的工具。 APKDB集合了当今最强悍,最犀利的APK及Dex文件编译工具; 正常安装后,它直接在【鼠标右键】创建快捷菜单; 非常方便汉化工作者,对APK或Dex文件进行简易的反编译回编译操作 1.本工具必须先安装JAVA7; 2.如需显示APK自身图标必须先安装.NET Framework4 · 对*.Apk 文件 反编译回编译 用于汉化修改 · 对*.Dex 文件 反编译回编译 或查看详细源代码 · 对*.Apk 文件 批量反编译回编译 · 对*.Apk、*.Zip 文件执行签名 · Windows下直示Apk件自身图标 v2.0.2 正式版 2016.06.05 *.更新,ShakaApktool v2.0.0(2016.06.01) *.更新,Apktool v2.1.1正式版(2016.05.07) *.更新,7-zip压缩工具版本到16.02 *.更新,smali、baksmali v2.1.2(2016.03.28) *.更新,ADB工具 (25.1 rc1版) *.更新,Zipalign优化工具 (23.0.3版) *.更新,合并Odex文件 *.更新,XML编辑器(提升速度,修复bug) *.更新,显示APK自身图标(Apkshellext v2.0.1.5780.2290) *.更新,刷机精灵APK安装器 *.新增,自定义默认签名,可用自己制作的签名签名 *.新增,Keytool签名包制作工具,推荐使用JAVA8 *.新增,极限压缩优化APK内图片功能 *.新增,PNG图片优化工具OptiPNG v0.7.6 *.新增,设定默认Apktool版本(回车键直接执行) *.新增,ShakaApktool自定义操作 *.新增,选项,不反编译Resources、Classes文件 选择后(可同时使用),再选择使用Apktool工具。 *.新增,反编译jar文件时,自动识别是否含多个dex文件,并使用ShakaApktool反编译 *.新增,反编译JAR文件后,回编译时自动合并并转移到反编译目录内 右键[APK文件]、[RSA文件]、[original]目录、[META-INF]目录 可直接查看签名信息。 *.新增,创建[开始菜单-所有程序-APKDB]目录 *.新增,精简APK语言包功能(仅保留英文、简体中文、繁体中文) *.增强,对繁体系统的兼容 *.增强,右键菜单判别准确率 *.增强,重新调整右键菜单,强制关联所有文件 *.增強,针对不同系統的兼容性 *.修复,XP签名优化出错问题 *.修复,选项按键滞留问题 *.修复,文件名含空格优化失败问题 *.修复,签名遗留旧文件,删除框架文件… *.修复,卸载出错问题 *.修复,APK安装器不关联问题 *.修复,个别APK文件反编译时停顿问题 *.修复,修改AndroidManifest.xml回编译没变化问题 *.修复,各种小问题 *.优化,整体兼容性,增加选项状态提示 *.优化,界面调整 *.优化,安装过程 *.优化,对JAVA路径的判别 *.优化,对64位系统的支持 *.优化,执行脚本 *.优化,编译过程 *.优化,DEX文件夹的的判别 *.删减,旧版APKTOOL(2.0.0以下版本) *.其他,一些微调整
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值