![]() |
eXeL@B —› Вопросы новичков —› Взлом крякми FSC08 |
Посл.ответ | Сообщение |
|
Создано: 19 декабря 2008 21:04 · Личное сообщение · #1 Давно (месяца 4 назад) увидел на кряклабовском форуме тему, где предлагалось поучаствовать в конкурсе от F-Secure по взлому крякмисов. В теме была ссылка на первый крякми. В соревнование я участвовать не собирался, ибо не мой уровень (сынок я для таких конкурсов), но крякми все-таки скачал, ради интереса. Тогда был напряг с курсачем (август!), потом просто забыл и вот только сейчас на закате очередной сессии я взялся за этот крякми. Кстати, на странице www.f-secure.com/security_center/asm.html доступны для скачивания все 3 крякми. Старую тему в поиске я не нашел. Собственно вопрос. Ломал ли кто-нибудь эти крякми на конкурсе или после? Интересно узнать, как взломали 2 и 3 уровень. Может у кого-то остались наработки? Ключ для первого крякми я нашел. Опишу как. Итак, FSC08_Level1. Консольное приложение, PEid говорит, что написано на «Microsoft Visual C++ v7.1 EXE», энтропия 5.23 (Not Packed) – значит можно дизассемблировать. Я использовал IDA v4.9. Но для начала, я просто запустил крякми и увидел предложение ввести ключ. От балды ввел 111 и увидел сообщение «Sorry, this key is not valid!». Эта строка легко находится в окне string windows в IDA, а рядом с ней лежит строка «\nCongratulations! Please send an e-mail to %s@khallenge.com\n\n». Строка с извинением находится по адресу 6900112A. Если заглянуть по коду выше, то можно найти строку "Enter the key: ". Что ж, кусок кода, отвечающий за проверку правильности ключа, найден. Он начинается по адресу 6900105F и заканчивается в 69001134. Вот первый интересный участок: Code:
Теперь стало известно, что длина ключа = 4 символа. Я поставил брэйкпоинт на адрес 69001095, т.е. на следующую за проверкой длины команду и трассировал код с ключом 1234. Первые две команды Code:
пересылают в регистры какие-то данные. Что за данные? А вот они: Code:
Значит, по этим адресам лежит, введенный мною ключ 1234. Следующие 3 команды Code:
хорят какие-то данные, элементами введенного ключа. Дальше следуют аналогичные блоки кода. Понятно, что с помощью введенного ключа расшифровываются данные (если xor можно назвать расшифровкой). Данные расшифровываются не по порядку, видимо для того, чтобы запутать исследователя. Но все равно видно, что диапазон расшифровываемых данных следующий 690030D4 – 690030DB. Вот эти данные: Code:
И последний интересный момент. После всех расшифровок идут 4 проверки. Вот их код: Code:
Вся соль в этих проверках. Их именно 4, столько же, сколько и символов в пароле. И каждая проверка дает нам правильный результат на каждый символ пароля. Чтобы охватить всю картину целиком, я составил такую табличку: Адрес данных Данные Результат Номер символа от xor в ключе 690030D4 7h 690030D5 2Eh 61h 2 690030D6 35h 690030D7 29h 79h 4 690030D8 70h 32h 1 690030D9 20h 690030DA 76h 30h 3 690030DB 68h Иными словами, получается следующее: 70h xor x1 = 32h 2Eh xor x2 = 61h 76h xor x3 = 30h 29h xor x4 = 79h, где x1-x4 символы правильного ключа. Так как, если n xor m = z, то m = n xor z. Значит можно найти все 4 символа пароля: x1 = 70h xor 32h = 42h x2 = 2Eh xor 61h = 4Fh x3 = 76h xor 30h = 46h x4 = 29h xor 79h = 50h Из таблицы символов ASCII видно, что 42h – B 4Fh – O 46h – F 50h – P Пароль найден. Если ввести его в крякми, то нас поздравят сообщением: «Congratulations! Please send an e-mail to Easy2o08@khallenge.com» Отсылать на этот емаил ничего не надо, т.к. конкурс закончился почти 5 месяцев назад 6-0. Жду ответ с описанием взлома FSC08_Level2 и FSC08_Level3. 6-0 ![]() |
|
Создано: 19 декабря 2008 21:15 · Личное сообщение · #2 http://exelab.ru/f/action=vthread&forum=1&topic=12457 ----- Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes ![]() |
|
Создано: 19 декабря 2008 21:34 · Личное сообщение · #3 |
|
Создано: 19 декабря 2008 22:33 · Личное сообщение · #4 |
|
Создано: 20 декабря 2008 00:31 · Личное сообщение · #5 |
|
Создано: 20 декабря 2008 14:28 · Личное сообщение · #6 |
![]() |
eXeL@B —› Вопросы новичков —› Взлом крякми FSC08 |
Эта тема закрыта. Ответы больше не принимаются. |