Android 反编译后修改 APK 中文件再进行打包签名(应用完整性校验)

因项目存在 安全性 测试,其中一项为 应用完整性校验 下面给出相应测试方法,希望能够帮助大家。

1.工欲善其事必先利其器。

首先下载 apktool 官网:https://ibotpeaches.github.io/Apktool/install/

这里写图片描述

2.下载完成后

apktool.jar & apktool.bat 存放路径:

apktool.jar & apktool.bat 存放路径

配置 JAVA 环境变量:

配置JAVA环境变量

确认环境变量是否成功及 JAVA 版本:

确认环境变量是否成功及JAVA版本

3.进行测试

将被测软件放置在与 apktool.jar 同级目录下

这里写图片描述

命令行进入 apktool.jar 目录下,执行命令 apktool d qq.apk
qq.apk 为目标文件名称,执行命令后,会对目标 APK 进行解压,解包后会在当前目录生
成与apk同名文件夹.
4. 更新解压后的so文件.如果目录下有build文件夹的话,最好将其中的apk目录删掉.

解压 APK

这时候就可以去文件夹中进行修改 APK 中内容了
替换 res 文件夹中资源文件

修改 APK 中内容

重新打包: apktool b qq 打包文件在apk文件夹中的dist目录下.
qq 为文件夹名称 ( QQ无法进行重新打包,尴尬 )

这里写图片描述

生成签名证书(只需生成一次)

命令:keytool –genkey –alias test.keystore –keyalg RSA –validity 20000 –keystore test.keystore
解释:keytool工具是Java JDK自带的证书工具

-genkey参数表示:要生成一个证书(版权、身份识别的安全证书)

-alias参数表示:证书有别名,-alias mine.keystore表示证书别名为:mine

-keyalg RSA表示加密类型,RSA表示需要加密,以防止别人盗取

-validity 20000表示有效时间20000天( K3

-keystore mine123.keystore表示要生成的证书名称为mine123
输入回车后显示:
输入keystore密码:[密码不回显](一般建议使用20位,最好记下来后面还要用)

再次输入新密码:[密码不回显]

您的名字与姓氏是什么?
[Unknown]:lili

您的组织单位名称是什么?
[Unknown]:snoopy

您的组织名称是什么?
[Unknown]:snoopy team

您所在的城市或区域名称是什么?
[Unknown]:beijing

您所在的州或省份名称是什么?
[Unknown]:beijing

该单位的两字母国家代码是什么
[Unknown]:CN

CN=lili, U=snoopy, O=snoopy team, L=beijing, ST=beijing, C=CN正确吗?
[否]:Y
输入< mine.keystore>的主密码
(如果和keystore密码相同,按回车):

对重新打包后的apk文件进行签名:

签名时:目标签名 APK 与 test.keystore 应放置在 C:\Java\jdk1.8.0_112\bin 目录下 (JDK\bin 目录下)

jarsigner -verbose -keystore test.keystore -signedjar new.apk old.apk test.keystore
/*解释:jarsigner是Java的签名工具

-verbose参数表示:显示出签名详细信息

-keystore表示使用当前目录中的mine123.keystore签名证书文件。

-new.apk表示签名后生成的APK名称,old.apk表示未签名的APK Android软件, mine.keystore表示别名

*/
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值