Сейчас на форуме: (+9 невидимых) |
eXeL@B —› Протекторы —› Armadillo (Туторы, скрипты, плагины etc) |
. 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . >> |
Посл.ответ | Сообщение |
|
Создано: 13 апреля 2012 17:49 · Поправил: Модератор · Личное сообщение · #1 Armadillo Key Tool Tutorial: PDF: Видео: | Сообщение посчитали полезным: matrix, huckfuck, AKAB, Isaev, plutos |
|
Создано: 13 апреля 2012 21:07 · Личное сообщение · #2 |
|
Создано: 13 апреля 2012 21:23 · Личное сообщение · #3 matrix пишет: осталися кейгенинг и secured секции давно уже сделано, токо не на паблике. ----- SaNX | Сообщение посчитали полезным: DimitarSerg |
|
Создано: 14 апреля 2012 00:31 · Личное сообщение · #4 |
|
Создано: 14 апреля 2012 00:33 · Личное сообщение · #5 |
|
Создано: 14 апреля 2012 00:36 · Поправил: ajax · Личное сообщение · #6 |
|
Создано: 14 апреля 2012 02:03 · Личное сообщение · #7 |
|
Создано: 14 апреля 2012 03:48 · Поправил: Gideon Vi · Личное сообщение · #8 |
|
Создано: 14 апреля 2012 06:03 · Поправил: ajax · Личное сообщение · #9 int Gideon Vi int пишет: SSE реализация на Core i7 дает скорость 32 симметричных ключа за 4 часа. Тоже самое у меня на видеокарте с CUDA - тоже 4 часа "На данный момент на nVidia 9600GT/C2D 3Ghz CUDA-версия проверяет 350 миллионов ключей в секунду, а SSE2 - 108 миллионов." (c) http://3.14.by/ru/md5 автор слажал с реализацией под SSE2?.. ----- От многой мудрости много скорби, и умножающий знание умножает печаль |
|
Создано: 14 апреля 2012 07:17 · Личное сообщение · #10 |
|
Создано: 14 апреля 2012 08:36 · Личное сообщение · #11 |
|
Создано: 14 апреля 2012 09:39 · Личное сообщение · #12 |
|
Создано: 14 апреля 2012 09:56 · Личное сообщение · #13 |
|
Создано: 14 апреля 2012 13:08 · Личное сообщение · #14 Мне не жалко выложить инструмент. Но не я его автор. Я просто реверснул алгоритм CRC 3-его поколения (напомню, что было и 1-ое поколение, про которое никто уже не помнит, арма версии до 3.40, кажется), как только он появился, а данный индивид любезно написал программу брутфорса, скорее из спортивного интереса, нежели для себя. Если он посчитает нужным ее выложить здесь, так тому и быть. Сам алгоритм не приватен, его давно все изучили, все кому не лень. Вопрос выкладки тулзы скорее относится к морально-нравственным (типа вот сейчас придут на готовое не понимающие люди, что сделает им же хуже, как было уже с сотней автоматических тулз - пользователи последних тупеют), нежели нытье вида "ну вот опять, приват на паблик выложили, теперь дыру прикроют". Кстати не прикроют, для этого пришлось бы полностью менять регистрационную схему, ибо 32 битный симметричный ключ это грубое нарушение правил криптографии. А это влечет за собой жестокие модификации. Только представьте, тысячи селлереров должны будут менять свои скрипты на сайтах, а разработчики переделывать файлы проектов, высылать легальным подписчикам новые ключи. Модификация сервисов Digital River и eSellerate. Потребуется на половину переписать security.dll, ну и еще много чего. Если это будет сделано, это будет уже не Armadillo, а полностью новая защита. Vovan666 пишет: Причем я даже наверное знаю про какую тулзу идет речь, но она заточена только под интеловские камни и на амд дает результат хуже наверно чем самая простая md5 реализация в 1 поток. SSE2 как будто в AMD нету Не проверял, но по идее результат тот же. Iona пишет: Показатель "32 симметричных ключа за 4 часа" Прошу прощения. Не правильно выразился. 32 CRC от симметричных ключей. Замер времени был произведен на core i7 2670QM. Понятное дело 8 потоков. Ноутбук при этом жарит воздух (респект интеловским разработчикам за создание нанотехнологического обогревателя). |
|
Создано: 14 апреля 2012 13:17 · Личное сообщение · #15 @SaNX В проге редко бывает больше 10 сертификатов, очевидно речь идет об одном сертификате. К одному сертификату можно найти только один правильный ключ, очевидно что, 32 ключа это не правильно найденные. Отсюда задачка: Тулза за 4 часа находит 32 неправильных ключа. За сколько времени будет найден правильный ключ??? |
|
Создано: 14 апреля 2012 13:22 · Личное сообщение · #16 К одному сертификату может быть найдено до тысячи ключей, за счет коллизий. А уже потом, вторая тулза юзает TEA и смотрит на дамп массива зашифрованных сертификатов. Время работы утилы поиска коллизий не зависит от числа поданных на вход контрольных сумм. 32 было выбрано, т.к. редко найдешь программу где сертов больше (практически невозможно такое найти), а это кол-во влезает в SSE регистры. Основной акцент на отсутствии операций обращения к памяти. |
|
Создано: 14 апреля 2012 13:33 · Личное сообщение · #17 |
|
Создано: 14 апреля 2012 13:37 · Поправил: SaNX · Личное сообщение · #18 Iona пишет: За сколько времени будет найден правильный ключ??? зависит от того, сколько времени будет идти брут. Тулза просто ищет все ключи, которую дадут заданную ЦРЦ. Неверных ключей может быть миллион, при том из этого миллиона верным может быть самый первый ключ. у меня был вопрос: как брут зависит от "числа сертификатов,количества потоков"? Тулза написана так, что на вход можно подавать несколько ЦРЦ, брутиццо будут все сразу. Iona пишет: Я правильно понял? нет. в проге в каждом серте лежит ЦРЦ. ----- SaNX |
|
Создано: 14 апреля 2012 13:43 · Поправил: Vovan666 · Личное сообщение · #19 |
|
Создано: 14 апреля 2012 15:55 · Личное сообщение · #20 |
|
Создано: 14 апреля 2012 16:20 · Поправил: ajax · Личное сообщение · #21 int пишет: 32 CRC от симметричных ключей 32 коллизии для 1 симм. кея? полный просчет 1 кея - $FFFFFFFF, при котором нашлись эти 32 коллизии? 32 коллизии для 8 разных ключей в 8 потоках? Iona пишет: на i7 к Armadillo 9.00 ко всем сертификатам будут найдены ключи за 5 часов с трудом верится ----- От многой мудрости много скорби, и умножающий знание умножает печаль | Сообщение посчитали полезным: DimitarSerg |
|
Создано: 14 апреля 2012 20:08 · Поправил: VodoleY · Личное сообщение · #22 |
|
Создано: 15 апреля 2012 00:50 · Личное сообщение · #23 SaNX пишет: нет. в проге в каждом серте лежит ЦРЦ. Так-с. По ходу здесь нужен ликбез небольшой. В арме лежат следующие данные: I. Массив публичных ключей (верно для поколений ключей с цифровой подписью - V2Key, V3Key, ShortV3Key) BYTE KeyLevel; // 0x00 - 0x03 = V2Key Level 1 - 4 // 0x0A - 0x12 = V3Key Level 1 - 9 // 0x14 - 0x1D = ShortV3Key Level 1 - 10 BYTE ExpLength; // длина эскпоненты DWORD CheckSum; // контрольная сумма симметричного ключа, всего известно 3 поколения алгоритмов // для контрольной суммы. Первый из них это примерно 3.00 - 3.40 арма (очень много коллизий), // второй относится к версиям 3.50 - ~7.40 (не помню точно последний билд, в данном алгоритме в // среднем от 1 до 5 коллизии), третий - ввели дополнительный параметр, индивидуальный для каждый // программы, а сам алгоритм усилен лам-методом аля for (i = 0; i < 1000; i++) t = md5(t); (только там не // 1000, а другое число и алгоритм чуть другой, если надо, представлю его здесь). В третьем алгоритме // порядка 1000 коллизий (но при этом это гораздо приятнее первого поколения) BYTE Exponent[ExpLength]; // собственно публичный ключ, в случае, если уровень не 0x1D (не ECDSA) // успешно брутится всеми подряд. Кто до этого дошел сам, кто подглядел у других, кто использует // готовые чужие инструменты (и таких "ломателей армы" большинство, к ним же отношусь и я, хотя // я все равно не мало превнес в исследование армы и продолжил несколько заброшенных проектов) Собственно, Exponent является числом Y, которое так просят все инструменты, а люди которые либо не шарят в криптографии, либо им лень поставить бряк на GetWindowTextA/W спрашивают на всех подряд форумах, а где же прикоснуться к этой "великой приватной тайне" и где взять этот Y? С лирикой покончили. Итак, мы хотим сделать кейген, что для этого надо сделать? 1. Для случая ECDSA, можно патчить Exponent (обычная строка с 3 параметрами через запятую, их можно просто заменить на свои, понятное дело, поправив все контрольные суммы) или же саму проверку подписи (только делать это надо грамотно, иначе проверка сработает на первом же серте с ECDSA и мы не сможем использовать другие серты, по этой же причине найденная группой NGEN уязвимость не позволяет регистрировать программу более чем на одном серте - в смысле выбора нет). Есть мнение, что ECDSA-113 с кривой Коблица брутится максимум за год и это вполне реальный взлом (там пару бит можно сбросить вроде как). В реальности же не видел ни у кого этой технологии, только "болтология". Когда была дыра в ГПСЧ, ECDSA кейгенили ребята с reversing.net, а затем и группа TMG. Кое-кто очень добрый слил дыру Чаду Нельсону, после чего ее прикрыли. 1a. Для случая ElGamal берем Y, открываем исходники KeyMaker.cpp, который уже несколько раз релизился и изучаем принцип построения констант для дискретного логарифма. Хотя можно не заморачиваться (да и не всем эта теория под силу) и взять публичный инструмент, например, от vel'а. Получаем Pvt - приватный ключ. 2. Нам нужно получить симметричный ключ. Берем либо из валидного серийника (он там поксорен HWID'ом), либо проводим атаку на алгоритм подсчета контрольной суммы (CheckSum которая). И тут есть одна "великая тайна". Симметричный ключ на самом деле на хер не нужен. Я писал эту инфу в паблике на ExeTools, на меня там как на идиота смотрели. Реально симметричным ключом зашифрованы не Secured Sections, а параметры сертификатов, а уже там лежит нужный ключ, который можно получить не вскрывая параметры серта вообще! Старожилы форума утверждают, что на креклабе когда-то была поднята эта тема (публично!), но некто Mario555, имевший на тот момент статус модератора, присвоил труды себе, а тему эту удалил. Так вот ниже собственно то, что и надо называть сертификатами: DWORD data_size; // размер криптованного серта BYTE mini_crc; // md5_hash[0] & 7 - позволяет сразу отбросить подозрение на валидность // по трем битам хэша BYTE certificate_params[data_size]; // тут лежат все параметры, включая уровень ключа - самый первый // байт (что кстати и является ключом ко взлому Unsigned (т.е. без ЭЦП) сертификатов первого поколения), // глобальный для серта ExpirationDate и другие параметры подобного плана (читайте ман самой армы о // том, каким может быть сертификат), данные для создания ключа для SecuredSections и указатели // маркеров SecuredSections (типа где они лежат). Каждый серт способен расшифровывать только // какие-то определенные SecuredSections, указанные разработчиком в настройках при упаковке. md5_hash понятное дело на прямую зависит от симметричного ключа. Сам md5_hash служит TEA ключом для сертификата. Теперь можно попонтоваться. SaNX пишет: нет. в проге в каждом серте лежит ЦРЦ. Не в каждом серте, а в каждом элементе списка публичных ключей. У Unsigned нет публичного ключа (равно как и ЭЦП), значит нет и ЦРЦ. ajax пишет: 32 коллизии для 1 симм. кея? 32 штуки контрольных сумм взятых из массива публичных ключей, с целью брутить сразу 32 максимум симметричных ключа (понятное дело, для разных сертификатов). ajax пишет: с трудом верится А ты поверь. | Сообщение посчитали полезным: MasterSoft, Gideon Vi, Isaev, plutos, NikolayD, obfuskator |
|
Создано: 15 апреля 2012 00:57 · Поправил: SaNX · Личное сообщение · #24 |
|
Создано: 15 апреля 2012 01:09 · Личное сообщение · #25 Выкладываю прямой брут массива закриптованных сертов. Тулза используется для отсева коллизий после косвенного брута симметричного ключа по его контрольной сумме. Не хватает энтузиазма данный дерьмокод привести в человеческий вид, коллизии брать из файла (как вы догадались, они там захардкодены) и массив зашифрованных сертов тоже брать из файла. Также лень сделать дампер зашифрованных сертов и параметров Magic1 и Magic2, и тоже брать их из внешнего файла. Если кто-то все это сделает и выложит, получит много респекта лично от меня и почет у крекеров-малолеток. P.S. Код создавался для подтверждения теории, что взломать новую схему армы возможно. Отсюда неуниверсальность данного кода. Т.к. ломать мне не интересно, а интересно исследовать, после взлома "не помню чего" (откуда, собственно, и были вытащены все параметры-данные) я успокоился и забил. Делать кому-то подарок в виде тулзы в два клика, чтобы кто-то наживался на реквестах в теме Запросов на взлом (как поступил со мной Ev1l^4) я не намерян. Теория изложена, можно сказать полностью. Вот вам и слив армы на паблик. Upd: Кстати соврал. Массив зашифрованных сертов берется из файла certs_crypted.bin, а вот коллизии и Magic'и уже захаркодены. Сталобыть допилить не долго! ;) 4fc5_14.04.2012_EXELAB.rU.tgz - brute.cpp | Сообщение посчитали полезным: DimitarSerg, Dart Sergius, CyberGod |
|
Создано: 15 апреля 2012 09:02 · Личное сообщение · #26 |
|
Создано: 15 апреля 2012 12:13 · Личное сообщение · #27 int отлично расписал, многим будет полезно int пишет: 32 штуки контрольных сумм взятых из массива публичных ключей, с целью брутить сразу 32 максимум симметричных ключа (понятное дело, для разных сертификатов) в таком случае напрашивается вывод, что у них одинаковый salt? int пишет: А ты поверь я про 5 часов на 1 компе ----- От многой мудрости много скорби, и умножающий знание умножает печаль |
|
Создано: 15 апреля 2012 13:22 · Личное сообщение · #28 |
|
Создано: 15 апреля 2012 13:36 · Поправил: ajax · Личное сообщение · #29 |
|
Создано: 15 апреля 2012 14:22 · Личное сообщение · #30 ajax пишет: в таком случае напрашивается вывод, что у них одинаковый salt? Само собой. 32 битная соль общая для всей программы. Из программы вытаскиваются массив публичных ключей, оттуда контрольные суммы и дополнительно DWORD соли. Все загоняется в брутер. Автор брутера пока молчит на счет публикации исходников. Может просто занят. |
. 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . >> |
eXeL@B —› Протекторы —› Armadillo (Туторы, скрипты, плагины etc) |