Однажды на crackmes.de в поисках пищи для мозга и нашел довольно интересный keygenme от zons, так как желание спать все усиливалось – хотелось по быстрому сгенерить уже серийник для своей системы и пойти спать.
Беглый осмотр кода дал понять, что сидеть мне еще долго, если разбираться в том что там намутил автор.
Подумав немного обратил внимание на это:
Начало проверки. Стало ясно что серийник является целым числом.
И конец проверки:
То есть когда мы введем неправильный серийник то получим соответствующее сообщение. И именно это сообщение нам сейчас поможет найти единственный верный :). Для этого изменим сообщение о неверном серийном номере на цикл, который будет увеличивать серийник на +1и проверять его еще раз.
Теперь программа сама себе найдет нужный серийник.
Но остается вопрос как его узнать? Можно конечно поставить бряк на и посмотреть содержимое [ebp-4], но это не “наш метод”.
Если посмотреть выше по коду, то можно найти ф-цию вывода HWID в текстовое поле.
Это как раз то что нам нужно, необходимо лишь изменить ControlID и Value.
ControlID можно подсмотреть в ф-ции проверки (адрес 004011B2), он будет 3EA
Value – это сам серийник, он хранится как мы уже знаем в [ebp-4]
Сохраняем изменения в файле, и запускаем его уже без отладчика.
После запуска жмем кнопку “Check” … Немного висим …
И Вот! В окне, куда его должны были вводить красуется верный номер.
Получился некий кейген-брутфорсер который генерирует правильные номера для основной программы
Кажется что изменений очень много, на самом деле это не так.
Вот все что изменилось в оригинальном файле, чтобы он стал кейгеном:
К сожалению данное решение не попадает под список “валидных” а времени разбирать код – нет, поэтому оставлю как есть )
Вся информация предоставлена исключительно для ознакомления.
Comments powered by Disqus.