可以更改已编译的 exe 中的硬编码字符串吗?

Luk*_*uke 5 vb.net

假设您的应用程序中有一些带有硬编码字符串的代码。

If somevalue = "test123" Then

End If
Run Code Online (Sandbox Code Playgroud)

应用程序编译完成后,是否有人可以修改 .exe 文件并将“test123”更改为其他内容?如果是这样,是否只有字符串包含相同数量的字符才有效?

key*_*rdP 1

这是可能的,但不一定简单。例如,如果您的字符串已加载到内存中,则有人可以使用内存管理器工具直接修改字符串地址的值。

或者,他们可以反编译您的应用程序,更改字符串,然后重新编译它以使用新字符串创建新程序集。但是,这种情况是否可能发生取决于您的应用程序以及更改该字符串的重要性。

你可以使用混淆器来让它变得更难一些,但最终,坚定的破解者将能够做到这一点。问题是该字符串是否重要到值得担心,如果是,则可以考虑使用替代方法,例如使用 Web 服务来提供该字符串。