Здравствуйте товарищи! Терялся в решении, в какой раздел запостить данный топик, решил запостить сюда... Вообще такая ситуация... есть программка... программа работает на яблоке...MAC OS... А если еще точнее, то она на iPhone... возможно кто-нибудь слышал о таком)... ну ладно... это не важно... программа создает файл бинарный bplist... После того, как я переконвертировал его в xml, получил следующие... ... <data> baPYZtVWfgHo/uU2m6zJBg== </data> ... Изначально кинулось в глаза форма хеша, подумал, что это Base64... Но хрен там... base64 ответил m£ØfÕV~ èþå6›É Не понятно... Этот хеш создается от mfc103c8942e1 и плюс еще чего-то... При том, если mfc103c8942e1 менять, в конце хеша в любом случаи будут присутствовать два знака "равно" == Погуглил, нашел что-то... Хеш с названием Haval128(Base64)... В примере, его можно найти тут Про 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-ключ для используемого алгоритма хеширования. Короче нужно дизасемблировать твою программу, чтобы точно узнать что к чему
дааа.. спустя несколько минут.. погуглив... я осознал безнадежность ситуации, и пошел биться головой ап стену ))) дизасемблить у меня не вышло.. юзал IDA Pro Advanced.. вернее вышо, по-моему, но до конца так и не разобрался.... программа тут Возможно, кто-то поможет доброй душе?
отпишись по адресам функций где все это было "замечено" это я к тому чтобы не делать двойной работы. жду новостей
Да я в программе поковырялся, вообщем конкретного нечего не нашел... Вот эту всю информацию я вытащил с запросов...ну и с бплиста... Поставил снифер, отловил пакеты, посмотрел содержания и куда они идут... В 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... значение не меняется программой... ну и дальше думаю ясно... Давайте запросим триал,...(при триале кстати, серийный код не обязателен... это уже примеры после моих фейковый запросов... сервер просто игнорирует последнею переменою, т.е. код.) в ответ сервер отдаст нам ... HTML: <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..
Интересное сходство.... не знаю как у тебя так получилось перевести.... ты во что переводил.. в ASCII ? Вообщем так или иначе, это не то, к сожалению...