Страницы

Поиск по вопросам

вторник, 28 января 2020 г.

Защита от декомпиляторов

#c_sharp #защита


Я защищаю свою программу themida, но если сделать дамп файла и закинуть в de4dot,
то программа легко декомпилируется рефлектором.
Как и чем лучше защитить мою программу?
    


Ответы

Ответ 1



подскажите новичку как и чем лучше защить мою программу Ничем. Защита от декомпиляторов - это то же самое, что и защита от дурака. Идея может быть и хорошая, но как показывает практика, ни к чему толковому не приводит.

Ответ 2



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

Комментариев нет:

Отправить комментарий