7

我一直在阅读有关 LVL 的信息,并且之前在我的应用程序中实现了它,并通过启动屏幕检查许可证.. 但我相信你可能已经猜到它很容易被破解。我并不是要保护我的应用程序并做到 100% 万无一失,只是想让破解者不敢尝试。

由于我的应用程序需要在线连接并且经常从我的服务器获取数据,因此我想在服务器端实施许可证检查,如果许可证有效,它将返回数据,如果不是,则不会返回任何内容。

我在这里读过这篇博文:

“如果您的应用程序具有在线组件,防止盗版的一种非常强大的技术是将包含在 ResponseData 类中的许可证服务器响应的副本及其签名发送到您的在线服务器。然后您的服务器可以验证用户已获得许可,如果没有,则拒绝提供任何在线内容。

由于许可证响应是加密签名的,您的服务器可以使用存储在 Android Market 发布者控制台中的公共 RSA 密钥来检查以确保许可证响应没有被篡改。

执行服务器端验证时,您需要检查以下所有内容:

响应签名有效。许可证服务返回了 LICENSED 响应。包名称和版本代码与正确的应用程序匹配。许可证响应尚未过期(额外检查 VT 许可证响应)。您还应该记录 userId 字段,以确保破解的应用程序不会重播另一个许可用户的许可响应。(这可以通过来自单个 userId 的异常大量的许可证检查可见。)“

我只需要帮助来开始如何执行服务器端验证。是的,我可以获得响应签名、LICENSE 或 NOT_LICENSED 响应、包名称、许可证到期,但是如何在我的服务器上签入?

任何帮助开始将不胜感激。谢谢你的时间。

4

2 回答 2

2

这可能会帮助您入门: android-market-license 验证 php 项目

于 2011-09-02T16:29:15.667 回答
0

这应该让你开始:

http://php.net/manual/en/function.openssl-verify.php

虽然我们的 PHP 人员仍在研究它,但我无法验证它的效果如何。

于 2011-05-24T11:20:15.763 回答