R0 CREW

SOLS - Simle open license system [crackme]

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

Задача: получить файл васи без защиты или обойти ее любым извесным вам способом. Сначала попытайтесь без “слитого файла”. Вот и все, буду рад если напишете небольшой разбор самой защиты.

Virustotal:тык
Github проэкта (здесь не последняя версия но и не особо отличная от последней, все никак не залью нужную): тык

Со слитой базой и исходниками протектора/сервера получить “Hello World!” в консоли просто.
Что касается брута в 20 символов на словаре из 36ти с пэйлоадом декрипт+crc32, думаю весьма накладно.
Можно попробовать атаку на PRNG на вихре мерсена, но не известно насколько она будет успешной и достаточно ли выборки в 50 символов из build_id
https://github.com/bishopfox/untwister
Но опять же для понимания и перехода между символами и random значениями нужны исходники протектора.

А сколько времени ушло что бы понять все это ? Ну и по ощущениях насколько было бы сложно без наличия исходников? (о базе не говорим, ибо достаточно часто софт на взлом сливают уже с лицензией).
Так же уточню, это далеко не полноценная версия, а скорей демка от той демки которую я пишу, без любой защиты самого кода протектора (собстна сейчас замусоривание + некоторое подобие кривой виртуалки в наличии).
Увы на проект не хватает времени, а так идея для реализации еще очень много (хотя и первоочередная задача докодить х64 версию)

В бинаре все прозрачно. Легко идентифицируются и получение HWID и SHA1 и СRС32, сразу видно процедуру декрипта с переходом на OEP. По процедуре декрипта видно длину ключа, но так как после запроса к серверу ничего не возвращалось пришлось полезть в базу. В SqliteBrowser все как на ладони. По build_id нашелся ключ, но так как не подошел уже дошла очередь исходников. С ними все срослось. Кроме длины ключа стал ясен словарь и метод генерации.