Добрый день!
20 раз говорил уже, что делаю свою игру, и теперь я хочу защитить её от подмены значений в оперативной памяти.
Я видел ролики, где просто сохраняют это значение с офсетом, а при взятии отнимают его, ну либо XOR.
Недавно, я наткнулся на забавный Unity Asset под названием
Anticheat Toolkit. И там, чтобы защитить игру от подмены значений, необходимо использовать не стандартные int, float и тд, а их «ObscuredTypes».
И мне стало интересно: как они смогли классу присвоить не конструктор, а сразу целочисленное значение (в примере с ObscuredInt)?
private ObscuredInt gems = 10;
Я вначале подумал, что это перегрузка оператора присваивания, но когда я глянул в MSDN, там было сказано, что перегрузка оператора присваивания невозможна. Собственно, таким образом я и попал сюда: как они это реализовали?