eXeL@B —› Основной форум —› PHD2012-BestReverser |
<< . 1 . 2 . |
Посл.ответ | Сообщение |
|
Создано: 30 мая 2012 11:23 · Личное сообщение · #1 Стартовал контест на Positive Hack Days 2012. Конкурс лучший реверсер от ESET. Адрес жертвы http://crackme.esetnod32.ru/ Удачи в пробе сил! ----- 127.0.0.1, sweet 127.0.0.1 | Сообщение посчитали полезным: obfuskator, ClockMan, neomant |
|
Создано: 02 июня 2012 23:40 · Личное сообщение · #2 |
|
Создано: 03 июня 2012 02:06 · Личное сообщение · #3 |
|
Создано: 03 июня 2012 02:25 · Личное сообщение · #4 |
|
Создано: 03 июня 2012 03:05 · Поправил: r_e · Личное сообщение · #5 |
Ранг: 419.0 (мудрец), 647thx Активность: 0.46↗0.51 Статус: Участник "Тибериумный реверсинг" |
Создано: 03 июня 2012 12:49 · Личное сообщение · #6 |
|
Создано: 03 июня 2012 13:05 · Личное сообщение · #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 напишет я добавлю свои коменты как я решал. |
|
Создано: 03 июня 2012 14:51 · Поправил: bbuc · Личное сообщение · #8 Реверснутый алгоритм "в лоб" Алгоритм проверки по таблице key_check, не зависит от первой функции. При этом его можно упростить примерно как написал r_e. Я правда использовал немного другой метод, но суть была такой же. После этого я получил два валидных ключа, проверить которые можно попыткой расшифровать длл-ку от второго уровня. В итоге один ключ отброшен, остался один валидный 0xE7FD097289CBB591 Упрощаем алгоритм: Кстати этой оптимизированной версией ключи в промежутке 0x00000000 - 0xFFFFFFFF брутятся за 12 минут в один тред на моем core i5. Уверен что если переписать на CUDA/OpenCL можно найти ключи брутом. Суть алгоритма заключается в следующем: у нас есть начальное значение 0x48AEEFD486289CFB, на каждое нажатие кнопки мы сдвигаем его на 1 бит влево, а слева добавляем бит "чексуммы" от значений ключа. При этом нажатие кнопки ксорит один из битов. Самое главное для нас это найти размер ключа. Сделать это можно следующим образом: будем сдвигать начальное значение (0x48AEEFD486289CFB) влево, а конечное вправо (0xE7FD097289CBB591) на 1 бит и сравнивать их. Там где различий будет меньше всего, скорее и есть размер ключа. Скрипт на питоне, который делает это: Меньше всего разницы между значениями при длине ключа в 11 и 12 байт. Проверяем: Code:
Ключ 11 байтов: Code:
Ключ 12 байтов Code:
Т.е. нам нужно получить чексумму 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 |
|
Создано: 03 июня 2012 16:00 · Личное сообщение · #9 bbuc Познавательно. Я вчера хотел описать подробней метод решения таблицы, но описание получилось громоздким - удалил. Собственно, таблица - самая простая часть. По результату можно контролировать ошибку - ксорим с контрольным значением и оставшиеся биты показывают какие строки нужно подправить. Нечетное совпадение маски в строках дает 1, четное - 0. Если коллизия неразрешима - меняем какой-нибудь "корректный бит". "Встреча посередине" оказалась, видимо, хорошей идеей для оценки глубины. Я пытался прокрутить полностью, но ошибка была слишком большой. Строить дерево == брутфорсу. А вторую часть получилось сделать? ----- старый пень |
|
Создано: 03 июня 2012 16:07 · Личное сообщение · #10 Вторую часть я даже не начинал. Но организаторы говорили что кракми до конца никому не удалось решить: |
|
Создано: 03 июня 2012 16:45 · Поправил: reversecode · Личное сообщение · #11 константа 0x45535320 должна находится из перемешивания, а возможности выйти за рамки массива [64] там есть но брутить ConstMagic[0] = 0x12578ACAu; ConstMagic[1] = 0xEFCAB678u; ConstMagic[2] = 0x12345678u; все равно надо, потому что про коллизии в Whirpool я вроде не слышал можно попробовать угадать строку для хеша в которой должен быть 'ESS ' (0x45535320) после перемешивания, что бы понять где изначально до перемешивания стояли байты 0x45535320 и возможно потом даром дедукции угадать исходную строку для хеша либо обладая даром телепата и екстрасенса угадать от чего брался хеш)) mak где это там md4??? |
|
Создано: 03 июня 2012 18:42 · Личное сообщение · #12 |
|
Создано: 04 июня 2012 16:25 · Личное сообщение · #13 Длинну я узнал так что начал подбирать от 0 до 16 пока несовпадет старший или младший дврод 0xE7FD0972 / 0x89CBB591, так как мне думать неособо хотелось я забрутил длинну используя OpenCL после оптимизаций алго получилось где-то 200млн/с на моей карте. За пару минут у меня был ряд значений у корорых совпало одно из значений у всех значений длинна была 12. Далее уже было ясно какой длинны надо ключ. Для ускорения брута я взял пару входный значений из ряда у которых совпало одно из выходный значений и сделал примерно так ( N1 & N2 & N3 ... ) чтобы выбрать общие биты из чего у меня получилась маска которую я уже использовал для брута конечнего значения. Первые числа что я зпостил выше выскочили почти мгновенно после чего я не стал решать дальше лень матушка ) |
|
Создано: 07 августа 2012 09:32 · Поправил: bbuc · Личное сообщение · #14 Решение к другому челленджу от есета: Тут тоже использовался WhirlPool, так что возможно что это чуть модифицированный (или полностью такой же) второй этап из phdays кракми. Судя по Code:
|
|
Создано: 30 октября 2012 17:06 · Поправил: Модератор · Личное сообщение · #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 От модератора: удалена за ненадобностью пачка ключей. в следующий раз будет предупредительный в голову |
|
Создано: 30 октября 2012 17:25 · Поправил: dimka_new · Личное сообщение · #16 |
|
Создано: 30 октября 2012 17:28 · Личное сообщение · #17 xxxxxx6 Please delete your posts and attach the txt file with the list of solutions. ----- ds | Сообщение посчитали полезным: dimka_new, schokk_m4ks1k |
|
Создано: 06 июля 2013 00:20 · Личное сообщение · #18 |
|
Создано: 06 июля 2013 00:58 · Личное сообщение · #19 |
<< . 1 . 2 . |
eXeL@B —› Основной форум —› PHD2012-BestReverser |