ITSumma corporate blog
Abnormal programming
Reverse engineering
Comments 12
0

В дампе кроме бинарных данных видны строчки


cafe babe fa00 0000
dead beef 0000

Можно предположить что это строки с завершающимся нулем, либо отдельные файлы с разделителем 0000


Если там есть строки, логично попробовать сменить кодировки на UTF8 и попытаться найти кирилический текст

0

Если попытаться просто перевести дамп в UTF-8, то кроме шума там появляются такие слова как codefestoep, firstvds8„m2, itsumma, anychartA, selectelLM, bsah‡…c‹N54/ZVC. Можно предположить что это дамп класса или структуры данных (или просто кода), далее считая что это названия полей ну скажем класса С++ или Java можно попытаться восстановить структуру данных.

0
Скомпилированный java-класс как раз и содержит magic number 0xСAFEBABE в первых четырёх байтах :)
0
Там что-то вроде заголовка такого формата:
+0 [4] CAFEBABE
+4 [4] Размер хидера
+8 [2] Размер данных (похоже на поксоренный текст)
+10 [..] данные (в данном случае размером 0xF0)
+10+N DEADBEEF

Указанные Вами строки имеют структуру вида
+0 [2] Размер строки
+2 [N] строка без null символа в конце

И вообще, кажется, массив данных после DEADBEEF представляет собой пожатый алгоритмом вроде LZ текст. (пробовал lz77, lzw, aplib — это все не оно)

Может конечно это и сериализация, но на ProtoBuf, BSON это не похоже. Пробовал стандартную сериализацию из Java (намекает первая магическая константа CAFEBABE) — тоже не оно.
+1
Подсказка #1:
Прыгай по смещениям, смещения обычно uint32 где-то в начале
+2
Скрытый текст

Размер файла 0x0000071C.
В начале только подходит только одно смещение uint32 — FA 00 00 00. Есть еще 00 00 00 F0, если в другую сторону считать, но вроде что-то не то.
По смещению 0x000000FA расположено значение DE AD BE EF.
Дальше 00 00 03 02.
По этому смещению 07 00 itsumma.
Дальше 00 00 05 0F.
По этому смещению 07 00 ksamasi.
Дальше 00 00 00 08.
Там F0 00.
Похоже длина данных.
После них тот DE AD BE EF.
Данные похоже зашифрованы. Пробовал поксорить наугад, не получилось.
В остальной части возможно байт-код.
А что дальше?

+1
Скрытый текст
Так а вы победитель:) itsumma ksamasi -> itsumma is a mask, а дальше — все правильно, xor.
+2

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


ответ, если кому интересно
VKT Vorkuta 67.488611 63.993056
NUX Novy Urengoy 66.069444 76.520278
SCW Syktyvkar 61.64705 50.84505
LED St Petersburg 59.800292 30.262503
IKT Irkutsk 52.268028 104.388975
OVB Novosibirsk 55.012622 82.650656
RCT RockCity 55.034048 82.918779
0

ksamasi — isamask, если наоборот. Возможно дальше хранится маска для расшифровки.

+2
michael_vostrikov, ты крутой! Никто еще не решал эту задачу без трех подсказок. Напиши на info@itsumma.ru свой размер одежды, пришлем тебе футболку победителя!
+1
Подсказка #2:
Смещение где-то рядом, и кроме little endian бывает еще другой
Only those users with full accounts are able to leave comments. , please.