Защита программ без IF: ретро-анализ библиотеки TViorProtect (Delphi 7)

Что если защита от копирования вообще не содержит ни одного условного перехода? Ретро-разбор библиотеки 2009 года, где вместо if (key == valid) используется вычисление адреса следующей функции, любая ошибка в данных уводит процессор в никуда. Классический взломщик ищет в дизассемблере инструкции JZ/JNZ и инвертирует их ("Magic Jump"). Здесь этот приём не работает: нет точки принятия решения, нет и цели для патча. Вместо этого серийный номер диска, CRC32 исполняемого файла и системная дата складываются в единственно верный адрес перехода. Чуть изменил данные - получил Access Violation в случайном месте памяти.

https://habr.com/ru/articles/1008824/

#Delphi_7 #Pascal #WinAPI #Защита_программного_обеспечения #Обфускация #Антиотладка #Ретро #x86 #Программирование

Защита программ без IF: ретро-анализ библиотеки TViorProtect (Delphi 7)

В период активной разработки программного обеспечения на Delphi 7 возникла необходимость в защите коммерчески успешных продуктов от несанкционированного копирования. Перед созданием собственного...

Хабр