Просмотр полной версии : Программа // Хеш
Здравствуйте товарищи!
Терялся в решении, в какой раздел запостить данный топик, решил запостить сюда...
Вообще такая ситуация... есть программка... программа работает на яблоке...MAC OS...
А если еще точнее, то она на iPhone... возможно кто-нибудь слышал о таком)... ну ладно... это не важно... программа создает файл бинарный bplist...
После того, как я переконвертировал его в xml, получил следующие...
...
<data>
baPYZtVWfgHo/uU2m6zJBg==
</data>
...
Изначально кинулось в глаза форма хеша, подумал, что это Base64...
Но хрен там... base64 ответил m£ØfÕV~ èþå6›É
Не понятно... Этот хеш создается от mfc103c8942e1 и плюс еще чего-то...
При том, если mfc103c8942e1 менять, в конце хеша в любом случаи будут присутствовать два знака "равно" ==
Погуглил, нашел что-то... Хеш с названием Haval128(Base64)... В примере, его можно найти тут (http://www.insidepro.com/hashes.php?lang=eng)
Про Haval128 с Base64 вообще как-то мало информации... или это мне так повезло...
Информация по Haval128 от HMAC еще нашел, а вот что касательно Haval128...Base64...
Собственно вопрос... кто-то сталкивался с данным алгоритмом, и главное, возможно ли его как-то переконвертировать в ASCII ...
Сам бинарный файл программы, похоже, даже не запакован... Пробовал дизасемблить, но вышло без успешно) В этом, к сожалению, я не селен... Если кто-то сможет помочь относительно бинарника, я буду очень благодарен...
А почему ты однозначно решил, что это именно Haval128, это также может быть MD2, MD4, MD5, RIPEMD128, SNEFRU128, Tiger128, да что угодно.
Все эти типы хеш-функций описаны в соотв. RFC, какой алгоритм используется в твоей программе я не знаю, но самые популярные это MD5 и RIPEMD.
эта бяка baPYZtVWfgHo/uU2m6zJBg== в раскодированном виде Base64 -> Hex: 6da3d866d5567e01e8fee5369bacc906 - 128-битный хеш, вычисленный по какой-то из хеш-функций.
А "mfc103c8942e1" это возможно HMAC-ключ для используемого алгоритма хеширования.
Короче нужно дизасемблировать твою программу, чтобы точно узнать что к чему
А почему ты однозначно решил, что это именно Haval128...
дааа.. спустя несколько минут.. погуглив... я осознал безнадежность ситуации, и пошел биться головой ап стену )))
дизасемблить у меня не вышло.. юзал IDA Pro Advanced..
вернее вышо, по-моему, но до конца так и не разобрался....
программа тут (http://www.sendspace.com/file/t00rqv)
Возможно, кто-то поможет доброй душе? :D
neprovad
11.03.2008, 00:46
отпишись по адресам функций где все это было "замечено"
это я к тому чтобы не делать двойной работы. жду новостей
Да я в программе поковырялся, вообщем конкретного нечего не нашел...
Вот эту всю информацию я вытащил с запросов...ну и с бплиста...
Поставил снифер, отловил пакеты, посмотрел содержания и куда они идут...
В bplist'е хранятся данные лицензии...
Вот пример общение программы с сервером... Сама программа посылает GET запрос серверу через 80 порт по http протоколу.
Далее после возврата сервером странички, гребаються результаты программой... У программы 3 вопроса...Программа может спросить Триал(пробование программы на протяжении 2 дней без каких либо ограничений функционал. проги), новая лицензия(при вводи кода отсылается запрос), продолжение лицензии(то же, практически что и предыдущее, только используется если программа уже была зарегистрирована... даже триально)... Сервер может ответить, при триальном, "Хорошо, даю триал", либо чо-то вроде, лицензия подписана, ну и последние, ошибка... 2 виды ошибки (код уже кем-то используется, код неверный)...
Примеры запросов... (их можно просмотреть любым браузером... авторы даже не удосужились сделать фильтр, хотя бы по User-Agent)
Триальный!
GET /trial/1/com.ripdev.caterpillar/1.1/mfc103c8942e1/12345678 HTTP/1.1..User-Agent: CFNetwork/152.4..Accept: */*..Accept-Language: ru-ru..Accept-Encodin
g: gzip, deflate..Cookie: session=4c9ed63647d1b4282ae86..Connection: keep-alive..Host: styx.ripdev.com....
далее буду кидать запросы сокращено...
Новая лицензия...
GET /authorize/1/com.ripdev.caterpillar/1.1/mfc103c8942e1/12345678
Продолжение лицензии
GET /extend/1/com.ripdev.caterpillar/1.1i/mfc103c8942e1/12345678
Где... 12345678 - серийный ключик при вводи в программу... Восьмизначный...
mfc103c8942e1 - "уникальная" строка от каждого телефона... возможно IMEI или MAC адрес соединен с еще каким-то значениям...
1.1i или 1.1 - понятия не имею... при изменении этой переменой никакие значения не меняются... можно это считать коментом...
com.ripdev.caterpillar - это приложение caterpillar, о которым я и упоминал...
1 - без понятия… вообщем 1 так 1... значение не меняется программой...
ну и дальше думаю ясно...
Давайте запросим триал,...(при триале кстати, серийный код не обязателен... это уже примеры после моих фейковый запросов... сервер просто игнорирует последнею переменою, т.е. код.) в ответ сервер отдаст нам
...
<key>Success</key>
<true/>
<key>Trial</key>
<true/>
<key>TrialDaysLeft</key>
<integer>1</integer>
<key>PersonalizationData</key>
<data>
Ioz/1R05oECTbsteezXInA==
</data>
</dict>
...
что на счет ключа TrialDaysLeft, он юзается только для того, чтоб в ПопАпе показать в программе, сколько осталось дней... на саму лицензию это не влияет... можно поставить хоть 9999, но регистрация триала так и останется 2 дня... А вот хеш, уже интересно... он был сгенерирован от "mfc102c8942e1"... В него включается 100% дата(программа регистрируется на несколько месяцев)... При ответе не триала, а продления лицензии, возвращается подобный пакет... Собственно, если узнать что это за хеш, можно его будет подделать... а дальше форвардить до styx.ripdev.com на другой любой хост...
еще один любитель халявной гусеницы под ифон, там все не так просто лицензи на сервере хранятся и пока тебя не внесут как легального юзера...точно бейся головой ап стену...другимим словами пока в их базе не будет твоей легальной лицензии....вобщем сам понимаешь, русские делали прогу ;)
ЗЫ видел вчера пост в рунете что поламали немного рипов...ищи в гугле ripdev hack..
baPYZtVWfgHo/uU2m6zJBg== -->(base64) m£ØfÕV~èþå6›¬É-->(base64) = ™xz
baPYZtVWfgHo/uU2m6zJBg== -->(base64) m£ØfÕV~ èþå6›É -->(base64) = ™xz
Интересное сходство.... не знаю как у тебя так получилось перевести.... ты во что переводил.. в ASCII ?
Вообщем так или иначе, это не то, к сожалению...
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot