Думаю многим известный софт для анализа трафика
Софт написан на делфи, хотел написать кейген, но решил что проще вырезать проверку лицензии чем разбираться что там за алгоритм проверки
В самом начале работы софтина проверяет наличие ее пути в реестре, затем ключа и юзернейма
Не обращайте внимание на заблюренный ключ - замазывал на всякий случай, а потом решил что нет смысла
Если находит - читает
Вызывает RegQueryValueExA для извлечения ключа
после извлечения значения переходим по ret - смотрим вызывающую функцию - начинается с push ebp
Ниже псевдокод этой функции из иды
Это враппер для винапи-шной функции
< здесь было описание манипуляций проиводимых с ключем, но я убрал это в виду неинформативности >
Есть разные типы лицензии - у меня есть ключик для энтерпрайс версии
Для проверки ключа используются 3 дворда и какойто запутанный алгоритм
функция проверки лицензии хранится в структуре
по оффсету +36 находится licenseStatus - bool
Пропатчил проверку, теперь всегда true
Сверху до, снизу после
Также убрал доп проверки на тип лицензии (ну а зачем они нужны?)
В исполняемом файле есть секций релокаций, но флаг (DllCanMove (0x40)) не был включен
А значит релоки не применялись в целом, что упрощает патчинг (не нужно фиксить релоки после замены асм инструкций)
Убрал извлечение ключа и имени из реестра, теперь инициализуется из статичных строк - ключей к реестру
Сверху до, снизу после
405CAC - инициализация строки (ида не показала аргументы, тут везде юзеркалы с передачей в eax, edx, ecx)
48D0B4 - врапер получения строки из реестра
Софт прикладываю архивом а не установщиком как изначально
При первом запуске будет просить лицензию, перезапустите и все будет работать
_cracked - кряк
_orig - оригинальный файл с сертификатом
Софт написан на делфи, хотел написать кейген, но решил что проще вырезать проверку лицензии чем разбираться что там за алгоритм проверки
В самом начале работы софтина проверяет наличие ее пути в реестре, затем ключа и юзернейма
Не обращайте внимание на заблюренный ключ - замазывал на всякий случай, а потом решил что нет смысла
Если находит - читает
Вызывает RegQueryValueExA для извлечения ключа
после извлечения значения переходим по ret - смотрим вызывающую функцию - начинается с push ebp
Ниже псевдокод этой функции из иды
Это враппер для винапи-шной функции
< здесь было описание манипуляций проиводимых с ключем, но я убрал это в виду неинформативности >
Есть разные типы лицензии - у меня есть ключик для энтерпрайс версии
Для проверки ключа используются 3 дворда и какойто запутанный алгоритм
функция проверки лицензии хранится в структуре
по оффсету +36 находится licenseStatus - bool
Пропатчил проверку, теперь всегда true
Сверху до, снизу после
Также убрал доп проверки на тип лицензии (ну а зачем они нужны?)
В исполняемом файле есть секций релокаций, но флаг (DllCanMove (0x40)) не был включен
А значит релоки не применялись в целом, что упрощает патчинг (не нужно фиксить релоки после замены асм инструкций)
Убрал извлечение ключа и имени из реестра, теперь инициализуется из статичных строк - ключей к реестру
Сверху до, снизу после
405CAC - инициализация строки (ида не показала аргументы, тут везде юзеркалы с передачей в eax, edx, ecx)
48D0B4 - врапер получения строки из реестра
Софт прикладываю архивом а не установщиком как изначально
При первом запуске будет просить лицензию, перезапустите и все будет работать
http://**************************************************************/d/KBuWc5cmyxhPWDAgXx6NF
_cracked - кряк
_orig - оригинальный файл с сертификатом
Вложения
Последнее редактирование: