Защита от реверса
От: pinebit Россия  
Дата: 20.03.18 05:33
Оценка:
Напомните пожалуйста кто тут делает продукт — защиту исполняемых файлов от реверс-инжиниринга?
И если кто-то уже использовал и другие решения, особенно кросс-платформенные (OSX, Linux, Windows), поделитесь опытом пожалуйста.
Спасибо!
Re: Защита от реверса
От: Lazytech Ниоткуда  
Дата: 20.03.18 05:50
Оценка:
Здравствуйте, pinebit, Вы писали:

P>Напомните пожалуйста кто тут делает продукт — защиту исполняемых файлов от реверс-инжиниринга?


Наверное, речь идет о VMProtect?
Re: Защита от реверса
От: andy  
Дата: 20.03.18 06:04
Оценка:
Здравствуйте, pinebit, Вы писали:

P>Напомните пожалуйста кто тут делает продукт — защиту исполняемых файлов от реверс-инжиниринга?

P>И если кто-то уже использовал и другие решения, особенно кросс-платформенные (OSX, Linux, Windows), поделитесь опытом пожалуйста.
P>Спасибо!

Кросс-платформенно вряд ли возможно.

Очень эффективно в защитной части делать все вызовы апи функций call в точку входа самой функции в dll. Вирусная метода. Единственный минус нужно будет некоторое время отбиваться от антивирусов тк они ваш обфусцированный код будут считать подозрительным или вирусным.

К этому следует добавить выполнение небольших частей защищенного кода в разных потоках (фибрах). Результаты потоков синхронизируются и собираются отдельно.

Чтобы реверс такого типа проанализировать нужно быть очень хорошо подготовленным и очень заинтересованным.

ИМХО все остальное чепуха.
Re[2]: Защита от реверса
От: pinebit Россия  
Дата: 20.03.18 06:12
Оценка:
Здравствуйте, Lazytech, Вы писали:

L>Наверное, речь идет о VMProtect?


Точно! Спасибо!
Re[3]: Защита от реверса
От: Lazytech Ниоткуда  
Дата: 20.03.18 07:14
Оценка:
Здравствуйте, pinebit, Вы писали:

P>Точно! Спасибо!


Чуть не забыл, есть еще сторонний продукт VMPKit (VMProtect Integration Kit). Подробнее см. в этой теме:
Подарок от VMProtect Software
Автор: Marty
Дата: 10.12.15
Re: Защита от реверса
От: wantus  
Дата: 20.03.18 08:27
Оценка:
Здравствуйте, pinebit, Вы писали:

P>Напомните пожалуйста кто тут делает продукт — защиту исполняемых файлов от реверс-инжиниринга?


Чисто из любопытства — надо именно, чтобы не смогли понять как оно конкретно устроено, или, чтобы не смогли сломать?
Re[2]: Защита от реверса
От: pinebit Россия  
Дата: 20.03.18 11:01
Оценка:
Здравствуйте, wantus, Вы писали:

W>Чисто из любопытства — надо именно, чтобы не смогли понять как оно конкретно устроено, или, чтобы не смогли сломать?


> чтобы не смогли понять как оно конкретно устроено


Ну и в целом, если разработчики хоть что-то сделали для защиты, взломщики (с любыми целями) поймут, что этот вопрос прорабатывали, а значит легко не будет.
Re[3]: Защита от реверса
От: wantus  
Дата: 20.03.18 11:46
Оценка: 4 (1)
Здравствуйте, pinebit, Вы писали:

P>Ну и в целом, если разработчики хоть что-то сделали для защиты, взломщики (с любыми целями) поймут, что этот вопрос прорабатывали, а значит легко не будет.


Я к тому спросил, что полная защита от реверсинга практически никогда реально не нужна. По сути я знаю единственный случай, где это было действительно оправданно — это оригинальный Skype. У них p2p система была построена на предположении, что все клиенты кошерные и ведут себя по спеку. Если бы клиент не был прошифрован вдоль и поперек, то его можно было бы "подправить" и поломать всю систему.

Если в коде есть само-проверки на целостность, то этого обычно достаточно, что отбить желание ковыряться в коде у большинства кул hacker'ов. Шифровать же его — это напрашиваться на false positives, blacklist'ы и прочие проблемы с репутацией. Даже если код подписан EV сертификатом.
Отредактировано 20.03.2018 11:47 wantus . Предыдущая версия .
Re[4]: Защита от реверса
От: TailWind  
Дата: 20.03.18 14:20
Оценка:
W>Если в коде есть само-проверки на целостность
А вы проверяете exe файл, или код в памяти?
Re[5]: Защита от реверса
От: wantus  
Дата: 20.03.18 16:44
Оценка:
Здравствуйте, TailWind, Вы писали:

W>>Если в коде есть само-проверки на целостность

TW>А вы проверяете exe файл, или код в памяти?

Exe и process environment. Код в памяти проверять как бы весьма непросто и смысла особого нет, если его пропатчивают до того, как управление передается программе.
Re[4]: Защита от реверса
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 20.03.18 16:55
Оценка:
Здравствуйте, Lazytech, Вы писали:

P>>Точно! Спасибо!


L>Чуть не забыл, есть еще сторонний продукт VMPKit (VMProtect Integration Kit). Подробнее см. в этой теме:


Я давно профукал домен
Маньяк Робокряк колесит по городу
Re[5]: Защита от реверса
От: Lazytech Ниоткуда  
Дата: 20.03.18 17:10
Оценка:
Здравствуйте, Marty, Вы писали:

M>Я давно профукал домен


