Сейчас на форуме: bartolomeo, -Sanchez-, morgot, sashalogout (+4 невидимых)

 eXeL@B —› Софт, инструменты —› Распаковка файлов из контейнеров SFFS
<< . 1 . 2 . 3 .
Посл.ответ Сообщение

Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

Создано: 30 июня 2014 14:42 · Поправил: vden
· Личное сообщение · #1

upd:
Новый адрес
Релизы

----------------------------------

Утилита для распаковки файлов из контейнеров SFFS

В принципе все то же самое что сделали Reloaded и Olenevod хз-когда но теперь в GUI

Как это работет:

- перетаскиваем файл с ресурсами (*.dat) в окно

- вводим ПРАВИЛЬНЫЙ APPKEY (иначе расшифровка не пройдет, и может быть крэш)
APPKEY можно получить снифером (есть на форуме)

- получаем хэши для каждого файла в контейнере
без имен файлов содержимое файлов расшифровать не выйдет
имена можно достать сниффером который есть на этом форуме, но он сработает только для латиницы
в идеале нужен сниффер для 2-байтного юникода (UTF-16LE)

- жмем F5 и вводим имена файлов
найденные имена добавляются в список и убираются из поля для ввода
проект можно сохранять и добавлять имена позже

- на файле, для которого известно имя, щелкаем 2 раза, файл извлекается и открывается содержащая его папка

Основано на доках Reloaded. Главное отличие - код не рипался, потому что это Blowfish где каждый
блок хорится на позицию в файле.

Связанные материалы:
Набор: драйвер для перехвата APPKEY и имен файлов (только латинские) от MasterSoft

| Сообщение посчитали полезным: Gideon Vi, unknownproject, kampaster, ELF_7719116, verdizela, Veliant, BAHEK, Nightshade, sivorog, 4kusNick, Isaev, DimitarSerg, -Sanchez-, MarcElBichon, zNob, MasterSoft, v00doo, Jim DiGriz

Ранг: 42.8 (посетитель), 16thx
Активность: 0.020.06
Статус: Участник

Создано: 27 июня 2017 13:18
· Личное сообщение · #2

Ссылка из первого поста устарела - перезалейте плз.



Ранг: 12.6 (новичок), 5thx
Активность: 0.010
Статус: Участник

Создано: 30 июля 2017 17:50
· Личное сообщение · #3

bartolomeo
На SVN лежат исходники, можете сами скомпилировать.

| Сообщение посчитали полезным: bartolomeo

Ранг: 112.9 (ветеран), 186thx
Активность: 0.090.01
Статус: Участник

Создано: 31 июля 2017 02:32 · Поправил: vden
· Личное сообщение · #4

Для тех кто не может собрать - код вместе с собранными exe перехал на https://github.com/vdisasm/SFFS-Unpacker

| Сообщение посчитали полезным: zNob, Gideon Vi, TechS, kampaster, vnekrilov, bartolomeo, MarcElBichon, MasterSoft

Ранг: 1.0 (гость), 1thx
Активность: 0.01=0.01
Статус: Участник

Создано: 07 февраля 2020 16:12
· Личное сообщение · #5

Как я рад, что нашел эту тему на просторах форума.

Есть аналогичная проблема. Игра использует свою файловую систему. Ну как свою - большой файл типа архива

Как работает система(BIG ENDIAN):

00 01 00 00 Заголовок архива
00 02 21 24 Размер таблицы информации о файлах (индекс сжатия, смещение, сжатый размер, несжатый размер, шифрованное имя)
00 00 1b 41 Количество файлов в архиве
00 00 00 10 Неизвестные мне данные
00 00 00 00 Неизвестные мне данные
00 02 21 24 Снова размер таблицы данных???(Или указатель на то, сколько нужно байт прочитать?)

Дальше идут сами данные о файлах

00 00 00 01 Индекс сжатия. 01 - файл сжат. 00 файл не сжат (сжатие происходит по алгоритму LZSS, и применяется к каждому файлу отдельно)
0d f8 f4 4b Смещение файла внутри архива
00 00 05 da Сжатый размер файла
00 00 15 6e Несжатый размер файла
00 02 a9 d5 Имя файла


00 00 00 01
13 8c 83 e6
00 03 d0 21
00 06 57 7a
00 05 1e 8c

00 00 00 01
0d 7a 84 c2
00 00 05 ba
00 00 14 ec
00 15 5d 35

Это все, что есть в архиве. Каких то отдельных файлов, типа словарей с шорт-именами нет


Примеры:

Приложение делает запрос файла с именем directory.txt, в коде выглядет так - Resident|directory.txt. Шифрованное имя 23 77 сb 6f
Или еще:
Resident|Audio/Release/Tonic/Tonic.fev шифрованное имя 1f e9 dc b3
Resident|Audio/Release/Tonic/Tonic.fsb шифрованное имя 1f e9 de 51

Пытался пробором через алгоритмы CRC и Флетчера, но тщетно.

Какие еще есть теории?




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 07 февраля 2020 16:14
· Личное сообщение · #6

зачем угадывать ?
реверсите софт который их использует



Ранг: 1.0 (гость), 1thx
Активность: 0.01=0.01
Статус: Участник

Создано: 07 февраля 2020 16:20
· Личное сообщение · #7

reversecode это реально? Даже если через иду прогнать? Защищенно секуромом




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 07 февраля 2020 16:24
· Личное сообщение · #8

в соседней теме автор кряков игр под секуре ромом
насколько я помню те дампы екзе что он мне давал - вполне разбираемы



Ранг: 62.5 (постоянный), 34thx
Активность: 0.280.96
Статус: Участник

Создано: 07 февраля 2020 17:13
· Личное сообщение · #9

Xenon пишет:
Resident|Audio/Release/Tonic/Tonic.fev шифрованное имя 1f e9 dc b3
Resident|Audio/Release/Tonic/Tonic.fsb шифрованное имя 1f e9 de 51

Смещение же?



Ранг: 51.8 (постоянный), 58thx
Активность: 0.03=0.03
Статус: Участник

Создано: 07 февраля 2020 18:14
· Личное сообщение · #10

Xenon пишет:
Пытался пробором через алгоритмы CRC и Флетчера, но тщетно.
Какие еще есть теории?


Похожие имена дают похожие дворды => CRC отпадает.

Здесь тот редкий случай, когда можно угадать.
Code:
  1. DWORD dwCheckSum=0;
  2. for (int n=0; n<strlen(pszName); n++) dwCheckSum=dwCheckSum*31+pszName[n];

От имён берётся часть после "|" и в нижнем регистре.

| Сообщение посчитали полезным: _MBK_, Xenon

Ранг: 62.5 (постоянный), 34thx
Активность: 0.280.96
Статус: Участник

Создано: 07 февраля 2020 18:35 · Поправил: _MBK_
· Личное сообщение · #11

Интересно, как они разруливают коллизии с переставленными буквами, например Tonic.fsb и Tonic.fbs?



Ранг: 251.3 (наставник), 81thx
Активность: 0.140.11
Статус: Участник

Создано: 07 февраля 2020 20:16
· Личное сообщение · #12

Никак.
Не будет коллизии, выше же формула.
Code:
  1. 's'*31+'b'!='b'*31+'s'




Ранг: 62.5 (постоянный), 34thx
Активность: 0.280.96
Статус: Участник

Создано: 08 февраля 2020 00:15
· Личное сообщение · #13

Сейчас вижу, конец формулы браузер поел


<< . 1 . 2 . 3 .
 eXeL@B —› Софт, инструменты —› Распаковка файлов из контейнеров SFFS
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати