Сейчас на форуме: (+7 невидимых)

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

Ранг: 4.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 07 мая 2007 16:17
· Личное сообщение · #1

К сожалению ничего путного по этой теме форуме не нашел, поэтому предлагаю обсудить.

Интересует распаковка русурсного файла SFFS. Обычно это resource0.dat.
В релизе инструментов от RELOADED под названием StarForce 3 Reverse-Engineering Tools достаточно хорошо описаны все структуры, но упущен маленький ньюанс - раскриптовка идет с использованием восьмибайтного appKey, но как он формируется - упомянуть забыли. Подозреваю что из 24 символьного основного ключа диска.
На основе приведунных исходников соорудил распаковщик, структуры с указателями индексов расшифровывает, а вот для самих файлов без этого appKey уже не обойтись.

Если кто-нибудь уже разбирался с этими материалами, буду рад совету.




Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 02 декабря 2011 20:07
· Личное сообщение · #2

Разница в том, что у меня будут все распакованные файлы, а у тебя нет. Ты пойми, что все имена файлов обычно неизвестны.



Ранг: 281.8 (наставник), 272thx
Активность: 0.250.01
Статус: Участник
Destroyer of protectors

Создано: 02 декабря 2011 20:17 · Поправил: MasterSoft
· Личное сообщение · #3

Nightshade пишет:
Разница в том, что у меня будут все распакованные файлы, а у тебя нет. Ты пойми, что все имена файлов обычно неизвестны.

я это знаю и понимаю. мне кажется ты чего-то недопонимаешь, разницы никакой вообще. если ты хукнешь нужные апи, но например ReadFile выполняется вначала игры, а второй где-то в конце при определённых условиях. и с чего ты взял что у тебя будут все распакованные файлы? я из дрова хукаю ReverseName и тут будет тоже самое. поэтому разницы ровном счётом ноль просто плюсом к этому не нужно будет в сиську за апкеем лезть.




Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 02 декабря 2011 20:56
· Личное сообщение · #4

Ты не понял. У меня не используется драйвер. И все распакуется. У тебя есть драйвер и все надо распаковывать руками. Не видешь разницы?



Ранг: 281.8 (наставник), 272thx
Активность: 0.250.01
Статус: Участник
Destroyer of protectors

Создано: 02 декабря 2011 21:25 · Поправил: MasterSoft
· Личное сообщение · #5

смотри, допустим, прикрутил ты либу к игрухе, она перехватывает нужные функи, запустил игруху, сработал хук, либа проверила есть ли файл на диске, если нет то достаёт файл из контейнра. да, способ 100%, не нужен список файлов. НО, если нужный файл в контейнере весит гиг например. его создание будет тормозить производительность игры не на милисекунды совсем, или я не прав?




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 03 декабря 2011 06:12 · Поправил: PE_Kill
· Личное сообщение · #6

Nightshade он тоже ставит хук, только не на апи, а на драйвер стара, на функцию, которая вычисляет хешь из имени, а анпакает уже либой оленевода.

MasterSoft при хуке апи можно поиметь имя файла и анпакнуть его этой же либой, зная appkey конечно, который можно зашить статически и не надо в r0 лезть. Именно это тебе пытаются объяснить.

-----
Yann Tiersen best and do not fuck




Ранг: 281.8 (наставник), 272thx
Активность: 0.250.01
Статус: Участник
Destroyer of protectors

Создано: 03 декабря 2011 06:25 · Поправил: MasterSoft
· Личное сообщение · #7

PE_Kill
чтоб достать апкей всё-равно туда придётся лезть, хоть дровом, хоть руками. дровом практичней и быстрее.
вообщем смысл понял, дров по получению апкея допилить чтобы все версии стара поддерживал, написать прожку для управления им и остановиться на этом.

в атаче дров, снифает апкей и имена файлов (всё-равно написал уже, хуле, выкидывать чтоли). Пойду доделывать предыдущий дров.

Added:
Nightshade пишет:
Хук на драйвер работает только при не снятом старе. Хук на апи работает при уже снятом старе.

это я понял и следом задал вопрос:
MasterSoft пишет:
если нужный файл в контейнере весит гиг например. его создание будет тормозить производительность игры не на милисекунды совсем, или я не прав?


c45b_03.12.2011_EXELAB.rU.tgz - SFSniffer.sys

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


Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 03 декабря 2011 08:20
· Личное сообщение · #8

Хук на драйвер работает только при не снятом старе. Хук на апи работает при уже снятом старе.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 03 декабря 2011 09:59
· Личное сообщение · #9

>> если нужный файл в контейнере весит гиг например. его создание будет тормозить производительность игры не на милисекунды совсем, или я не прав?
Это уже дело оптимизации. Извлечение файла можно засунуть в отдельный поток, с низким приоритетом. Или просто для начала отлогировать все имена файлов, а потом по списку всё разом извлечь. Это даже удобнее если работать в комьюнити.

-----
Yann Tiersen best and do not fuck




Ранг: 281.8 (наставник), 272thx
Активность: 0.250.01
Статус: Участник
Destroyer of protectors

Создано: 03 декабря 2011 10:12
· Личное сообщение · #10

PE_Kill пишет:
Или просто для начала отлогировать все имена файлов, а потом по списку всё разом извлечь.

ведь в лог файло писаться будет только при срабатывания хука, а скажем если обращение к файлу будет где-то в конце игры то как тогда всю игру проходить? поэтому думаю извлекать файло сразу лучший вариант, хоть и восможность торможения всё-таки присутствует. а ещё лучший вариант сделать эмуляцию фс стара. тогда ничо логировать и ничего анпакать не придётся.




Ранг: 241.9 (наставник), 107thx
Активность: 0.140.01
Статус: Участник

Создано: 03 декабря 2011 10:36
· Личное сообщение · #11

Кстати эмуляция фс стара реально хороший вариант. Не помню только можно ли расшифровывать файл с середины. При открытии файла можно выдавать определенный хендл(например с очень большим значением или первыми цифрами в виде константы) и писать все хендлы в массив. При обращении к такому хендлу расшифровывать кусок файла и отдавать в приложение. Тогда не будет тормозов и не нужны имена файлов.



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

Создано: 05 декабря 2011 05:50
· Личное сообщение · #12

MasterSoft пишет:
если нужный файл в контейнере весит гиг например. его создание будет тормозить производительность игры не на милисекунды совсем, или я не прав?

Тормозит на пару сек, НО только при извлечении. Дальше файл на диске и его не нужно извлекать больше.
Да и извлечение обычно между уровнями происходит, так что не критично.
PE_Kill пишет:
Извлечение файла можно засунуть в отдельный поток, с низким приоритетом.

Плохая идея. Пока файл не распакован, игру нельзя дальше пускать ибо упадет. Не забываем, мы без стара уже.
Nightshade пишет:
Кстати эмуляция фс стара реально хороший вариант.

По мне, не очень хороший. Думаю тормозить будет больше, потому что распаковывать нужно каждый раз при обращении.
А расшифровывать можно с любого места, насколько помню.




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 05 декабря 2011 06:19
· Личное сообщение · #13

Zorn пишет:
Плохая идея. Пока файл не распакован, игру нельзя дальше пускать ибо упадет.

Я имел ввиду, если стар еще есть, а так да.

-----
Yann Tiersen best and do not fuck




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

Создано: 05 декабря 2011 06:32
· Личное сообщение · #14

MasterSoft пишет:
всегда подобные вещи поражали, написал тулзу - молодец, можешь - выкладывай для общественности


Поскреб по сусекам, нашел
После снятия стара можно protect.dll из импорта не удалять.

9dbe_05.12.2011_EXELAB.rU.tgz - SFFSGen.exe

| Сообщение посчитали полезным: MasterSoft, Maximus, Gideon Vi, hlmadip, Svinovod, _ruzmaz_, Qbik, Warf, nice

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

Создано: 06 июля 2012 18:54
· Личное сообщение · #15

Zorn
Объясните как пользоваться вашей утилитой.Пытаюсь распаковать этот файл:
http://depositfiles.com/files/2uw8ji8zk
Жертва: Десперадо 3 - Схватка в Прериях (Starforce 4.70.10.0 Pro)



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

Создано: 10 июля 2012 13:49
· Личное сообщение · #16

Выложите кто-нибудь ещё раз библиотеку SFFS,а то ссылка не рабочая.
Файлы нужно извлекать из контейнера на диск или это будет делаться автоматически в памяти?



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

Создано: 12 января 2013 16:42
· Личное сообщение · #17

Видимо кончились умельцы по таким нелёгким распаковкам
Если ещё кто-то может, помогите пожалуйста распаковать файл с озвучкой защищённый старфорсом 3-ей версии.
http://narod.ru/disk/65396968001.49512b3d28852233b436e5b3c82e984a/resource1.dat.html
Игра: Silent Storm

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


Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 12 января 2013 17:25
· Личное сообщение · #18

В запросы с этим.

| Сообщение посчитали полезным: Dashingar
<< . 1 . 2 . 3 .
 eXeL@B —› Протекторы —› Распаковка Starforce SFFS ресурс файла (resource0.dat)
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати