Какие есть надежные способы защиты .Net приложений?
С Новым годом, коллеги!
Я занимаюсь геймдевом и встал вопрос в написании собственного движка. В принципе, даже не принимая это в расчёт, хочется определиться, в сторону какого языка развиваться. Мне очень нравится C# и я имею некоторый опыт написания под XNA и я бы с удовольствием использовал его, в виде Monogame. Имея некоторый опыт в геймдеве, я знаю, как иногда бывает очень просто взломать игру, что для .Net, как понимаю, особенно просто, ввиду его особенностей. Пробовал искать какую-либо информацию в интернете, натыкался на статьи с перечислением/сравнением обфускаторов или защит, в комментариях к которым были отзывы, что их уже успешно взломали, либо деобфусцируют до вполне вменяемого состояния. Ну и вся информация, которую находил, в абсолютном своём большинстве, уже устарела.
Поэтому хотелось бы спросить совета у тех, кто имеет с этим дело на практике: если я буду использовать Mono для разработки движка/игр, как/чем можно надёжно защищать приложение, в том числе от модификаций?
Другой вариант - использовать C++, но я на нём уже так давно не писал, что это будет равносильно изучению заново.
Про моно не скажу, под .NET Framework надежно обфусцировать значительно сложнее, чем отреверсить. Вы хотите защитить игру от трейнеров, чтобы не накручивали игровые параметры или хотите защитить код?
В принципе можно использовать серверную часть, на которой все параметры регулировать и фильтровать, а в игру только их значения передавать, это так в сетевых играх.