Сейчас на форуме: zds, -Sanchez- (+9 невидимых)

 eXeL@B —› Протекторы —› ASProtect - вопрос по криптованным функциям
. 1 . 2 . >>
Посл.ответ Сообщение


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

Создано: 13 января 2006 17:53
· Личное сообщение · #1

Здравствуйте. Уверен, что на такой вопрос отвечали уже не раз, но всё же прошу короткий ответ.
Программа запакована asprotect-ом. Стриппер её распаковал. До ввода правильного кода много функций заблокированно. Вид такой:

Jpm msg
….
криптованный код

msg эта функция недоступна.

Другими словами введя валидный код, от чего бы он не зависел, мы рано или поздно доходим до функции аспра которая должна раскриптовать все подобные куски проги.
Не зная этот код – это можно сделать ? Что может передаваться в эту функцию и каким алгоритмом аспр раскриптовывает этот кусок ? Или может в функцию подаётся dword а вся раскриптовка проходит xor-ом ?



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

Создано: 13 января 2006 22:04
· Личное сообщение · #2

ToBad пишет:
но всё же прошу короткий ответ


нет



Ранг: 88.0 (постоянный)
Активность: 0.070
Статус: Участник

Создано: 13 января 2006 23:10
· Личное сообщение · #3

ToBad пишет:
Что может передаваться в эту функцию и каким алгоритмом аспр раскриптовывает этот кусок ?

В версиях 1.х вроде юзается rsa. Тебе поможет только соц. инженерия.




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

Создано: 13 января 2006 23:30
· Личное сообщение · #4

То есть выход один - иметь валидный ключ и делать дамп рабочей версии с распакованными функциями ?



Ранг: 160.1 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 14 января 2006 00:57
· Личное сообщение · #5

ToBad
если есть валидный ключ, но с другой машины (в случае привязки к hwid) то тоже можно сдампить



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

Создано: 14 января 2006 04:33
· Личное сообщение · #6

Если версия < 1.2 также возможна расшифровка.




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

Создано: 14 января 2006 11:57
· Личное сообщение · #7

Версия: ASProtect 1.23 RC4 - 1.3.08.24 определил PiED
Я немного погорячился сказав, что на такой вопрос отвечали уже не раз. Конкретно по криптованным функциям я не нашёл ничего. В основном восстановление импорта, нахождение ОЕP и распаковка.
Может кто ссылки даст ?



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

Создано: 14 января 2006 14:58
· Личное сообщение · #8

infern0 пишет:
если есть валидный ключ, но с другой машины (в случае привязки к hwid) то тоже можно сдампить


не согласен! Если hwid этой машины известен, то да, можно. Если нет - то под большим вопросом - зависит от длины hwid. (Кстати, если судишь на примере Кроноса, то там hwid не аспровый используется, а внутрикроносовский. Потому и дампятся шифрованные куски легко).

inferno_mteam пишет:
Если версия < 1.2 также возможна расшифровка.


Не нужно путать. В версиях меньше 1.2 была возможна генерация секретной части RSA ключа, что позволяло генерировать регистрационные данные. Но возможности расшифровать зашифрованные участки кода без наличия хоть одного авторского ключа не было возможно!



Ранг: 160.1 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 14 января 2006 15:34
· Личное сообщение · #9

Solo
да. согласен.



Ранг: 218.5 (наставник), 2thx
Активность: 0.090
Статус: Участник

Создано: 01 марта 2006 21:06 · Поправил: 0xy
· Личное сообщение · #10

Solo
В версиях меньше 1.2 была возможна генерация секретной части RSA ключа, что позволяло генерировать регистрационные данные
Если я правильно понял, это позволяло написать кейген при наличии одного валидного ключа?
Можно по-подробнее (может тулза такая есть?)



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

Создано: 01 марта 2006 23:23
· Личное сообщение · #11

тулза та exetools зовется - там статья была...
Один валидный ключ нужен только если есть покриптованные куски. Открытый ключ и модуль есть в самом приложении, а слабость генератора позволяла восстановить закрытый ключ.



Ранг: 352.4 (мудрец), 4thx
Активность: 0.150
Статус: Участник
retired

Создано: 02 марта 2006 11:22
· Личное сообщение · #12

вот та статья woodmann.com/crackz/Tutorials/Asprotect.zip



