固定APK中的字符串

本文关键字:字符串 APK 固定 | 更新日期: 2023-09-27 18:25:38

我正在使用Xamarin的Mono for android开发一款android应用程序。我目前正在使用Google Play API添加应用内购买功能。为此,我需要从我的应用程序中向谷歌发送公共许可证密钥。关于这个问题,谷歌建议如下:

安全建议:强烈建议您不要硬编码由提供的确切的公共许可证密钥字符串值谷歌播放。相反,您可以构造整个公共许可证密钥运行时从子字符串中提取字符串,或从加密的存储,然后将其传递给构造函数。这种方法使恶意第三方更难修改公众APK文件中的许可证密钥字符串。

我从未处理过加密、黑客攻击/破解或软件安全的任何其他方面,所以我不知道如何实施谷歌的建议。我的问题是,一个如何在不必成为安全专家的情况下,充分地保护安卓APK中的字符串?

固定APK中的字符串

听起来不要太大胆,但我相信你可以放心地忽略他们的建议。他们所建议的安全性好处充其量也只是微乎其微。

有关更详细的讨论,请阅读以下内容:如何在进行InApp Billing 时保护Google Play公钥

事实是,那里描述的方法都不是完全安全的。如果有人决心找出你的公钥,他们会的。无论你做什么,公钥最终都会被传递给ctor,所以恶意用户总是可以在此时对其进行检查。他们所建议的所有"游戏"只是让这件事变得更加困难,但绝对不是不可能。

我认为你最好接受它的真实情况。这个密钥是公共是有原因的,你需要接受它很容易被泄露的事实。既然其他人都知道这一点,晚上睡得很好,我认为你没有理由不这么做:)

如果你晚上真的睡不着,想做点什么。。将您的钥匙放入代码中,并切换前两个字符。然后在运行时,在使用键之前将这两个字符切换回来。这应该足以保护自己免受暴力自动攻击。。智能攻击你无能为力。

编辑:

如果您正在寻找一种行业标准的方法来保护您的代码,请使用商业模糊处理程序。这些工具就是为此目的而设计的。一些例子是Android的Mono,代码混淆。请确保使用包括字符串加密在内的功能齐全的商业版本。