Unity 安卓 apk 反编译 重新打包 签名修改

Unity 安卓 apk 反编译   重新打包  签名修改

拿到一个Unity 打包出来的apk,如果没有加密的话 ,你是可以通过反编译修改其中的属性的。

步骤一   apk 解压

方法1: apk 变成 .zip 并解压

然后修改 \assets\bin\Data\Managed\Assembly-CSharp-firstpass.dll

方法2: 下载 apktool 软件对 (推荐)

下载地址:

我是windows 平台:下载位置如下

1   下载wrapper script    如果提示安全问题,浏览器设置中关闭安全选项

都关闭掉

右键,保存为apktool.bat ,之后再下载 apktool.jar 下载后修改名字

2 最后下载 apktool.bat 和 apktool.jar 把他们放到 C盘的 Windows 下

如图

(3)使用 win +R 或者 点击 开始 找到运行 使用命令行解压

输入"F: "     将当前目录切换到apk 软件所在目录 , 我apk 软件 当前放在F盘

4 解压当前apk  

输入 apktool d 我的apk名字.apk   我的apk 名字是:“PlayIt2.apk”  所以输入:   apktool d PlayIt2.apk  

就会出现一个解压后的文件,解压成功

也是一样 去修改 \assets\bin\Data\Managed\Assembly-CSharp-firstpass.dll

步骤2  使用Dnspy 修改Assembly-CSharp-firstpass.dll中想要修改的脚本

然后可以通过下载 类似 dnSpy 软件进行代码反编译

下载地址:

打开dnspy.exe

软件界面和vs非常相似,点击文件-->>>打开--- >>>选择打开需要修改的dll 文件

20180904224023683 (629Ã454)
20180904224039157 (1315Ã867)
20180904224224920 (1049Ã751)

步骤3   对修改后的APK 进行打包和

1 解释:

软件,再用压缩成rar的,然后把后缀改为.apk 是不能使用的,必须要进行重新打包,且设置签名 。

签名:它就是对我们的apk加了一个校验参数,防止apk被掉包。一开始做Android开发,就接触到了apk签名;后来在微信开放平台、高德地图等平台注册时,需要填写apk签名的md5值和sha256值;再后来做系统应用,接触到了系统签名;而后就想了解下apk的生成机制,学习了如何用命令行进行签名。

2  使用 apktool  将修改保存之后test文件夹重新打包生成新的未签名的apk

输入:apktool b <文件夹名称> -o <新的apk全称>        如: F:\>apktool b PlayIt2 -o PlayIt3.apk       我将PlayIt2修改后的文件夹打包为:PlayIt3.apk


之后就会生成 playIt3.apk  但此时再手机安装时并不能安装成功,因为还没有设置签名

步骤4   重新设置APK签名

1 利用Android Studio生成签名与对apk进行签名(没有需要下载)

1.生成签名

首先要创建一个签名文件,用Android Studio随便建一个项目工程,然后在菜单栏中选择Build -> Generate Signed Bundle/APK。 我的是这个

选择APK,点击Next,如下图:

20200923220801128.png (1168Ã792)

选择Create New

20200923220846871.png (1196Ã806)

填入签名相关信息,如下图:

20200923221522835.png (1074Ã1046)

2  使用 jarsigner 工具  绑定签名和包
首先最好把 待签名的Apk文件和 用来签名的keystore 文件放在同一个目录,然后在目录下开启命令行。

输入指令(简陋版)

jarsigner -keystore myKey.key -signedjar apk-signed.apk apk-unsigned.apk myKey
1
myKey.key 则是用来签名的keystore文件

apk-signed.apk 则是签名完成的apk文件名

apk-unsigned.apk 则是待签名的apk文件名

myKey 则是keystore文件的别称 key alias

这四项都是要针对自己的情况填写。

正常来说,配置好了环境,输入指令后,就会在apk-unsigned.apk的同级目录下找到 签名好的Apk文件了

如果想要更高级的重签名方式 ,可以参考 Apk去掉签名以及重新签名的方法

2 使用可视化签名工具绑定签名和包(推荐)
 我这里使用的是360的重签名工具。安装打开后,把对应的属性填上去,点击一键签名后,签名后的apk就会生成了,建议使用这种方式,特别是环境配置突然出问题然后急着对Apk重签名的时候,这个工具特别的香。

aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0RNaW5nT3UvTWFya2Rvd24tUGljdHVyZS1yZXBvc2l0b3J5L21hc3Rlci9pbWcvMjAyMDAxMTgxMDU1NTEucG5n (424Ã450)

如下生成了  PlayIt3_signed_Aligned .apk     完成签名后,可以正常安装使用