Сейчас на форуме: Magister Yoda, johnniewalker, Kybyx, vsv1, r0lka, -Sanchez-, testrev1337 (+3 невидимых) |
eXeL@B —› Крэки, обсуждения —› Взлом программы с RSA шифрованием написанной на Delphi с использованием Turbo Power LockBox |
<< . 1 . 2 . 3 . |
Посл.ответ | Сообщение |
|
Создано: 28 октября 2009 07:12 · Поправил: fl4r3 · Личное сообщение · #1 Добрый день. Вчера мне потребовалось взломать программу для личного пользования и взявшись за IDA Pro я начал исследование. После поиска по GetWindowTextA и кросс референсам были найдены процедуры выводящие итог регистрации (удачная\неудачная). Потрейсив код немного выше были найдены и сами процедуры. После этого я открыл Hiew, нашел данные строки и попробовал изменить один условный переход. Но при запуске программы я получал ошибку и вываливался в отладчик (Microsoft Visual Studio 2008), который напрочь зависал при передаче ему управления. Ага, опять продукт микрософта подумал я, и решил попробовать что нибудь другое. Перешел в IDA Pro и там попробовал дебажить. IDA тоже не справился. Я начал подумывать что может заменил неправильно переход и каким нибудь образом стек становился несбалансированным и из-за этого программа вылетала. Взял исходный exe опять и заменил в конце файла один байт в строке с копирайтами (с 2003 года заменил на 2004). Запустил. Не работает. Тут я начал подумывать о том что файл упакован. Но при ручном осмотре и автоматическом различными анпакерами это не подтвердилось. Значит дело в другом. С помощью PEiD нашел список используемых криптографических функций. Среди них пара бейз64, crc32, blowfish, LockBox и список простых чисел. Список простых чисел наверняка используется для вычисления RSA ключа. Переходя по разным адресам где располагаются функции LockBox (например RsaEncryptFile) я начал исследование самой защиты. Я знал что можно будет написать брутфорсер зная числа p, q, e. Но в данном конкретном случае ничего не вышло. Ребята, посмотрите пожалуйста данный exe - достаточно интересная защита. Ссылка на exe: ifolder: P.S. Мне не нужна конкретная реализация, подскажите просто в каком направлении копать. |
|
Создано: 03 ноября 2009 23:00 · Поправил: fl4r3 · Личное сообщение · #2 zeppe1in Надо модулус на праймы разложить... Если не секрет, где нашел эти данные все? P.S. Перевел модулус в 10-ый формат и загнал в ppsiqs. Ошибка, говорит что четное число: Input number ( input 0 to exit ) 61617824865406484000 Error occured : input number is even, file ..\source\lib\siqs_bl.cpp, line 780 Abnormal program termination |
|
Создано: 03 ноября 2009 23:09 · Поправил: zeppe1in · Личное сообщение · #3 fl4r3 в TLbAsymmetricKey.LoadFromStream. да там можно много где их найти достаточно только с локбоксом разобратся + сиги которые как я понял никто не может сделать), я вручную процедуры распознавал. а раскладывать ничего не надо, всё уже разложено. P.S. я незнаю что такое 10-ый формат и ppsiqs Если очень хочется то можно разложить с помощью RSATool, и не забудь перевернуть. ----- zzz |
|
Создано: 04 ноября 2009 08:53 · Личное сообщение · #4 zeppe1in Десятичный формат. Раскладывать хотел с помощью PPSIQS (http://www.asahi-net.or.jp/~kc2h-msm/cn/index.htm). PPSIQS is the double large primes procedure variation of the self-intializing quadratic sieve. In general, PPSIQS is faster than PPMPQS. А для RSATool не хватает первого и второго прайма чтобы зашифровать\расшифровать месседж... |
|
Создано: 04 ноября 2009 11:26 · Личное сообщение · #5 |
|
Создано: 04 ноября 2009 12:15 · Личное сообщение · #6 zeppe1in пишет: расшифровывается рег стринг собственно вот этим PrivateKey.Exponent 23C37FF7E4F1E4323D26BB5D38F4393B PrivateKey.Modulus 81FDB94770E788F3571E7D3FF6C8F285 ок, если все верно, можно проверить: (hex) Cipher AC D2 BA C8 B0 07 24 02 78 41 97 1F BF F9 22 76 ¬ТєИ°$xA—їщ"v Message 32 35 31 38 37 00 00 00 00 00 00 00 00 00 00 00 25187........... если оба преобразования (Encrypt и Decrypt) получятся - до reg.string generator'а остнется один шаг |
|
Создано: 04 ноября 2009 16:21 · Личное сообщение · #7 DMD я же выложил выше кодер/декодер лицензий. такчто всё верно. fl4r3 в РСАтул всё переворачиваем, и суём в Modulus 85F2C8F63F7D1E57F388E77047B9FD81 а в Public Exponent (E) 3B39F4385DBB263D32E4F1E4F77FC323 и жмём factor N. потом жмём calc D. А для RSATool не хватает первого и второго прайма чтобы зашифровать\расшифровать месседж расшифровывается с модулус и приватная експонента, а шифруется с модулус и публичная. у нас всё есть PublicKey.Exponent D73E Modulus 81FDB94770E788F3571E7D3FF6C8F285 PrivateKey.Exponent 23C37FF7E4F1E4323D26BB5D38F4393B ----- zzz |
|
Создано: 05 ноября 2009 13:09 · Поправил: DMD · Личное сообщение · #8 ВР для нахождения кодов привязки к РС 004EB42E . /0F85 81010000 JNZ 004EB5B5 и 004EB461 . /74 33 JE SHORT 004EB496 остальные данные - на собственное усмотрение (впрочем, не думаю, что это было сложно найти ) ps/ zeppe1in в RSA Encrypt выполняется с Private exponent + modulus, а Decrypt выполняется с Public exponent + modulus. |
|
Создано: 05 ноября 2009 21:27 · Личное сообщение · #9 |
|
Создано: 10 ноября 2009 22:16 · Личное сообщение · #10 |
<< . 1 . 2 . 3 . |
eXeL@B —› Крэки, обсуждения —› Взлом программы с RSA шифрованием написанной на Delphi с использованием Turbo Power LockBox |