Ранг: 218.5 (наставник), 2thx
Активность: 0.090
Статус: Участник

Создано: 16 марта 2006 07:29
· Личное сообщение · #13

ssx
Solo

Статью прочел, идея в общем понятна
Но как ее в жизнь воплотить? Буду признателенен, если кто-то подробно, на пальцах объяснит:
1) как выцарапать лицензию из защищенной проги?
2) как взаимосношаются лицензия и ключ, и кто из них кого расшифровывает?
3) что полезного (и бесполезного) содержится внутри лицензии и ключа соответственно?
3.1.) где (в ключе или в лицензии) хранится ключ для покриптованоых кусков проги?
4) что означают и где хранятся упомянутые в статье параметры A,D,E,N,P,Q?

Напомню: речь идет об Асрпе 1.0 ; в проге есть криптованые куски (валидный ключ есть), и наша задача -- создать ключ с задаными рег. данными

PS
Да, в криптографии я нУль

PPS
Попутно еще две задачи (надеюсь, это по-проще)
1) научиться вытаскивать ключ для криптованых кусков (его можно передать товарищу, не опасаясь, что тебя забанят )
2) расшифровать содержащиеся в ключе рег. данные (прога не всегда это делает, а иногда не мешает знать, чьим ключом пользуешься)



Ранг: 136.5 (ветеран)
Активность: 0.030
Статус: Участник

Создано: 16 марта 2006 08:17 · Поправил: tar4
· Личное сообщение · #14

0xy пишет:
выцарапать лицензию из защищенной проги?

Мне кажется в данном случае, когда речь идет об лицензии и ключе - это одно и то же. Если используется аспровская "внешняя рег. схема", то дешифровка криптованных участков идет после чтения ключа из внешнего файла (в данном примере лицензии).



Ранг: 218.5 (наставник), 2thx
Активность: 0.090
Статус: Участник

Создано: 16 марта 2006 16:38 · Поправил: 0xy
· Личное сообщение · #15

tar4
Аспровская схема здесь скорее "внутренняя": ключ берется из реестра (строка 172 символа)
А "лицензией" я обозвал данные проэкта Аспра, которые хранятся в проге (по-моему, их еще называют паблик-ключем (ASAP)).
В стате говорится, что в проге лежат некие E и N, а в ключе зашифрованы рег. инфа и некий А (это и есть ключ для криптованых кусков?)
И результатом атаки является нахождение некого D
Вот только где этот D живет в мирных условиях -- я так и не понял. Да, там еще какие-то P и Q поминали

Народ, кто знает (и кому не облом ), расскажите, плииз, по-подробнее о том, что я спрашивал двумя постами выше
Или хотябы скажите, как ключ расшифровать -- может тогда и остальное понятнее станет



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

Создано: 16 марта 2006 22:47
· Личное сообщение · #16

Ключи D и E изначально генерируются так, что для любого X верно (X**E)**D=X(mod N).
Для их генерации используются P и Q. Всю теорию можно в Шнаере прочитать.

Поиск D и N в аспорвой программе зависит от версии аспра. Как было до 1.2 не знаю. Скорее всего проще, чем в последних.

Думаю, вряд ли кто-то расскажет, как доставать ключи...

Если прога небольшая, выложи, может найду в ней D и N, если версия 1.1 не сильно отличается от последних...



Ранг: 136.5 (ветеран)
Активность: 0.030
Статус: Участник

Создано: 17 марта 2006 05:42
· Личное сообщение · #17

Oxy
Учитывая то, что в аспре используется ассимитричный тип криптозащиты на основе Rsa, тогда D - это закрытый ключ (descript), а E- открытый публичный ключ. Для того, чтобы ключ "попал" в реестр, нужно сначала, чтобы прога его использовала. Если применена "внешняя" схема, то ключ читается из внешнего файла, если схема с кодом активации - то после ввода кода активации, ключ записывается в реестр. Ключ D находится у того, кто проводит шифрацию криптованных участков, т.е. у собст-ка проги.
После оплаты стоимости программы, он направляется (высылается) пользователю.
Алгогитм расшифровки - где-то в недрах проги. По крайней мере я сейчас так понимаю эту ситуацию.



Ранг: 218.5 (наставник), 2thx
Активность: 0.090
Статус: Участник

Создано: 17 марта 2006 05:53 · Поправил: 0xy
· Личное сообщение · #18

Solo пишет:
Поиск D и N в аспорвой программе зависит от версии аспра. Как было до 1.2 не знаю. Скорее всего проще, чем в последних.

Хм, ты меня совсем запутал В статье говорится, что в проге содержатся N и E, а не D
Впрочем, обзывать их можно как как угодно Но в любом случае непонятно, где хранится второй из них??

Также не понял: позволяет ли нам эта уязвимость "зарегить" прогу на конкретнго юзверя?

Solo пишет:
Если прога небольшая, выложи, может найду в ней D и N, если версия 1.1 не сильно отличается от последних...

Вообще-то я сам хочу научиться их находить. Надеюсь расскажешь как, если найдешь

Только запакованый ехешник:
AsProtectedEXEOnly.rar http://rapidshare.de/files/15695303/AsProtectedEXEOnly.rar_.html -- 945 046 b
Файлы, необходимые для запуска проги (НЕ для полноценной работы -- только для исследования):
OtherFilesOfProga.rar http://rapidshare.de/files/15694992/OtherFilesOfProga.rar_.html -- 769 114 b

А вот что находит в проге ASAP:
HVPjnac4MbCdP1j4CbiFqxBLzAF5ynuPM2rNFKUwT0pHMD58dpKFegEE3mVNUYEXOXhbVw 8A0lkqhNxinpvO/X04aRgtvt/j27QtBTj5zB5gMI4GEr4Jvuub7FU/aLPVxlfVqYJX7ev0 2cwdyo8WHCM/PnTX7H9gE1WEUIKYHb0=

Сие явление он обзывает "Public key" и говорит, что он должен "образовывать верную пару с User key", чего, по его мнению, не наблюдается!
Кстати, ASAP--прикольная тулза, как раз для этих версий Аспра (<=1.1) Там много чего есть (в т.ч. и атака по этой дырке ) Жаль только, что умерла она в глубокой альфе, а большинство фитч не фурычат

И еще: объясни, плииз, как (имея D(E) и N ) расшифровать рег. ключ
Третий раз прошу



Ранг: 218.5 (наставник), 2thx
Активность: 0.090
Статус: Участник

Создано: 17 марта 2006 06:44 · Поправил: 0xy
· Личное сообщение · #19

tar4 пишет:
Для того, чтобы ключ "попал" в реестр, нужно сначала, чтобы прога его использовала. Если применена "внешняя" схема, то ключ читается из внешнего файла, если схема с кодом активации - то после ввода кода активации, ключ записывается в реестр

С внешней схемой не знаком, а всего остального, по-моему, в Аспр 1.0 не было. По крайней мере, кода активации там точно нет, а ключ предполагается вносить в реестр самостоятельно (или при помощи внещней проги )

tar4 пишет:
Ключ D находится у того, кто проводит шифрацию криптованных участков, т.е. у собст-ка проги.
После оплаты стоимости программы, он направляется (высылается) пользователю.

Дык что, выходит, что эти 172 символа в реестре и есть ключ для раскриптовки кода? По-моему, это не совсем так (или совсем не так )



Ранг: 136.5 (ветеран)
Активность: 0.030
Статус: Участник

Создано: 17 марта 2006 07:20
· Личное сообщение · #20

Oxy. Ты извини, я описывал конечно ситуацию не с версией 1.1., а с последними: 2.0 и выше.
На счет реестра. Посуди сам. Если прога зарегистрирована, то где она должна хранить введенный ранее ключ? Если сомневаешься, попробуй удалить эту запись из реестра.



Ранг: 218.5 (наставник), 2thx
Активность: 0.090
Статус: Участник

Создано: 17 марта 2006 07:27 · Поправил: 0xy
· Личное сообщение · #21

tar4 пишет:
Ключ D находится у того, кто проводит шифрацию криптованных участков, т.е. у собст-ка проги.
После оплаты стоимости программы, он направляется (высылается) пользователю.

Теперь разобрался, как должна звучать эта фраза:
"Ключ D находится у того, кто проводит шифрацию регистрационных ключей (тобиш, клепает онные), т.е. у собст-ка проги. После оплаты стоимости программы, он (в смысле, РЕГИСТРАЦИОННЫЙ ключ) направляется (высылается) пользователю. "

