Сейчас на форуме: (+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 уже не обойтись.

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




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

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

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

-----
Тут не могла быть ваша реклама




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

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

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



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

Создано: 08 мая 2007 19:18 · Поправил: mikeSP
· Личное сообщение · #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 (гость)
Активность: 0=0
Статус: Участник

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

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




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

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

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

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

-----
Тут не могла быть ваша реклама




Ранг: 192.3 (ветеран), 18thx
Активность: 0.120
Статус: Участник
stoned machine-gunner

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

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

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

-----
once you have tried it, you will never want anything else




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

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

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




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

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

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

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

-----
Тут не могла быть ваша реклама




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

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

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



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

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

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



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

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

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

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



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

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

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



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

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

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



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

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

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



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

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

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



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

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

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



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

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

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



Ранг: 228.7 (наставник), 2thx
Активность: 0.120
Статус: Участник
malware research

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

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


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

-----
Research is my purpose





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

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

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

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

-----
Тут не могла быть ваша реклама




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

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

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




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

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

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



Ранг: 162.4 (ветеран), 11thx
Активность: 0.060
Статус: Участник

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

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




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

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

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



Ранг: 162.4 (ветеран), 11thx
Активность: 0.060
Статус: Участник

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

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

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

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




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

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

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




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

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

(delated)



Ранг: 162.4 (ветеран), 11thx
Активность: 0.060
Статус: Участник

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

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

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




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

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

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



Ранг: 162.4 (ветеран), 11thx
Активность: 0.060
Статус: Участник

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

А тогда как они опгрейдют драйвера?
Так любая старая игруха их потрет.


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