我有一个带有变量 X = 10 的简单控制台应用程序。然后我有一个循环,要求用户更改变量和输出。我附加了一个调试器并编辑我的程序的内存区域以更改变量 X。我能做些什么来防止用户使用内存编辑器编辑这个 X 变量,并且无论如何检测(在我的程序中)调试器或内存编辑器,以便在访问变量 X 时将变量 X 移动到其他位置并且当变量 X 更改时向用户发送一条消息,表明您不应该这样做?这只是我的一个教育实验。
例如在下面的代码中
byte X = 10;
X = byte.Parse(Console.ReadLine()); // scan memory looking for X to change
Console.ReadKey(); // Change X before the output
Console.WriteLine("X = " + X);
X 可以在程序输出之前轻松编辑,即使使用其他一些花哨的指针技巧,它仍然可以在输出之前使用简单的外部程序轻松编辑。