Сейчас на форуме: (+7 невидимых) |
![]() |
eXeL@B —› Протекторы —› Распаковка Starforce SFFS ресурс файла (resource0.dat) |
. 1 . 2 . 3 . >> |
Посл.ответ | Сообщение |
|
Создано: 07 мая 2007 16:17 · Личное сообщение · #1 К сожалению ничего путного по этой теме форуме не нашел, поэтому предлагаю обсудить. Интересует распаковка русурсного файла SFFS. Обычно это resource0.dat. В релизе инструментов от RELOADED под названием StarForce 3 Reverse-Engineering Tools достаточно хорошо описаны все структуры, но упущен маленький ньюанс - раскриптовка идет с использованием восьмибайтного appKey, но как он формируется - упомянуть забыли. Подозреваю что из 24 символьного основного ключа диска. На основе приведунных исходников соорудил распаковщик, структуры с указателями индексов расшифровывает, а вот для самих файлов без этого appKey уже не обойтись. Если кто-нибудь уже разбирался с этими материалами, буду рад совету. ![]() |
|
Создано: 07 мая 2007 16:32 · Личное сообщение · #2 |
|
Создано: 07 мая 2007 16:41 · Личное сообщение · #3 |
|
Создано: 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 ![]() |
|
Создано: 10 мая 2007 09:42 · Личное сообщение · #5 |
|
Создано: 10 мая 2007 17:29 · Поправил: lord_Phoenix · Личное сообщение · #6 |
|
Создано: 10 мая 2007 23:12 · Личное сообщение · #7 |
|
Создано: 11 мая 2007 02:26 · Личное сообщение · #8 Я знаю, но очень нужно распаковать именно то что вы все обсуждаете, а конкретно запакованные старом ресурсы. Нужно это для чего. Хитропопые русские издатели в последнее время стали активно запаковывать ресурсы игр старом для того чтобы к ним не подходили забугорные фиксы. Минимум в 70 % случаев проблема адаптации забугорного фикса для русской версии упирается в запакованые ресурсы. Поэтому полезность такого распаковщика трудно даже описать. От себя огромнейшая просьба если есть возможность помогите распаковать ресурс от одной игры, файл весит 24 метра, могу залить куда удобно, очень нужно.... мучаюсь уже год наверно в поисках ![]() ![]() |
|
Создано: 11 мая 2007 14:27 · Личное сообщение · #9 |
|
Создано: 11 мая 2007 19:35 · Личное сообщение · #10 |
|
Создано: 11 мая 2007 20:49 · Личное сообщение · #11 |
|
Создано: 12 мая 2007 13:29 · Поправил: mikeSP · Личное сообщение · #12 Jeff что за игра? Для распаковки нужна целиком. Если случай достойный можно и распаковать. А вобще, универсальный унпакер вполне возможен, но для его успешной работы нужны определенные условия - как то имена файлов которые лежат внутри старфорс ресурса. Так что все равно работа над каждой распаковкой будет в большей степени ручная. ![]() |
|
Создано: 12 мая 2007 14:56 · Поправил: Jeff · Личное сообщение · #13 Игра The Suffering 2. Умельцы из НД что придумали, они запаковали 7 уровень, забугорный фикс запускает ее но играть можно только до 7 уровня и усе. Список файлов могу дать который там должен быть в этом архиве. И ключ могу дать Старовский. Вообще если бы ты смог помочь как-то автоматизировать этот процесс хоть немного это было бы просто супер, в этом щас очень многие нуждаються. Потому как паковка старом делает любителям русских игр большую ![]() Могу и целиком залить куда-то если инет тебе позволяет. Она весит 1.76 кажеться. ![]() |
|
Создано: 12 мая 2007 15:21 · Личное сообщение · #14 Там проблемка немного в другом. Этот самый 7-й уровень есть распакованный, если переписать файлы с английской версиии, то все будет работать, просто озвучка и тексты на этом уровне станут английскими. Так вот распаковка требуется не для всего 7-го уровня, а для некоторых файлов содержащих русский текст и озвучку. ![]() |
|
Создано: 12 мая 2007 18:16 · Личное сообщение · #15 |
|
Создано: 13 мая 2007 15:22 · Личное сообщение · #16 |
|
Создано: 17 мая 2007 22:32 · Личное сообщение · #17 |
|
Создано: 18 мая 2007 00:25 · Личное сообщение · #18 |
|
Создано: 18 мая 2007 09:13 · Личное сообщение · #19 |
|
Создано: 18 мая 2007 09:21 · Личное сообщение · #20 |
|
Создано: 21 мая 2007 13:00 · Личное сообщение · #21 |
|
Создано: 19 июня 2007 18:03 · Личное сообщение · #22 |
|
Создано: 19 июня 2007 18:14 · Личное сообщение · #23 |
|
Создано: 19 июня 2007 18:18 · Личное сообщение · #24 |
|
Создано: 19 июня 2007 18:27 · Личное сообщение · #25 |
|
Создано: 19 июня 2007 18:57 · Личное сообщение · #26 |
|
Создано: 19 июня 2007 19:04 · Поправил: Nightshade · Личное сообщение · #27 |
|
Создано: 19 июня 2007 19:11 · Личное сообщение · #28 |
|
Создано: 19 июня 2007 19:23 · Личное сообщение · #29 |
|
Создано: 19 июня 2007 19:28 · Личное сообщение · #30 |
. 1 . 2 . 3 . >> |
![]() |
eXeL@B —› Протекторы —› Распаковка Starforce SFFS ресурс файла (resource0.dat) |
Эта тема закрыта. Ответы больше не принимаются. |