Сейчас на форуме: vasilevradislav, Magister Yoda, site-pro (+5 невидимых)

 eXeL@B —› Крэки, обсуждения —› CrackMe очень мощный :D
Посл.ответ Сообщение

Ранг: 1.7 (гость)
Активность: 0=0
Статус: Участник

Создано: 09 июня 2014 21:11 · Поправил: fatalin
· Личное сообщение · #1

Представляю первый CrackME от команды PC-RET.

Пакер/протектор: UPX Modified
Уровень сложности: 8/10 (Очень сложно)
Разрешенные способы взлома: патчинг, кейген
Цель:http://i.imgur.com/L2C6LLE.png

Скачать: http://rghost.ru/56269712



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 09 июня 2014 23:12
· Личное сообщение · #2

3 патча инлайном и всех делов, на сложность 8/10 не тянет. Серийный номер улетел в ЛС.




Ранг: 253.5 (наставник), 684thx
Активность: 0.260.25
Статус: Участник
radical

Создано: 10 июня 2014 00:00 · Поправил: DimitarSerg
· Личное сообщение · #3

fatalin пишет:
Уровень сложности: 8/10 (Очень сложно)

2/10 от силы
ОЕП
004FD790 55 PUSH EBP



p.s. (без патчей)

-----
ds




Ранг: 92.1 (постоянный), 83thx
Активность: 0.110
Статус: Участник

Создано: 10 июня 2014 00:30
· Личное сообщение · #4

Обида Hardware ID пустой и при Register краш.

Адрес Register - 004FCDFC /. 55 PUSH EBP



Ранг: 10.9 (новичок), 5thx
Активность: 0.060
Статус: Участник

Создано: 10 июня 2014 00:48
· Личное сообщение · #5

Пхахаха.На их говнофоруме местный даже писал скрипт для анпака, как все пИчально
http://bhf.su/threads/24345/page-5



Ранг: 92.1 (постоянный), 83thx
Активность: 0.110
Статус: Участник

Создано: 10 июня 2014 01:04 · Поправил: vovanre
· Личное сообщение · #6

ThugboyZ пишет:
Пхахаха.На их говнофоруме местный даже писал скрипт для анпака, как все пИчально

Самый простой вариант: Запихивает в QU. exe готов к IDR только там вопить на ep будет, вписываем валидный ep (проще всего через сигнатурку, это же дельфи ). Вообщем вот проект для idr - --> Link <--




Ранг: 253.5 (наставник), 684thx
Активность: 0.260.25
Статус: Участник
radical

Создано: 10 июня 2014 01:07 · Поправил: DimitarSerg
· Личное сообщение · #7

vovanre
Ну ты же реверсер ?!

Посмотри функу 004FC720 >/$ 55 PUSH EBP ; Unit1.sub_004FC720
почему пустой хвид. Может ты умудрился на вин7 или старше дебажить, а без запуска от админа оно не имеет прав.

vovanre пишет:
Register краш

См. п1

ThugboyZ пишет:
На их говнофоруме местный даже писал скрипт для анпака

Видимо это быстрее, чем потрейсить 1минуту до оеп


2.DimitarSerg, ты не зарегистрировал! Надпись UNREGISTRED видишь? То, что ты сделал, можно было Restorator'ом за 10 секунду сделать!

Facepalm.
Я просто расксорил адрес вызова клика по второму баттону, какой нах*й ресторатор. Нуб что ли ?

-----
ds


| Сообщение посчитали полезным: ThugboyZ

Ранг: 92.1 (постоянный), 83thx
Активность: 0.110
Статус: Участник

Создано: 10 июня 2014 01:11 · Поправил: vovanre
· Личное сообщение · #8

DimitarSerg пишет:
Ну ты же реверсер ?!



Сейчас я никуда не полезу.



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 10 июня 2014 01:29
· Личное сообщение · #9

vovanre
Тоже был пустой HardwareID. Раз уж серийник выложили...

Модель взлома следующая. Можно сказать, классика.
1. Ставим точку останова на MessageBoxA. Вбиваем левые данные.
2. Точка останова срабатывает, трейсим до выхода из Forms::TApplication::MessageBox(char *,char *,int)
3. Изучаем всю процедуру. Первая проверка на длину
Code:
  1. 4FCE33 cmp     eax, 29

4. Стандартная ошибка, сравнение строк.
Code:
  1. 4FCEC4 call    @System@@LStrCmp$qqrv ; System::__linkproc__ LStrCmp(void)

Здесь в отладчике ловим первые 4 символа ключа.
5. Вторая проверка сравнением строк:
Code:
  1. 4FD076 call    @System@@LStrCmp$qqrv ; System::__linkproc__ LStrCmp(void)

Получаем еще 2 блока серийного номера.
6. Третья проверка сравнение строк (уже зевать хочется на этом месте):
Code:
  1. 4FD0F2 call    @System@@LStrCmp$qqrv ; System::__linkproc__ LStrCmp(void)

Получаем 6-ой (последний) блок ключа.
7. Какие-то махинации с 2-мя оставшимися блоками:
Code:
  1. seg053:004FD1AD xor     ds:middle_part, eax
  2. seg053:004FD1B3 mov     eax, ds:middle_part
  3. seg053:004FD1B8 mov     ds:dword_5040C4, eax
  4. seg053:004FD1BD xor     ds:middle_part, 0B4845ACFh
  5. seg053:004FD1C7 jmp     short loc_4FD211

Смотрим перекрестные ссылки на middle_part, находим вот это:
Code:
  1. 004FCD44 call    eax; должен быть валидный адрес

и вот это:
Code:
  1. seg053:004FCAC0 mov     edx, 2Eh
  2. seg053:004FCAC5 mov     eax, ds:middle_part

Последнее является частью мертвой процедуры 0x4FCA9C. Это очевидно и есть тот самый адрес, который должен оказаться в middle_part после сложений по модулю 2.
Получаем последнюю часть ключа - 0xB4845ACF ^ 0x4FCA9C ^ Hash.
Profit!
===
1. На самом деле сама процедура зашифрована, но уже не так важно, ибо dword_5040C4 и является ключом. А он обрабатывается в представленном коде и больше с ним ничего не происходит.
2. Можно покопаться и нарыть алгоритмы MD5, самопальный алгоритм с Not и конвертер Hex-значений самопальный. Не так сложно из всего этого сделать кейген.

В заключение хочу сказать. Чтобы оценивать сложность нужно иметь очень большой опыт. Вы даже не представляете себе, какая магия творится на мониторе опытного крекера. Md5 крекеры видят одним взглядом, ибо он так уже надоел, что константы волей не волей уже наизусть помнишь. Анализатор IDA решает 50% проблемы. Ибо он показывает суть функций Delphi и показывает мертвый код в большинстве случаев, что позволило за пару минут угадать нужный ключ для дешифрования кода. Отлов по MessageBox это тоже классика, которой напичканы 80% туторов на любом крек-сайте. Проверять строки - это очень глупо. Упаковать UPX со стабом - ну я его снял также быстро, как и обычный UPX, реально никакой разницы. Так какая тогда тут сложность со взломом?
P.S. На Windows 7 действительно нет HardwareID, это очень суровый баг.
P.P.S. То что я здесь написал, это вам вместо тутора, который вы так сильно хотели. Только он скорее для авторов.

Добавлено спустя 8 минут
Чуть не забыл, пруф

progopis
4ECE-ECD8-E8A0-5813-78F3-B48B

| Сообщение посчитали полезным: ThugboyZ, fatalin

Ранг: 262.5 (наставник), 337thx
Активность: 0.340.25
Статус: Участник

Создано: 10 июня 2014 07:23
· Личное сообщение · #10


Понятно откуда руки ростут, ничего другого ожидать и не следовало

| Сообщение посчитали полезным: SReg, verdizela

Ранг: 1.7 (гость)
Активность: 0=0
Статус: Участник

Создано: 10 июня 2014 08:45
· Личное сообщение · #11

1.Распаковать upx может любой ребенок. Это самое легкое в этом CrackMe
2.DimitarSerg, ты не зарегистрировал! Надпись UNREGISTRED видишь? То, что ты сделал, можно было Restorator'ом за 10 секунду сделать!
3.int, спасибо.



Ранг: 431.7 (мудрец), 389thx
Активность: 0.730.32
Статус: Участник

Создано: 10 июня 2014 09:57 · Поправил: dosprog
· Личное сообщение · #12

Два способа.
Один - начал было делать кейген на основе лоадера этой же софтины.
Нету времени - не доделал, бросил. Главное, что можно сделать, уродливо выйдет.
Второй тупо с помощью патч-лоадера.



-- ADD --
int всё очень нормально описал. Ни добавить, ни убавить.

| Сообщение посчитали полезным: fatalin

Ранг: 10.9 (новичок), 5thx
Активность: 0.060
Статус: Участник

Создано: 10 июня 2014 14:40
· Личное сообщение · #13

fatalin пишет:
Распаковать upx может любой ребенок.

Да, ребЕнки с твоего форума для этого аж целый скрипт сваяли

fatalin пишет:
То, что ты сделал, можно было Restorator'ом за 10 секунду сделать!

Ты б хоть не палился.



Ранг: 1.7 (гость)
Активность: 0=0
Статус: Участник

Создано: 10 июня 2014 15:32
· Личное сообщение · #14

ThugboyZ, Тебе какая разница кто и что сделал? Не можешь крякнуть - мимо пройди и все



Ранг: 33.9 (посетитель), 22thx
Активность: 0.030
Статус: Участник

Создано: 10 июня 2014 15:45
· Личное сообщение · #15

Кряк

| Сообщение посчитали полезным: unknownproject


Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 10 июня 2014 16:07
· Личное сообщение · #16

Крякмис решили, солюшен написали, выводы, надеюсь, сделали. На этом можно и закрыть.


 eXeL@B —› Крэки, обсуждения —› CrackMe очень мощный :D
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати