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

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


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

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

Сейчас на форуме: yuu (+1 невидимый пользователь)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · 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 уже не обойтись.

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


Ранг: 353.0 (мудрец)
Статус: Участник
resreveR

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

Хм, 8 байт забрутить никак?

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

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

хм 8 байт, 64- бита 2^64=18446744073709551616
вчера уже ставил на подбор 9417 ключей в секунду на 4000dualCore ... итого 62115580 лет ждать, долго...

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

Создано: 8 мая 2007 19:18 · Поправил: mikeSP New!
Цитата · Личное сообщение · #4

Распаковал.
не так страшен старфорс как его рисуют.

Находим драйвер starforce vffs, который обрабатывает ресурсный файл, в каталоге винды system32\drivers
он, собака, прячется под разными именами но похожесть есть. У меня, например, он называется pf2aj4nb.sys
идой дизасмим его. находим описанные RELOADED функции
void __declspec(naked) __stdcall makeKeyBuf(void *dest, void *key, int len)
DWORD64 __declspec(naked) __stdcall decryptBuf(void *key, void *dest, DWORD lenLow, DWORD lenHigh, DWORD filePosLow, DWORD filePosHigh)
со времен 3-й версии они никак не изменились, поэтому, думаю найти их никому не составит труда.
я брал как паттерн поиска блок (по самым свежим на данный момент дровам starforce 4.70 )
inc esi
inc esi
cmp esi, 12h
для makeKeyBuf.
Теперь самое интересное - используя отладчик уровня ring0 (я использовал Syser 1.8) ищем эту дровеняку в памяти и ставим бряк на начало функии. Пускаем игруху и вуаля! Записываем 8 байт appKey. а дальше, как по нотам, используя инструкции от релоадед распаковываем файлы из ресурса.
То что мне нужно было - вытащил. Кто захочет пусть накатает генерик распаковщик. Вот правда нужно будет немного потратить времени на преобразование текстового ключа игры в appKey. Лично мне сейчас влом.
Удачи последователям!
добавлю как проще найти функции.
Ищем последоватльность байтов 'SFFS' а дальше все смотрим на примере:


PAGE:0001CBA8 cmp dword ptr [ebp-3Ch], 'SFFS'
PAGE:0001CBAF jz short loc_1CBBD
PAGE:0001CBB1 mov dword ptr [ebp-1Ch], 0E1010001h
PAGE:0001CBB8 jmp loc_1CC78
PAGE:0001CBBD ; ---------------------------------------------------------------------- -----
PAGE:0001CBBD
PAGE:0001CBBD loc_1CBBD: ; CODE XREF: sub_1CB26+89j
PAGE:0001CBBD cmp dword ptr [ebp-38h], 1
PAGE:0001CBC1 jz short loc_1CBCF
PAGE:0001CBC3 mov dword ptr [ebp-1Ch], 0E1010002h
PAGE:0001CBCA jmp loc_1CC78
PAGE:0001CBCF ; ---------------------------------------------------------------------- -----
PAGE:0001CBCF
PAGE:0001CBCF loc_1CBCF: ; CODE XREF: sub_1CB26+9Bj
PAGE:0001CBCF mov ecx, [ebp+18h]
PAGE:0001CBD2 call getAppKey
PAGE:0001CBD7 mov [ebp-24h], eax
PAGE:0001CBDA mov [ebp-20h], edx
PAGE:0001CBDD push 8 ; len
PAGE:0001CBDF lea eax, [ebp-24h]
PAGE:0001CBE2 push eax ; key
PAGE:0001CBE3 lea eax, [ebp-1084h]
PAGE:0001CBE9 push eax ; dest
PAGE:0001CBEA call makeKeyBuf

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

Создано: 10 мая 2007 09:42 New!
Цитата · Личное сообщение · #5

Мужики, тому кто забацает такой распаковщик будет огромнейший респект от всего игрового комьюнити.


Ранг: 353.0 (мудрец)
Статус: Участник
resreveR

Создано: 10 мая 2007 17:29 · Поправил: lord_Phoenix New!
Цитата · Личное сообщение · #6

Jeff пишет:
Мужики, тому кто забацает такой распаковщик будет огромнейший респект от всего игрового комьюнити.

Он про анпакер файлов, а не старфорса,так что всему игровому комьюнити надо ждать )

Ранг: 192.3 (ветеран)
Статус: Участник
stoned machine-gunner

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

Jeff пишет:
Мужики, тому кто забацает такой распаковщик будет огромнейший респект от всего игрового комьюнити.

дык а зачем вам эти ресурсы? вы их переводить решили? запаковщик есть?

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

Создано: 11 мая 2007 02:26 New!
Цитата · Личное сообщение · #8

Я знаю, но очень нужно распаковать именно то что вы все обсуждаете, а конкретно запакованные старом ресурсы. Нужно это для чего. Хитропопые русские издатели в последнее время стали активно запаковывать ресурсы игр старом для того чтобы к ним не подходили забугорные фиксы. Минимум в 70 % случаев проблема адаптации забугорного фикса для русской версии упирается в запакованые ресурсы. Поэтому полезность такого распаковщика трудно даже описать.
От себя огромнейшая просьба если есть возможность помогите распаковать ресурс от одной игры, файл весит 24 метра, могу залить куда удобно, очень нужно.... мучаюсь уже год наверно в поисках


Ранг: 353.0 (мудрец)
Статус: Участник
resreveR

Создано: 11 мая 2007 14:27 New!
Цитата · Личное сообщение · #9

