R0 CREW

crackme #0.4

Всем привет! Мой четвертый crackme (немного сложнее предыдущего).

Platform: Windows
Language: assembler
Difficulty: 3
[ATTACH]132[/ATTACH]

Solved by:1. BoRoV2. OKOB3. ARCHANGEL4. ?

А размерчик почему такой большой? :slight_smile:

Ресурсы малость раздул:
.xm - 138kb
.bmp - 207kb
.ico - 22kb

Предлагаю следующий крякми вмпротом паковать без проверки чексуммы, ну, чтоб можно было поверх вмпрота фемидой шлифануть. И к вмпроту обязательно доки почитать, чтоб правильно в сорцах маркеры поставить. И его (вмпротовскую) схему лицензирования с длинными ключами заюзать.

Это я из вредности. Может, и гляну PeSpin этот.

У меня складывается такое впечатление что у нас форум извращенцев :slight_smile:

Хотя чего скрывать, оно так и есть извращенцы программеры. :wink:

Та ладно, я помню, что там было написано. Был наезд на код, что зря ксорят dl.

Так вот это не так. В ту функцию через стек передавалась три параметра. Потом второй (ECX) инвертировался, т.е. его значение вычиталось из нуля и добавлялась 1. Третий параметр (edx) копировался в esi. Сумма изменённого второго и третьего давала адрес, которым инициализировался dl. Потом значение в младшей части edx использовалось как индекс в таблице и ксорилось, вычислялась типа контрольная сумма. Битовое представление результата инвертировалось. Результат возвращался в еах. И плохо стирать свои посты. Если ошиблись - в этом нет ничего предосудительного, можно так и написать.

Кто-то ковыряет его вообще? Я нашёл ОЕР, но анпакать мне влом. Вот такой я лодырь. (место для грустного смайла)

Смысла анпакать нет, в памяти все видно.
Про dl да, ошибся. Впредь буду больше спать.
Вторая часть ключа переводится в бинарный вид 8A->8ah, в цикле что-то считается по таблице и полученный результат должен быть “Tron: Legacy”.
Но такие алго разбирать как-то не хочется, возможно это и бесполезно. Вижу выход только в бруте.

А анлочить эдит можно сторонним софтом, или там есть условие в коде при котором оно анлочится (я искал и не нашел его) ?

Файл нужно расспаковать, в ресхаке поправить эдит ну дальше, как обычно.

я активировал поле ввода сторонним софтом, так что все ок)

Расспаковывать не нужно )

А это нормально что крекми крешится при вводе серийника? Если код не патчился? :sunglasses:

При вводе неправильного кода, ни чего не происходит. Сообщение выводится только при валидном ключе(их кстати два)

Я тусую сл. код к примеру:

Hide

aaaaaaa-aaaaaaaaaaaaaaaaaaaaaaaa

падает на
004010EB |. F3:A4 REP MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI]
EDI = 00000000
там EDI нигде не устанавливается, на уровень выше вроде тоже, а с ES:[EDI] ведёт к обращению в 0x00000000, в чём мб трабл?

Не, ну что это за беспредел? Давайте дальше подсказывать сдержанее, хоть тулзы не надо называть. У меня вот была идея править сразу в ресхаке, но чексам. Была мысль искать коллизию к чексумме, но тогда стаб мусорный никуда с ехе не девается. В общем, беспроблемнее всего анпакнуть.

Ну как и писалось автором уровень сложности небольшой.
Проблемой могут стать пару вещей(упаковщик, и реализация алгоритма, который там используется).
Перепробовал 3 реализации пока не нашел ту самую (хотя алгоритм был распознан сразу).
Отправил ключ автору.

Добавлено:
Вот что значит использовать незапатентованные алгоритмы (подсказка :wink: )

Эх, а я сижу, пытаюсь анпакать. Что-то меня это забавляет больше, чем даже сам алгоритм. Даже не смотрю, какой он - ковыряю упаковщик.

А сам с PeSpin подсказал, при том что многие думали, что там ASPack.

Та ну - разве ж можно их спутать?