Программа // Хеш

Discussion in 'Реверсинг' started by -SX-, 10 Mar 2008.

  1. -SX-

    -SX- Elder - Старейшина

    Joined:
    4 Oct 2004
    Messages:
    92
    Likes Received:
    8
    Reputations:
    5
    Здравствуйте товарищи!
    Терялся в решении, в какой раздел запостить данный топик, решил запостить сюда...
    Вообще такая ситуация... есть программка... программа работает на яблоке...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 ...

    Сам бинарный файл программы, похоже, даже не запакован... Пробовал дизасемблить, но вышло без успешно) В этом, к сожалению, я не селен... Если кто-то сможет помочь относительно бинарника, я буду очень благодарен...
     
  2. diehard

    diehard Elder - Старейшина

    Joined:
    30 Sep 2007
    Messages:
    442
    Likes Received:
    266
    Reputations:
    15
    А почему ты однозначно решил, что это именно Haval128, это также может быть MD2, MD4, MD5, RIPEMD128, SNEFRU128, Tiger128, да что угодно.
    Все эти типы хеш-функций описаны в соотв. RFC, какой алгоритм используется в твоей программе я не знаю, но самые популярные это MD5 и RIPEMD.

    эта бяка baPYZtVWfgHo/uU2m6zJBg== в раскодированном виде Base64 -> Hex: 6da3d866d5567e01e8fee5369bacc906 - 128-битный хеш, вычисленный по какой-то из хеш-функций.
    А "mfc103c8942e1" это возможно HMAC-ключ для используемого алгоритма хеширования.
    Короче нужно дизасемблировать твою программу, чтобы точно узнать что к чему
     
    #2 diehard, 10 Mar 2008
    Last edited: 10 Mar 2008
    1 person likes this.
  3. -SX-

    -SX- Elder - Старейшина

    Joined:
    4 Oct 2004
    Messages:
    92
    Likes Received:
    8
    Reputations:
    5
    дааа.. спустя несколько минут.. погуглив... я осознал безнадежность ситуации, и пошел биться головой ап стену )))

    дизасемблить у меня не вышло.. юзал IDA Pro Advanced..
    вернее вышо, по-моему, но до конца так и не разобрался....

    программа тут
    Возможно, кто-то поможет доброй душе? :D
     
  4. neprovad

    neprovad Elder - Старейшина

    Joined:
    19 Oct 2007
    Messages:
    899
    Likes Received:
    274
    Reputations:
    59
    отпишись по адресам функций где все это было "замечено"
    это я к тому чтобы не делать двойной работы. жду новостей
     
  5. -SX-

    -SX- Elder - Старейшина

    Joined:
    4 Oct 2004
    Messages:
    92
    Likes Received:
    8
    Reputations:
    5
    Да я в программе поковырялся, вообщем конкретного нечего не нашел...
    Вот эту всю информацию я вытащил с запросов...ну и с бплиста...
    Поставил снифер, отловил пакеты, посмотрел содержания и куда они идут...
    В 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 на другой любой хост...
     
    #5 -SX-, 11 Mar 2008
    Last edited: 11 Mar 2008
  6. s0lar

    s0lar Elder - Старейшина

    Joined:
    16 Mar 2008
    Messages:
    63
    Likes Received:
    7
    Reputations:
    1
    еще один любитель халявной гусеницы под ифон, там все не так просто лицензи на сервере хранятся и пока тебя не внесут как легального юзера...точно бейся головой ап стену...другимим словами пока в их базе не будет твоей легальной лицензии....вобщем сам понимаешь, русские делали прогу ;)

    ЗЫ видел вчера пост в рунете что поламали немного рипов...ищи в гугле ripdev hack..
     
  7. dscan

    dscan Elder - Старейшина

    Joined:
    23 Feb 2007
    Messages:
    265
    Likes Received:
    127
    Reputations:
    15
    baPYZtVWfgHo/uU2m6zJBg== -->(base64) m£ØfÕV~èþå6›¬É-->(base64) = ™xz
     
    1 person likes this.
  8. -SX-

    -SX- Elder - Старейшина

    Joined:
    4 Oct 2004
    Messages:
    92
    Likes Received:
    8
    Reputations:
    5
    Интересное сходство.... не знаю как у тебя так получилось перевести.... ты во что переводил.. в ASCII ?

    Вообщем так или иначе, это не то, к сожалению...