Сейчас на форуме: (+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 уже не обойтись. Если кто-нибудь уже разбирался с этими материалами, буду рад совету. |
|
Создано: 02 декабря 2011 20:07 · Личное сообщение · #2 |
Ранг: 281.8 (наставник), 272thx Активность: 0.25↘0.01 Статус: Участник Destroyer of protectors |
Создано: 02 декабря 2011 20:17 · Поправил: MasterSoft · Личное сообщение · #3 Nightshade пишет: Разница в том, что у меня будут все распакованные файлы, а у тебя нет. Ты пойми, что все имена файлов обычно неизвестны. я это знаю и понимаю. мне кажется ты чего-то недопонимаешь, разницы никакой вообще. если ты хукнешь нужные апи, но например ReadFile выполняется вначала игры, а второй где-то в конце при определённых условиях. и с чего ты взял что у тебя будут все распакованные файлы? я из дрова хукаю ReverseName и тут будет тоже самое. поэтому разницы ровном счётом ноль просто плюсом к этому не нужно будет в сиську за апкеем лезть. |
|
Создано: 02 декабря 2011 20:56 · Личное сообщение · #4 |
Ранг: 281.8 (наставник), 272thx Активность: 0.25↘0.01 Статус: Участник Destroyer of protectors |
Создано: 02 декабря 2011 21:25 · Поправил: MasterSoft · Личное сообщение · #5 смотри, допустим, прикрутил ты либу к игрухе, она перехватывает нужные функи, запустил игруху, сработал хук, либа проверила есть ли файл на диске, если нет то достаёт файл из контейнра. да, способ 100%, не нужен список файлов. НО, если нужный файл в контейнере весит гиг например. его создание будет тормозить производительность игры не на милисекунды совсем, или я не прав? |
|
Создано: 03 декабря 2011 06:12 · Поправил: PE_Kill · Личное сообщение · #6 Nightshade он тоже ставит хук, только не на апи, а на драйвер стара, на функцию, которая вычисляет хешь из имени, а анпакает уже либой оленевода. MasterSoft при хуке апи можно поиметь имя файла и анпакнуть его этой же либой, зная appkey конечно, который можно зашить статически и не надо в r0 лезть. Именно это тебе пытаются объяснить. ----- Yann Tiersen best and do not fuck |
Ранг: 281.8 (наставник), 272thx Активность: 0.25↘0.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 |
|
Создано: 03 декабря 2011 08:20 · Личное сообщение · #8 |
|
Создано: 03 декабря 2011 09:59 · Личное сообщение · #9 >> если нужный файл в контейнере весит гиг например. его создание будет тормозить производительность игры не на милисекунды совсем, или я не прав? Это уже дело оптимизации. Извлечение файла можно засунуть в отдельный поток, с низким приоритетом. Или просто для начала отлогировать все имена файлов, а потом по списку всё разом извлечь. Это даже удобнее если работать в комьюнити. ----- Yann Tiersen best and do not fuck |
Ранг: 281.8 (наставник), 272thx Активность: 0.25↘0.01 Статус: Участник Destroyer of protectors |
Создано: 03 декабря 2011 10:12 · Личное сообщение · #10 PE_Kill пишет: Или просто для начала отлогировать все имена файлов, а потом по списку всё разом извлечь. ведь в лог файло писаться будет только при срабатывания хука, а скажем если обращение к файлу будет где-то в конце игры то как тогда всю игру проходить? поэтому думаю извлекать файло сразу лучший вариант, хоть и восможность торможения всё-таки присутствует. а ещё лучший вариант сделать эмуляцию фс стара. тогда ничо логировать и ничего анпакать не придётся. |
|
Создано: 03 декабря 2011 10:36 · Личное сообщение · #11 Кстати эмуляция фс стара реально хороший вариант. Не помню только можно ли расшифровывать файл с середины. При открытии файла можно выдавать определенный хендл(например с очень большим значением или первыми цифрами в виде константы) и писать все хендлы в массив. При обращении к такому хендлу расшифровывать кусок файла и отдавать в приложение. Тогда не будет тормозов и не нужны имена файлов. |
|
Создано: 05 декабря 2011 05:50 · Личное сообщение · #12 MasterSoft пишет: если нужный файл в контейнере весит гиг например. его создание будет тормозить производительность игры не на милисекунды совсем, или я не прав? Тормозит на пару сек, НО только при извлечении. Дальше файл на диске и его не нужно извлекать больше. Да и извлечение обычно между уровнями происходит, так что не критично. PE_Kill пишет: Извлечение файла можно засунуть в отдельный поток, с низким приоритетом. Плохая идея. Пока файл не распакован, игру нельзя дальше пускать ибо упадет. Не забываем, мы без стара уже. Nightshade пишет: Кстати эмуляция фс стара реально хороший вариант. По мне, не очень хороший. Думаю тормозить будет больше, потому что распаковывать нужно каждый раз при обращении. А расшифровывать можно с любого места, насколько помню. |
|
Создано: 05 декабря 2011 06:19 · Личное сообщение · #13 |
|
Создано: 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 |
|
Создано: 06 июля 2012 18:54 · Личное сообщение · #15 Zorn Объясните как пользоваться вашей утилитой.Пытаюсь распаковать этот файл: Жертва: Десперадо 3 - Схватка в Прериях (Starforce 4.70.10.0 Pro) |
|
Создано: 10 июля 2012 13:49 · Личное сообщение · #16 |
|
Создано: 12 января 2013 16:42 · Личное сообщение · #17 Видимо кончились умельцы по таким нелёгким распаковкам Если ещё кто-то может, помогите пожалуйста распаковать файл с озвучкой защищённый старфорсом 3-ей версии. Игра: Silent Storm | Сообщение посчитали полезным: Andrex |
|
Создано: 12 января 2013 17:25 · Личное сообщение · #18 |
<< . 1 . 2 . 3 . |
eXeL@B —› Протекторы —› Распаковка Starforce SFFS ресурс файла (resource0.dat) |
Эта тема закрыта. Ответы больше не принимаются. |