gloom
omfg %) ПРИВЕТ! =)
Jeff пишет:
помогите распаковать ресурс от одной игры

Проси топикстартера =)

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

Создано: 11 мая 2007 19:35 New!
Цитата · Личное сообщение · #10

Jeff
Насколько я понимаю процесс, то выкладыванием одного resource0.dat не обойтись, потребуются ехе + dll стара, плюс рабочий образ (мини-образ). Все это понадобится для нахождения вышеуказанного appKey.

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

Создано: 11 мая 2007 20:49 New!
Цитата · Личное сообщение · #11

Выложу все что скажите, если понадобиться

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

Создано: 12 мая 2007 13:29 · Поправил: mikeSP New!
Цитата · Личное сообщение · #12

Jeff что за игра? Для распаковки нужна целиком. Если случай достойный можно и распаковать.

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

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

Создано: 12 мая 2007 14:56 · Поправил: Jeff New!
Цитата · Личное сообщение · #13

Игра The Suffering 2. Умельцы из НД что придумали, они запаковали 7 уровень, забугорный фикс запускает ее но играть можно только до 7 уровня и усе. Список файлов могу дать который там должен быть в этом архиве. И ключ могу дать Старовский. Вообще если бы ты смог помочь как-то автоматизировать этот процесс хоть немного это было бы просто супер, в этом щас очень многие нуждаються. Потому как паковка старом делает любителям русских игр большую .
Могу и целиком залить куда-то если инет тебе позволяет. Она весит 1.76 кажеться.

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

Создано: 12 мая 2007 15:21 New!
Цитата · Личное сообщение · #14

Там проблемка немного в другом. Этот самый 7-й уровень есть распакованный, если переписать файлы с английской версиии, то все будет работать, просто озвучка и тексты на этом уровне станут английскими. Так вот распаковка требуется не для всего 7-го уровня, а для некоторых файлов содержащих русский текст и озвучку.

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

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

Yizahi
ну можно и так, опять же если можно отдельно некоторые файлы выдрать тоже хорошо. Мгу написать имена этих файлов.

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

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

Возникает вопрос, как ловить appKey не имея оригинального диска?
Отладчик уровня ring0 и SPTD драйвер Даемон Тулза не совместимы. А на VMWare старфорц работать не будет

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

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

Как там еще надежда на распаковку есть?

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

Создано: 18 мая 2007 00:25 New!
Цитата · Личное сообщение · #18

Думаю в близжайшие дни появиться

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

Создано: 18 мая 2007 09:13 New!
Цитата · Личное сообщение · #19

Yizahi пишет:
Отладчик уровня ring0 и SPTD драйвер Даемон Тулза не совместимы


Совместимы, и эта совместимость делается ручками за пару минут, не отключая демон-тулз. Это просто примитивная ринг-0 антиотладка, чтобы скрыть работу демона от посторонних глаз.


Ранг: 353.0 (мудрец)
Статус: Участник
resreveR

Создано: 18 мая 2007 09:21 New!
Цитата · Личное сообщение · #20

Error_Log пишет:
Совместимы, и эта совместимость делается ручками за пару минут, не отключая демон-тулз. Это просто примитивная ринг-0 антиотладка, чтобы скрыть работу демона от посторонних глаз.

Уже обтиралось и здесь и на Вудмане.

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

Создано: 21 мая 2007 13:00 New!
Цитата · Личное сообщение · #21

C Suffering 2 уже вопрос решен в принципе. Какой-то умелец распаковал. Но если у кого есть желание, осталась куча не распакованых игр, которые ждут хацкера.


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

Создано: 19 июня 2007 18:03 New!
Цитата · Личное сообщение · #22

Кто нить знает как можно потрассировать дрова старика (sfvfs02.sys), а то посмотрел я appkey и дальше
BSOD, хочется потрассировать (у меня проблемы с переносом asm кода из драйвера в код на Delphi)

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

Создано: 19 июня 2007 18:14 New!
Цитата · Личное сообщение · #23

Ща уже sfvfs03.sys есть (версия 5.0)


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

Создано: 19 июня 2007 18:18 New!
Цитата · Личное сообщение · #24

какая разница если я напишу для 2 версии то для 3 переписать недолго

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

Создано: 19 июня 2007 18:27 New!
Цитата · Личное сообщение · #25

sfvfs02.sys - две версии (версия 4.7)
(78 712 bytes)
(82 296 bytes)
какая именно?

p.s. Может и больше их

Если реверсить то нужно общую топалогию узнать (она есть ?)


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

Создано: 19 июня 2007 18:57 New!
Цитата · Личное сообщение · #26

у меня 67 747 суть не в этом код функций распаковки не менялся уже очень долго
если написать для одной будет работать и на другой
а общую топологию давно все знают


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

Создано: 19 июня 2007 19:04 · Поправил: Nightshade New!
Цитата · Личное сообщение · #27

(delated)

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

Создано: 19 июня 2007 19:11 New!
Цитата · Личное сообщение · #28

тогда как dll узнает и включает драйвер ?
Я чето непоймал (может рипает полностью иодевайс)
Хотя название драйвера и его вызов есть в длл но чето брейк там несрабатывает
и вызывается инстал драйвера

P.S. непинайте (ковырялся тока 2 часа) хотя до VM добрался


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

Создано: 19 июня 2007 19:23 New!
Цитата · Личное сообщение · #29

вообще то dll проверяет crc своих файлов и в случае чего инсталит их заново

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

Создано: 19 июня 2007 19:28 New!
Цитата · Личное сообщение · #30

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

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

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