Then when a registration key is computed:
1 - H1 = RipeMD-160(A) -- похоже это и есть ключ для криптованых кусков
2 - H2 = MD5(Registration Information—H1)
3 - Key = RSA(D,N, [H2—Registration Information—H1])



Ранг: 218.5 (наставник), 2thx
Активность: 0.090
Статус: Участник

Создано: 17 марта 2006 07:38
· Личное сообщение · #22

tar4 пишет:
На счет реестра. Посуди сам. Если прога зарегистрирована, то где она должна хранить введенный ранее ключ? Если сомневаешься, попробуй удалить эту запись из реестра.

Да не сомневаюсь я Вопрос в том, что эта запись собой представляет (см. пост выше)



Ранг: 218.5 (наставник), 2thx
Активность: 0.090
Статус: Участник

Создано: 21 марта 2006 02:49 · Поправил: 0xy
· Личное сообщение · #23

Вот, нашел хорошую статью об RSA:
http://exelab.ru/art/rsa_key.php

Там подробно рассказано об P,Q,D,E и N

Но остаются актуальными вопросы:
1) Как выдрать из проги E и N? -- 2 Solo
2) Как, при наличии вышеупомянутых, расшифровать рег. ключ Аспра (v 1.0, если кто забыл ), т.е. выдрать из него ключи для крипованых кусков проги, а также рег. данные (не подделать, а просто прочесть)?
3) Что делать с seed, вычисленым согласно статье http://woodmann.com/crackz/Tutorials/Asprotect.zip ?
Можно ли его как-то скормить RSAtool для вычисления закрытого ключа, или необходимо разбираться с алгоритмом, предложеным в статье?



Ранг: 136.5 (ветеран)
Активность: 0.030
Статус: Участник

Создано: 21 марта 2006 05:22
· Личное сообщение · #24

Хотел помочь тебе, но не получилось протрассировать прогу. Похоже там защита от отладчика стоит, вызывается GetTickCount. А как обойти ее, некогда разбираться.



Ранг: 203.3 (наставник)
Активность: 0.220
Статус: Участник
UPX Killer -d

Создано: 21 марта 2006 09:42
· Личное сообщение · #25

tar4 пропатч функцию чтоб ноль возвращала всегда =)

-----
Я медленно снимаю с неё UPX... *FF_User*





Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 22 марта 2006 00:30
· Личное сообщение · #26

короче, разгребал недавно накаченый софт.. вот набрёл на это...
вроде там статья про RSA-1024 + какие то исходники на асме...
надеюсь, кому-то поможет....

40c0_Asprotect.zip.zip

-----
[nice coder and reverser]





Ранг: 221.8 (наставник)
Активность: 0.150
Статус: Участник

Создано: 22 марта 2006 00:39
· Личное сообщение · #27

Hellspawn
уже неоднакратно опсуждалось. статья с вудмана.




Ранг: 990.2 (! ! !), 380thx
Активность: 0.680
Статус: Модератор
Author of DiE

Создано: 22 марта 2006 00:57
· Личное сообщение · #28

Red Bar0n пишет:
уже неоднакратно опсуждалось. статья с вудмана.


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

-----
[nice coder and reverser]




Ранг: 218.5 (наставник), 2thx
Активность: 0.090
Статус: Участник

Создано: 22 марта 2006 02:33 · Поправил: 0xy
· Личное сообщение · #29

tar4 пишет:
Хотел помочь тебе, но не получилось протрассировать прогу. Похоже там защита от отладчика стоит, вызывается GetTickCount. А как обойти ее, некогда разбираться.

Странно У меня под Олей запускается (после 44 Exceptions) и трассируется без проблем.
Вот выложил вариант с отключенным Аспровским Anti-Debug: AsProtectedEXEOnlyWOAntiDebug.rar http://rapidshare.de/files/16100595/AsProtectedEXEOnlyWOAntiDebug.rar_.html



Ранг: 136.5 (ветеран)
Активность: 0.030
Статус: Участник

Создано: 22 марта 2006 08:07
· Личное сообщение · #30

0xy пишет:
выложил вариант с отключенным Аспровским Anti-Debug:

Чего-то я не заметил различий его с оригиналом, так же глючит.
AlexZ пишет:
пропатч функцию

Не получается, хотя может быть я не правильно делаю.


. 1 . 2 . >>
 eXeL@B —› Протекторы —› ASProtect - вопрос по криптованным функциям
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати