eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 3 октября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: cevile, YarChe-N, rmn, stas_02 (+4 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Основной форум —› PHD2012-BestReverser
<< . 1 . 2 .
Посл.ответ Сообщение


Ранг: 515.0 (!)
Статус: Участник
Победитель турнира 2010

Создано: 30 мая 2012 11:23 New!
Цитата · Личное сообщение · #1

Стартовал контест на Positive Hack Days 2012. Конкурс лучший реверсер от ESET.

Адрес жертвы http://crackme.esetnod32.ru/

Удачи в пробе сил!

| Сообщение посчитали полезным: obfuskator, ClockMan, neomant


Ранг: 549.4 (!)
Статус: Модератор

Создано: 2 июня 2012 23:40 New!
Цитата · Личное сообщение · #2

ELF_7719116
Каждому свое. Имхо, очень неплохой крякми уровня intermediate+ если не на время. Если на время, то advanced+. Потратил на него день, а удовольствия получил гораздо больше.

Ранг: 39.2 (посетитель)
Статус: Участник

Создано: 3 июня 2012 02:06 New!
Цитата · Личное сообщение · #3

Могу написать как "светофор" решается, если кому-нибудь интересно.

Ранг: 434.4 (мудрец)
Статус: Участник

Создано: 3 июня 2012 02:25 New!
Цитата · Личное сообщение · #4

Конечно пишите.

Ранг: 549.4 (!)
Статус: Модератор

Создано: 3 июня 2012 03:05 · Поправил: r_e New!
Цитата · Личное сообщение · #5

bbuc
Да, очень интересно. Желательно с рефами на теорию.
added: А лучше сначала рефы или подсказки какие по теории, а через неделю решение.

Ранг: 363.2 (мудрец)
Статус: Участник
"Тибериумный реверсинг"

Создано: 3 июня 2012 12:49 New!
Цитата · Личное сообщение · #6

Вероятно, идея светофора - какое-то слово/цифры в hex представлении.

Ранг: 65.4 (постоянный)
Статус: Участник

Создано: 3 июня 2012 13:05 New!
Цитата · Личное сообщение · #7

ELF_7719116 неа там просто с битами надо поигратся и ключей для светофора там много не один. Там вначале надо было узнать какая длинна ключа (сколько кнопок надо нажать) ...

Для неверующих прилагаю ключи:
9 2 1 6 D C 4 8 B 0 0 0
6 B 1 6 D C 7 8 B 0 0 0

Пусть bbuc напишет я добавлю свои коменты как я решал.

Ранг: 39.2 (посетитель)
Статус: Участник

Создано: 3 июня 2012 14:51 · Поправил: bbuc New!
Цитата · Личное сообщение · #8

Реверснутый алгоритм "в лоб" http://pastie.org/private/cogjxh3aorfzcxxsubrftw

Алгоритм проверки по таблице key_check, не зависит от первой функции. При этом его можно упростить примерно как написал r_e. Я правда использовал немного другой метод, но суть была такой же.

После этого я получил два валидных ключа, проверить которые можно попыткой расшифровать длл-ку от второго уровня. В итоге один ключ отброшен, остался один валидный 0xE7FD097289CBB591

Упрощаем алгоритм: http://pastie.org/private/ed5v1de8nana2v4ywmw65w

Кстати этой оптимизированной версией ключи в промежутке 0x00000000 - 0xFFFFFFFF брутятся за 12 минут в один тред на моем core i5. Уверен что если переписать на CUDA/OpenCL можно найти ключи брутом.

Суть алгоритма заключается в следующем: у нас есть начальное значение 0x48AEEFD486289CFB, на каждое нажатие кнопки мы сдвигаем его на 1 бит влево, а слева добавляем бит "чексуммы" от значений ключа.
При этом нажатие кнопки ксорит один из битов.

Самое главное для нас это найти размер ключа. Сделать это можно следующим образом: будем сдвигать начальное значение (0x48AEEFD486289CFB) влево, а конечное вправо (0xE7FD097289CBB591) на 1 бит и сравнивать их.
Там где различий будет меньше всего, скорее и есть размер ключа.
Скрипт на питоне, который делает это: http://pastie.org/private/mmmdisdwppu5zlphlmhdtg

Меньше всего разницы между значениями при длине ключа в 11 и 12 байт.

Проверяем:
Code:
  1. 0100100010101110111011111101010010000110001010001001110011111011 = 0x48AEEFD486289CFB
  2. 1110011111111101000010010111001010001001110010111011010110010001 = 0xE7FD097289CBB591

Ключ 11 байтов:
Code:
  1. 010010001011110111011111101010010000110001010001001110011111011000000000000
  2. xxxxxxxxxxx11100111111111010000100101110010100010011100101110110yyyyyyyyyyy
  3. _______________^__^_________^_____^___^_________________^__________________

Ключ 12 байтов
Code:
  1. 0100100010101110111011111101010010000110001010001001110011111011000000000000
  2. xxxxxxxxxxxx1110011111111101000010010111001010001001110010111011yyyyyyyyyyyy
  3. ________________^__^_________^_____^___^_________________^__________________

Т.е. нам нужно получить чексумму 01001000101 при длине 11 или 010010001010 при длине в 12 символов.
При этом изменив 6 значений внутри кнопками.
Нужно помнить что кнопки могут изменить только биты с номерами 0, 1, 6, 12, 18, 23, 24, 29, 30, 35, 41, 47, 52, 53, 58, 59

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

Этим брутером ключ нашелся только длиной в 12 символов. Хотя уже было поздно, время отведенное для решения задания уже закончилось

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


Ранг: 549.4 (!)
Статус: Модератор

Создано: 3 июня 2012 16:00 New!
Цитата · Личное сообщение · #9

bbuc
Познавательно.
Я вчера хотел описать подробней метод решения таблицы, но описание получилось громоздким - удалил.
Собственно, таблица - самая простая часть. По результату можно контролировать ошибку - ксорим с контрольным значением и оставшиеся биты показывают какие строки нужно подправить. Нечетное совпадение маски в строках дает 1, четное - 0. Если коллизия неразрешима - меняем какой-нибудь "корректный бит".
"Встреча посередине" оказалась, видимо, хорошей идеей для оценки глубины. Я пытался прокрутить полностью, но ошибка была слишком большой. Строить дерево == брутфорсу.

А вторую часть получилось сделать?

Ранг: 39.2 (посетитель)
Статус: Участник

Создано: 3 июня 2012 16:07 New!
Цитата · Личное сообщение · #10

Вторую часть я даже не начинал. Но организаторы говорили что кракми до конца никому не удалось решить: https://twitter.com/matrosov/status/208292206514159618


Ранг: 980.8 (! ! !)
Статус: Участник

Создано: 3 июня 2012 16:45 · Поправил: reversecode New!
Цитата · Личное сообщение · #11

второе задание я так думаю либо есть уязвимость переполнения в хешалго, либо
константа 0x45535320 должна находится из перемешивания,
а возможности выйти за рамки массива [64] там есть

но брутить
ConstMagic[0] = 0x12578ACAu;
ConstMagic[1] = 0xEFCAB678u;
ConstMagic[2] = 0x12345678u;
все равно надо, потому что про коллизии в Whirpool я вроде не слышал


можно попробовать угадать строку для хеша в которой должен быть 'ESS ' (0x45535320) после перемешивания, что бы понять где изначально до перемешивания стояли байты 0x45535320
и возможно потом даром дедукции угадать исходную строку для хеша
либо обладая даром телепата и екстрасенса угадать от чего брался хеш))

mak где это там md4???


Ранг: 625.1 (!)
Статус: Участник
CyberMonk

Создано: 3 июня 2012 18:42 New!
Цитата · Личное сообщение · #12

А в первой части определили название алгоритма используемого?! Или самопал?

Кусками похоже на трансформацию мд4 и адлер32 совмещенное, но только кусками, не смотрел далее.

Ранг: 65.4 (постоянный)
Статус: Участник

Создано: 4 июня 2012 16:25 New!
Цитата · Личное сообщение · #13

Длинну я узнал так что начал подбирать от 0 до 16 пока несовпадет старший или младший дврод 0xE7FD0972 / 0x89CBB591, так как мне думать неособо хотелось я забрутил длинну используя OpenCL
после оптимизаций алго получилось где-то 200млн/с на моей карте. За пару минут у меня был ряд значений у корорых совпало одно из значений у всех значений длинна была 12. Далее уже было ясно какой длинны надо ключ. Для ускорения брута я взял пару входный значений из ряда у которых совпало одно из выходный значений и сделал примерно так ( N1 & N2 & N3 ... ) чтобы выбрать общие биты из чего у меня получилась маска которую я уже использовал для брута конечнего значения. Первые числа что я зпостил выше выскочили почти мгновенно после чего я не стал решать дальше лень матушка )

Ранг: 39.2 (посетитель)
Статус: Участник

Создано: 7 августа 2012 09:32 · Поправил: bbuc New!
Цитата · Личное сообщение · #14

Решение к другому челленджу от есета:
http://blog-oppida.blogspot.fr/2012/08/solution-for-eset-blackhat-us-challenge.html

Тут тоже использовался WhirlPool, так что возможно что это чуть модифицированный (или полностью такой же) второй этап из phdays кракми.
Судя по
Code:
  1.  if hash512(scrambledTab)[:12] != [0xCA, 0x8A, 0x57, 0x12, 0x78, 0xB6, 0xCA, 0xEF, 0x78, 0x56, 0x34, 0x12]

Ранг: 0.1 (гость)
Статус: Участник

Создано: 30 октября 2012 17:06 · Поправил: Модератор New!
Цитата · Личное сообщение · #15

Все возможные ключи для первой части задания
AVictor2010@gmail.com

It's only list of all possible solutions (1425 variants). In the BlackHat-2012 task there are only 11 different variants.

2a060c7a9c1d
2a060c7a9d2d
2a060c7a9e3d
От модератора: удалена за ненадобностью пачка ключей. в следующий раз будет предупредительный в голову

Ранг: 33.8 (посетитель)
Статус: Участник

Создано: 30 октября 2012 17:25 · Поправил: dimka_new New!
Цитата · Личное сообщение · #16

xxxxxx6 - подредактируйте свои посты, оформите одной ссылкой, увидел коммент mysterio и ваш - посчитал что вы нерусь


Ранг: 206.8 (наставник)
Статус: Участник
radical

Создано: 30 октября 2012 17:28 New!
Цитата · Личное сообщение · #17

xxxxxx6
Please delete your posts and attach the txt file with the list of solutions.

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


Ранг: 13.0 (новичок)
Статус: Участник

Создано: 6 июля 2013 00:20 New!
Цитата · Личное сообщение · #18

r_e пишет:
Приаттачил свой код этого крякми под паролем. Как выйдет решение - увидим был ли там rc4 =) c834_30.05.2012_EXELAB.rU.tgz - phd12.zip

Уже можно)

Ранг: 549.4 (!)
Статус: Модератор

Создано: 6 июля 2013 00:58 New!
Цитата · Личное сообщение · #19

=) я уже и пароль забыл. да и рассказали уже все.
<< . 1 . 2 .
 eXeL@B —› Основной форум —› PHD2012-BestReverser

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS