Защита от декомпиляторов
Я защищаю свою программу themida, но если сделать дамп файла и закинуть в de4dot, то программа легко декомпилируется рефлектором.
Как и чем лучше защитить мою программу?
Я защищаю свою программу themida, но если сделать дамп файла и закинуть в de4dot, то программа легко декомпилируется рефлектором.
Как и чем лучше защитить мою программу?
подскажите новичку как и чем лучше защить мою программу
Ничем. Защита от декомпиляторов - это то же самое, что и защита от дурака. Идея может быть и хорошая, но как показывает практика, ни к чему толковому не приводит.
Можно применить обфускацию кода- это когда в IL
-код добавляются какие-то инструкции, которые критичны для стандартных декомпиляторов, но не критичные для работы программы в целом.
Обычно, программы декомпиляции сразу же на этом будут спотыкаться и тому, кто жаждет увидеть ваши исходники на высокоуровневом языке, придется лазить по IL
-коду и исправлять участки. Однако, зная каким обфускатором- это было проделано, не составит труда автоматически все поправить.
Почему это работает?
Как правило, на низком уровне можно делать больше, чем на высоком уровне. Декомпилятор при преобразовании IL-инструкций в целевой высокоуровневый язык оперирует логикой и ограничениями целевого языка и при встрече чего-то экзотического обламывается не зная, как это выразить в целевом языке.
Однако, изучая чистый IL
-код так же можно понять, как работает программа так как, как правило, методы имеют понятные имена и можно сделать предположение о том, что тут делается. В этом случае есть другой класс-обфускации, когда методы и переименовываются в не пойми чего, что затрудняет понимание кода.
Но опять же, это не остановит того, кто пытается понять код, а лишь замедлит.
В неуправляемых языках такая же ситуация, но код там машинный и его так же можно изучить и понять, правда, несколько проблематичнее, но можно. Всякое ПО именно так и взламывается, например Denuvo
, которая ранее считалась неуязвимой, процесс отдебажили спец. дебаггером и теперь выпускают кряки на игры. Потребовалось где-то ~1-2 года.
Вы можете подумать, что проблема в открытости платформы? Нет! Даже iOS, которая полностью закрыта и можно ставить приложения только через спец.программу и магазин ухитряются ломать и ставить пиратские маркеты. Игровые консоли пусть и долго, но взламываются, что бы играть в пиратские игры. Более того, БИОС консоли дампят и на основании этого пишут эмуляторы, что бы запускать все на ПК.
Подводя итог:
100% защиты нет. Можно лишь замедлить процесс взлома. Если бы она была бы вы думаете, что крупные корпорации этим бы не воспользовались? Например, Microsoft что бы защитить Windows.
У нападающего(взломщика) всегда есть преимущество перед обороной
Как вариант- это все важное хранить на веб-сервисе и в таком случае никто не доберется до ваших исходников. Такую архитектуру имеют онлайн-игры, где все важное вычисляется на стороне сервера и поэтому нельзя взломать(как правило) игру через какой-нибудь ArtMoney
или CheatAngine
. Конечно, если разработчик не дурак(Вспомним The Devision
)