eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС
выпущен 4 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: (+6 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

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

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

Создано: 7 мая 2007 16:17 New!
Цитата · Личное сообщение · #1

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

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

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


Ранг: 240.4 (наставник)
Статус: Участник

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

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

Ранг: 281.6 (наставник)
Статус: Участник
Destroyer of protectors

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

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

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


Ранг: 240.4 (наставник)
Статус: Участник

Создано: 2 декабря 2011 20:56 New!
Цитата · Личное сообщение · #4

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

Ранг: 281.6 (наставник)
Статус: Участник
Destroyer of protectors

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

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


Ранг: 793.4 (! !)
Статус: Участник
Шаман

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

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

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

Ранг: 281.6 (наставник)
Статус: Участник
Destroyer of protectors

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

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

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

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

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


{ Атач доступен только для участников форума } - SFSniffer.sys

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



Ранг: 240.4 (наставник)
Статус: Участник

Создано: 3 декабря 2011 08:20 New!
Цитата · Личное сообщение · #8

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


Ранг: 793.4 (! !)
Статус: Участник
Шаман

Создано: 3 декабря 2011 09:59 New!
Цитата · Личное сообщение · #9

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

Ранг: 281.6 (наставник)
Статус: Участник
Destroyer of protectors

Создано: 3 декабря 2011 10:12 New!
Цитата · Личное сообщение · #10

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

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


Ранг: 240.4 (наставник)
Статус: Участник

Создано: 3 декабря 2011 10:36 New!
Цитата · Личное сообщение · #11

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

Ранг: 53.9 (постоянный)
Статус: Участник

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

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

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

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

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


Ранг: 793.4 (! !)
Статус: Участник
Шаман

Создано: 5 декабря 2011 06:19 New!
Цитата · Личное сообщение · #13

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

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

Ранг: 53.9 (постоянный)
Статус: Участник

Создано: 5 декабря 2011 06:32 New!
Цитата · Личное сообщение · #14

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


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

{ Атач доступен только для участников форума } - SFFSGen.exe

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


Ранг: 3.7 (гость)
Статус: Участник

Создано: 6 июля 2012 18:54 New!
Цитата · Личное сообщение · #15

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

Ранг: 3.7 (гость)
Статус: Участник

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

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

Ранг: 0.5 (гость)
Статус: Участник

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

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

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



Ранг: 1994.2 (!!!!)
Статус: Модератор
retired

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

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

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

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

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS