假设我写了一个游戏应用程序。 我希望播放器的级别存储在外部文件中。
如何阻止黑客编写和修改文件以进入另一个级别?我希望我的应用程序仅修改文件。
我可以使用密钥对文件的内容进行签名,但是此密钥将存储在应用程序中,因此黑客可以对二进制文件进行反编译并找到密钥。
有没有办法做到这一点?
答案 0 :(得分:2)
不,没有一种安全的方法可以做到这一点。无论您的应用程序能做什么,攻击者都可以随时复制。
如果它只是一个桌面游戏,你可以通过默默无闻来逃避安全。但如果它必须是安全的,唯一的出路就是将这些信息存储在您的服务器上。
答案 1 :(得分:0)
一种简单的方法是从校验和开始。修改文件并保留文件时计算校验和。当您需要检查真实性时,请重新计算校验和并将其与您存储的值进行比较。这不是100%的保证,但它很简单,可能足以满足您的需求。
答案 2 :(得分:0)
您可以使用具有对称密钥或公钥/私钥对的哈希算法。你可以检查MAC(消息认证码)以获得一个想法,这些方法将提供完整性和文件的密钥认证。
答案 3 :(得分:0)
除了其他人所说的,你还应该考虑这样一个事实:只要应用程序被加载到计算机的内存中,就没有什么可以阻止某人简单地修改级别(或任何其他值)只是扫描内存,直到找到他们需要的值,然后替换它,所以你应该考虑检查任何值的异常增加。