Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Обфускация программ — это прорывная, самая горячая сегодня, область криптографии. За последние два года написано свыше 70ти статей по этой теме, она вызывает жаркие дискуссии, создает настоящие гонки между исследовательскими группами, открывает полигон для научных изысканий.
Все ушло в веб, и доступа к «установочным файлам программ» у пользователей нет, по причине физического исчезновения этих самых «установочных файлов».
А если для каждого входа отдельный код? Узнав один вход, вы не узнаете что будет на другом. Если вход известен, деобфускация не нужна, можно просто запустить программу на этом входе и узнать выход (черный ящик). Но больше по программе вы ничего сказать не можете.
Чем не обфускация в самом обычном понимании? Исходный код «запутан».
Вот например мы обфусцируем программу f(x,y) = x + y если x != 31337 иначе f(x,y) = -1. Код получается такой:
1. считаем хитрый хэш от входа
2. если хэш = 1234567, расшифровать и выполнить код1 (ключ = вход)
3. иначе вывести x + y
Ключ — это вход для программы.Извините, но вы когда-нибудь IDA запускали?
Имея большой запас терпения, можно разобраться в любой обфусцированной программе и выписать алгоритм.
In security engineering, security through obscurity is the use of secrecy of the design or implementation to provide security.
Тот новый вид обфускатора называется «Обфускация Неразличимости» («Indistinguishability Obfuscation» — «iO»), формально: если имеются две разные программы, но с абсолютно идентичными функциональностями, то обфускации этих двух программ будут неотличимы друг от друга.
если имеются две разные программы, но с абсолютно идентичными функциональностями, то обфускации этих двух программ будут неотличимы друг от друга.
Обфускация программ