Жаль, в оценках нет грустного смайлика.
Re[2]: Защита от реверса
От: IID Россия  
Дата: 21.03.18 02:45
Оценка:
Здравствуйте, andy, Вы писали:

A>Очень эффективно в защитной части делать все вызовы апи функций call в точку входа самой функции в dll.


Чем эффективно-то ?
Статическая таблица указателей на функции анализируется ещё на этапе заполнения. Динамический резолв (включая способы с хешем от имени вместо самого имени) тоже детский сад.

A>ИМХО все остальное чепуха.


Генерируемые при накатывании защиты виртуальные машины и преобразование реального кода в обфусцированный байткод — вот что работает. ИМХО даже LLVM преобразования на уровне шага трансформации IR менее эффективны.
Всё остальное чепуха.
kalsarikännit
Re[3]: Защита от реверса
От: IID Россия  
Дата: 21.03.18 02:47
Оценка: 4 (1)
Здравствуйте, pinebit, Вы писали:

P>Ну и в целом, если разработчики хоть что-то сделали для защиты, взломщики (с любыми целями) поймут, что этот вопрос прорабатывали, а значит легко не будет.


Разве это будет останавливать ?
Вы не поверите, но существуют люди, которые взламывают хорошо защищённые программы единственной функцией которых является выдача MessageBox.
kalsarikännit
Re[6]: Защита от реверса
От: IID Россия  
Дата: 21.03.18 02:54
Оценка: +1
Здравствуйте, wantus, Вы писали:

W>Код в памяти проверять как бы весьма непросто и смысла особого нет, если его пропатчивают до того, как управление передается программе.


Довольно просто, а сверить можно с образом на диске. Сам образ провалидировать по цифровой подписи. Но это всё тоже хрень.
kalsarikännit
Re[3]: Защита от реверса
От: icezone  
Дата: 21.03.18 04:28
Оценка:
Здравствуйте, pinebit, Вы писали:

P>Ну и в целом, если разработчики хоть что-то сделали для защиты, взломщики (с любыми целями) поймут, что этот вопрос прорабатывали, а значит легко не будет.


легко не будет если код выполняется на твоем сервере, остальное — вопрос времени и денег
Re[4]: Защита от реверса
От: loginx  
Дата: 21.03.18 08:15
Оценка:
I>легко не будет если код выполняется на твоем сервере, остальное — вопрос времени и денег

так у хакера же нет денег, потому ломать он ничего и не будет

интересно. неужели есть хакеры ломающие проги с числом закачек менее 10 тыс. в сутки?
ну сломает он мало-известную утилиту и как он эту сломанную версию раскручивать-распространять будет?
выложит на страницу с 1 человеком посетителей который есть он сам?
имхо сложность раскрутки для мало-популярных программ для сломанной и нормальной версии по трудозатратм равны.
Re[5]: Защита от реверса
От: IID Россия  
Дата: 21.03.18 10:11
Оценка: 4 (1)
Здравствуйте, loginx, Вы писали:


I>>легко не будет если код выполняется на твоем сервере, остальное — вопрос времени и денег


L>так у хакера же нет денег, потому ломать он ничего и не будет


Стало быть софт никто не ломает. Ч.Т.Д. Тему можно закрывать

L>интересно. неужели есть хакеры ломающие проги с числом закачек менее 10 тыс. в сутки?

L>ну сломает он мало-известную утилиту и как он эту сломанную версию раскручивать-распространять будет?
L>выложит на страницу с 1 человеком посетителей который есть он сам?
L>имхо сложность раскрутки для мало-популярных программ для сломанной и нормальной версии по трудозатратм равны.
L>

Не будет никто твою прогу раскручивать.
Один из возможных вариантов для редкого софта: набирается критическое число желающих получить сломанную версию. Хакеру платятся деньги (баллы рейтинга, и т.д.) на всяких закрытых ресурсах. Всё. Для мотивации достаточно.
Другой: продвинут чёрным СЕО (дорвеи, спам), продадут сломанные лицензии и забудут.
kalsarikännit
Re[3]: Защита от реверса
От: andy  
Дата: 21.03.18 12:00
Оценка:
Здравствуйте, IID, Вы писали:


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

IID>Генерируемые при накатывании защиты виртуальные машины и преобразование реального кода в обфусцированный байткод — вот что работает. ИМХО даже LLVM преобразования на уровне шага трансформации IR менее эффективны.


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


Замечу, что обфусцированный код нужен постольку-поскольку! Обфусцированный байткод из одних ассемблерных команд даст другие ассемблерные команды, которые так же хорошо читаются. Вся свистопляска с обфусцированием затевается, чтобы нарушить опорные точки по которым взломщик может понять алгоритм. Взломщик это не машина, а человек, который положительно воспринимает символьные строки и наименования функций, а не нагромождение машинных команд. Следовательно нужно в первую очередь скрыть порядок вызова апи функций, их символьные наименования и строки или по крайне мере сделать, чтобы это было максимально запутано.
Отредактировано 21.03.2018 14:15 andy . Предыдущая версия .
Re: Защита от реверса
От: Pzz Россия https://github.com/alexpevzner
Дата: 21.03.18 12:27
Оценка:
Здравствуйте, pinebit, Вы писали:

P>Напомните пожалуйста кто тут делает продукт — защиту исполняемых файлов от реверс-инжиниринга?

P>И если кто-то уже использовал и другие решения, особенно кросс-платформенные (OSX, Linux, Windows), поделитесь опытом пожалуйста.

Ну вот например, если в программе есть какие-то важные, с точки зрения алгоритма ее работы, но не очень критичные по времени исполнения куски, я бы подумал на премет скомпилировать их вот этой забавной штучкой: https://github.com/xoreaxeaxeax/movfuscator
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.