Итак, друг рассказывал мне, как была взломана игра и как работает эта техника. Затем он спросил, как лучше всего предотвратить такую атаку. Самый прямой путь, который я знал, заключался в том, чтобы A) перетасовать бит важного значения B) хэшировать значения и сравнивать их каждый раз (int, который держит оценку или деньги, скорее всего, будет проверяться редко).оператор перегрузки = в C#. Как я могу принимать другие типы?
Тогда я попробовал реализацию в C#, я не мог перегрузить оператор =. Как я могу это сделать?
ex код.
class EncryptVal <T>
{
T v;
public T operator = (T v2)
{
//shuffle bits
}
public T operator()()
{
//return unshuffle bits
}
}
Обратите внимание, что .Net код все-таки довольно легко взломать. В большинстве случаев вы можете получить точный источник от своего ИЛ, а внешний отладчик (например, windbg с расширениями SoS) позволит вам легко изучить ваш «зашифрованный» экземпляр. Итак, я считаю, что такой класс - это пустая трата времени для хакера с еще 5 минутами. – Groo
lol Groo, я этого не знал.Я изначально задал этот вопрос, чтобы посмотреть, могу ли я сделать это на C#. То, что вы только что сказали, вероятно, более того, что знал бы базовый игровой хакер. Я на самом деле думаю о хэшировании значения, а затем сравнить его. Если это не то же самое, пусть игра отобразит шутку хакеру. Но это предполагает, что я делаю игру на C# или на любом языке. – 2009-04-23 13:44:55