首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >const/readonly与诸如Cheat Engine之类的程序

const/readonly与诸如Cheat Engine之类的程序
EN

Stack Overflow用户
提问于 2009-07-01 23:48:22
回答 3查看 1.5K关注 0票数 3

我有一个程序,在这个程序中有一些变量(用户名和“特权级别”)只有在用户登录时才会更改。有没有一种方法可以在程序运行时“保护”这些变量不被内存编辑等,但如果用户使用其他用户名登录,程序仍然可以更改它们。

我认为使用const或readonly都可以(尚未测试),但当用户重新登录时,是否仍有可能更改它们?

此外,有没有可能散列/加密程序中使用的字符串,以便用户无法通过搜索内存(即使用作弊引擎)找到它们?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-07-02 00:00:14

如果软件和用户凭据正在用户的计算机上运行,则不可能阻止用户更改值。

如果凭据和访问权限存储在远程服务器上,则可以使用该服务器,并让用户仅存储在任意时间段后过期的哈希令牌。使用该令牌作为查找,从服务器检索用户的配置文件信息。

您仍然会遇到问题,因为在客户端完成的任何操作都可能被操纵/破解。如果你把所有的逻辑都放在一个中央服务器上,你就可以更有把握地相信事情不会被破解,但是你的系统性能会受到影响。

您需要权衡中央服务器在安全性和性能方面的优缺点,并选择最适合您的平衡点。

票数 7
EN

Stack Overflow用户

发布于 2009-07-01 23:55:54

您不能修改const (ever)或readonly (在初始化之后)变量,因此这将不起作用。

最好的选择可能是将创建/初始化/设置这些变量的逻辑包装到登录过程中设置的干净方法和/或属性中。这将隔离这些代码,因此至少很容易理解。

至于加密字符串,您可以使用SecureString在运行时进行处理。在编译时,您可以对代码进行模糊处理(许多模糊处理程序支持字符串加密)。

票数 2
EN

Stack Overflow用户

发布于 2009-07-01 23:54:14

没有可靠的方法可以让你实现。通过加密这些东西,你可以让它变得更难,但绝不是不可能的。最坏的情况是,用户可以附加调试器并直接更改内存。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1071862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档