Android APK 签名比对,防止软件被破解使用

本文探讨了Android APK的签名过程,包括文件摘要、RSA非对称加密和PKCS#7加密,提出两种防止软件被篡改的方案。方案一是比对MANIFEST.MF中的摘要信息,方案二是验证.RSA文件中的公钥。虽然方案二更简洁,但需要解决解码.RSA文件并提取公钥的问题,这可以通过反射调用隐藏API实现。

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

原文:http://wenjh.com/?p=19

客户端软件发布后,可能会被他人破解使用。破解的目的可能是汉化、去广告、加入便捷功能,但也有可能是植入恶意模块。Androd 也存在这个问题。

Android 应用程序在发布前,都必须被签名。假设用于签名的密钥不被泄露或共享,我们可以认为,当被破解的Android软件重新打包后,其 “签名”必然与官方版本不同。

这个“签名”到底是什么东西?
如果你手头方便的话,可以随便解压一个APK。打开解压目录,“META-INF”里面就是签名内容保存的地方。 签名过程的源码在这里,核心代码从(467行开始)。

首先,签名程序将遍历APK里的所有文件,并用SHA1算法得出每个文件的“摘要信息” 。这些摘要信息就通通记录在“META-INF”目录的“MANIFEST.MF”文件中。

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值