- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
所以我们现在已经经历了好几次,我们发布了一个游戏(以便宜的价格),有人破解了它并把它放在镜子上。我们为所有应用设置了 Google 快讯,因此我们每天都会被告知谁在进行黑客攻击。到目前为止,我们已经按照 Google 的建议实现了许可服务,每次使用唯一设备 ID 启动许可时,我们的盐都是随机生成的。当应用程序第一次启动时,我们运行一次检查服务。然后,我们为键和存储的值生成一个 512 个字符的散列,然后在 SharedPreferences 中进行比较。
现在,我知道检查一次可能是应用程序被阻止的地方。我们的字节码很可能在没有启动检查的行的情况下被查看和重新编译。
从这里开始,我不想混淆我们的代码,因为我之前已经看到它被破坏了。我想要一些更扎实的东西,我也想学习如何正确地做到这一点。在这一点上,我更感兴趣的是学习而不是赚钱,因为只有 2% 的人会寻找破解版。
到目前为止,我自己已经想出了一个随机数生成器,它放置在游戏的几个启动区域中。启动时(例如,50 次中有 1 次)检查许可证。我知道这会使破解变得更加困难,因为破解者必须消除每个案例,编译,消除,编译。但是,这种方法仍然可以破解……那么你们有什么建议?同样,我对这个安全过程非常感兴趣,所以请教育,不要把它变成关于混淆或基于时间戳定期检查的讨论。
谢谢
最佳答案
我的想法不是黑客证明,但可能会消除一些对黑客游戏的兴趣。
免费增值模式
1) 前 5-10 个关卡免费,这样人们就可以免费学习游戏并获得一些乐趣。更少的人想要破解第一关,游戏将通过免费增值模式传播得更远。
共享软件/集群关卡
2) 让部分游戏关卡或逻辑保持在线。例如。当达到 5 级或 10 级或 15 级时,下载游戏的小部件,每次提交游戏的进度日志,并根据可能的值 + 哈希码进行验证。这也许可以自动关闭被黑客入侵的帐户。
隐身作弊者保护
3) 您也可以只计算您在游戏中放置的“小警告标志”。不要一开始就检查“验证”,不要将这些标志构建到游戏逻辑本身中。不要让它破坏游戏玩法,因为那样没有人会寻找它。然后当用户到达怪物级别的末尾时,检查是否有任何记录的警告标志。这些不会出现在游戏中,因此拥有被黑版本的不知情的用户可能会玩几个小时/几天,然后突然意识到他/她无法完成游戏或进入下一个级别,因为游戏有一个“错误”。用户不知道的是,这个错误只发生在被黑的客户端上。
结论
比 cookies 聪明。愚弄他们以为工作已经完成。进行版权保护,并知道更高级的破解者将能够将其删除。但是他们可能不想玩50级来检查破解是否也能一路奏效。
一旦他们意识到这个问题,他们可能也会开始破解它。但是,如果您将游戏分解为关卡包,您仍然可以在每个包下载之间进行验证。因此,一旦您收到被黑的客户端哈希数据,只需执行一个异常并在客户端上使游戏崩溃。哎呀游戏崩溃了。不要告诉它,因为它被黑了。可能会发生程序错误。 :-)
同样,它不是黑客证明。但这可能会惹恼他们,让他们继续进行下一场比赛。最后,您还可以定期更新游戏,只有最新版本才能“发布记录”等,因此活跃用户必须更新以保持循环。
关于Android游戏不断被黑客入侵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5600143/
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭11 年前。 Improve th
有时,当我看到一个我喜欢的网站或来自受人尊敬的人的网站时,我会查看源代码并尝试理解它们(就像我们所有人一样)。 关于 Jeremy Keiths他使用以下代码的网站: [role="navigatio
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
This question already has answers here: Prevent users from modifying part of the text in SLComposeVi
我正在使用 rockettheme 模板并使用自定义 css 文件编辑了一些 css 代码。 我已经设法让它在 Firefox 和 Chrome 上看起来像我想要的那样,但是 IE 看起来很奇怪。
我在 Dreamweaver 中右击我的行号,试图为一行添加书签。 我注意到这个菜单项: 什么是 Caio Hack? alert('hi'); 突出显示,结果如下: 最佳答案 这是一个古老的 CSS
我在看this SSL讲座。 Zeldovich 教授在这里说,如果连接是 http,黑客可能会让您相信您正在与 Amazon.com 对话,而实际上您正在与他的(黑客)服务器对话。 这是怎么发生的?
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 9 年前。 Improve
我有一个相当复杂的 JTable 子类(WidgetTable 及其 WidgetTableModel),当我将它添加到虚拟 JPanel 以进行测试时它工作正常。 因为我绝对讨厌使用 LayoutM
我遇到了这个很酷的 Swift 技术的例子,但没有解释它是如何工作的或者它做了什么,尽管我已经写了相当多的 Swift 代码,但它充满了错综复杂的 Swiftisms,它目前正在扭曲我的转过头去。 如
服务器在互联网运转中为使用者提供计算或应用服务,企业的业务流程基本上都是在服务器上进行,大批量的数据信息都会存储在此,若是服务器在黑客的入侵下中毒,后果将不堪设想。想要避免黑客的入侵,我们可以从下面
我正在尝试编写一个相当多态的库。我遇到了一种更容易表现出来却很难说出来的情况。它看起来有点像这样: {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE
我有一个 DropDownList,我正在尝试阻止它被用作攻击媒介。我是否可以假设用户无法实际更改 DDL 的值并回发到服务器?目前,如果我尝试在提交后更改数据包,则会抛出此 ASP.NET 错误消息
我有一堆 C++ 结构。我想将它保存到文件并再次加载它们。问题是我的一些结构是指向基类(/结构)的指针。所以我需要一种方法来找出类型并创建它。它们实际上只是 POD,它们都有公共(public)成员,
我正在使用 Sprite 作为输入按钮。它在 Firefox 和 > IE8 中运行良好。但是,在 IE7 和 8 中,ID 值显示在 png 图形上。它看起来像这样: (我会嵌入,但不允许):Pre
以下安全吗? struct K { ... } struct A { A(int psize) : size(psize), foo(nullptr), bar(nullptr) {
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
我正在破解一个画廊插件,我想在其中禁用缩略图的点击事件并将其替换为悬停事件。 这就是我所做的:http://jsbin.com/enezol/3 $(function() { var galler
昨天这里有一篇帖子因问题过于本地化而被关闭。好吧,我现在遇到了同样的问题,而且这似乎是一个相当新的问题。 基本上,从昨天开始,我的防病毒软件就阻止了我的网站。该网站的 https://版本加载绝对正常
我有一个 Unity WebGL 应用程序在 Web 浏览器中运行,它使用普通的旧 Unity WWW 和 http://.... 与远程服务器通信,它调用服务器上的几个不同的 php 脚本并使用 P
我是一名优秀的程序员,十分优秀!