我有一些重要的字符串存储在我的程序中,但即使我混淆/保护程序集,人们只是使用ProcessHacker或CheatEngine来扫描字符串,这真的让我很恼火。有什么方法可以防止这种情况发生吗?
juzqafwq1#
编译时加密和即时解密。需要很多工作。它不需要是真实的加密,只需适当的混淆就足以阻止这种情况,但字符串必须存在于内存中混淆,并且解密的字符串需要在每次使用后销毁。一些库将在初始运行时解密,但简单的内存转储或调试器将在进程或DLL加载后公开所有字符串。您需要在运行时加密,只有在需要字符串时才解密,有很多方法可以做到这一点。这是一个我喜欢的C++示例,它是一个更大的项目www.example的一部分 www.example.com对于C#,有多个好答案here
1条答案
按热度按时间juzqafwq1#
编译时加密和即时解密。需要很多工作。它不需要是真实的加密,只需适当的混淆就足以阻止这种情况,但字符串必须存在于内存中混淆,并且解密的字符串需要在每次使用后销毁。
一些库将在初始运行时解密,但简单的内存转储或调试器将在进程或DLL加载后公开所有字符串。
您需要在运行时加密,只有在需要字符串时才解密,有很多方法可以做到这一点。
这是一个我喜欢的C++示例,它是一个更大的项目www.example的一部分 www.example.com
对于C#,有多个好答案here