C/C++

С++ Как защитить уже скомпилированный машинный код от дизассемблирования?

DA
Dowlet Atayew
7 458
Существует несколько методов, которые можно использовать для защиты скомпилированного машинного кода от дизассемблирования:

Запутывание: это включает в себя усложнение понимания кода путем переименования переменных и функций, использования сложного потока управления и удаления ненужного кода. Это затрудняет понимание кода хакером и его реинжиниринг.

Шифрование: скомпилированный код может быть зашифрован, а затем расшифрован во время выполнения. Это затрудняет для хакера дизассемблирование кода, поскольку сначала ему нужно будет его расшифровать.

Подписание кода: это включает в себя использование цифровой подписи для подтверждения подлинности кода. Это может быть использовано для предотвращения изменения кода хакером или внедрения в него вредоносного кода.

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

Виртуализация кода: это включает в себя запуск кода в виртуализированной среде, что затрудняет хакеру доступ к базовому машинному коду.

Важно отметить, что ни один отдельный метод не может обеспечить полную защиту от дизассемблирования, но комбинация вышеперечисленных методов может значительно затруднить злоумышленнику перепроектирование вашего кода. Имейте в виду, что любая защита может быть взломана, и это непрерывный процесс
КБ
Кудайберген Бисимбаев
5 021
Лучший ответ
Dowlet Atayew при использование крипторов или обфускаторов начинают ругаться антивирусы
Кудайберген Бисимбаев Да, это верно. При использовании методов шифрования или обфускации для защиты вашего кода антивирусное программное обеспечение обычно помечает его как потенциально вредоносный, поскольку его поведение может напоминать поведение вредоносного ПО. Это связано с тем, что многие методы шифрования и обфускации также используются вредоносными программами для сокрытия своей истинной природы и уклонения от обнаружения.
Никак. Любой код может быть дизассемблирован - независимо от затраченных тобой усилий по защите. Если опытного хакера заинтересует то, как сделана твоя программа - он в любом случае добьётся результата.

Другое дело, что 99.99% всех существующих программ никакого интереса для хакера не представляют.
Борис Бильский
Борис Бильский
55 495
Ербол :-) А что если нaпиcaть пpoгpaммy на фyнкциoнaльнoм языкe, чтoбы xaкepы ceбе мoзг cлoмaли из-за лямбдa-иcчиcлeния?
Ербол :-) Почeму Win Phоnе yмep?
99% твой код никому не нужен, а 1% - расколет его как орех, если он того стоит
Dowlet Atayew У меня очень полезный код
Evgen Suhov У тебя слишком оптимистичный расклад.
Скорее это так 100% / 0%
Самое главное, чтобы когда открываешь в IDA Pro, то имен функций и классов не было видно.
А то g++ любит сохранять их, результат - раздолье для реверсинга)
Антон Гладких
Антон Гладких
92 464
Запускай этот код под одеялом
скорее всего незнаю
Aleksei Mixailov
Aleksei Mixailov
338