Перейти к содержимому


Внимание!

Это форум по извлечению ресурсов из игр: музыки, звуков, текстур, 3D-моделей...
Перед поиском ответов на форуме, рекомендуется ознакомиться с основным сайтом EXTRACTOR.ru!
[ Прочтите внимательно - правила создания тем и ответа в них ]
Все вопросы по запуску игр задавайте в другом месте: Установка и запуск игр.


Фотография

Exigo, снова


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 21

#1 bak

bak

    Младший сержант

  • Пользователи
  • 12 сообщений

Отправлено 16 February 2006 - 05:38

Вопрос к Ангелу, сделавшему ork extractor. Прога видит в архиве за 16.000 файлов но распаковывает только поименно.

Мне нужно извлечь файл, не зная его имени.

Дабы сделать No-CD на версию от Нового Диска...

Очень прошу помочь.

#2 angel_death

angel_death

    Сержант

  • Пользователи
  • 24 сообщений

Отправлено 16 February 2006 - 07:55

без имени файл достать нельзя
он зашифрован при помощи имени

#3 bak

bak

    Младший сержант

  • Пользователи
  • 12 сообщений

Отправлено 16 February 2006 - 12:41

Хм. А лист имен нельзя прочитать из архива? Я читал весь топик про Эксиго старый... может недопонял?

В .exe игры есть область RCData. Там хранится весь лист имен файлов. Может его стоит поковырять? Это отдельная табличка...

Просто трабла такая. Вышел Эксиго от Нового Диска.

Чтобы не подходили забугорные No-CD, они удалили из игры fesl.dll, зашив его видимо в protect.dll или еще что-то. Взял fesl от 1.4 англ. версии.

Игра запускается без звука и... на инглише.

Вывод: в RCData лежит список всех файлов. На одном из форумов удалось найти путь до файла с английским переводом:

localization\master\english (united states) {0409}.xml

Вот оттуда и берет согласно своей табличке англ. текст англ. экзешник.

Огромная просьба к программистам. Я могу прислать две штучки - испоганенный старфорсом русский .ехе, в котором правда таблица RCData не загажена и извлекается на ура, и английский взломанный .ехе + недостающий Fesl.dll

Просьба: пересадить табличку RCData из русского .ехе в английский и поправить в английском .ехе адрес точки входа в таблицу там, где .ехе этот адресок хранит. Просто после мануальной пересадки .ехе начал орать 'ресурс sg^&#%(YG*^T не найден', т.к. изменился адрес таблицы, ее размер и т.п.

Кто поправит точку входа - тому памятник из золота biggrin.gif

Попытается кто? huh.gif



#4 angel_death

angel_death

    Сержант

  • Пользователи
  • 24 сообщений

Отправлено 16 February 2006 - 14:24

в архиве имена не хранятся
а только их хеши
может в архив и запакован файл со всеми именами как в mpq (listfile), но его имя неизвестно и я сомневаюсь что он там есть.
если есть сисок файлов то из можно извлечь с помощью ork extractor.
насчет RCData: если это действительно RCData нужен просто грамотный редактор ресурсов.Но насколько я помню в exe полные имена практически не присутствовали, а составлялись из частей. И часть имен хранилось в файлах из ork архива.

#5 bak

bak

    Младший сержант

  • Пользователи
  • 12 сообщений

Отправлено 16 February 2006 - 14:36

Дарагой, очень надеюсь на твой программерский талант. Ты можешь по-христиански пересадить RCData из одного .ехе в другой? Я юзал PE Explorer 1.98 может накосячил чего... но игра ругается... там точно где-то точка входа неправильно оказывается прописанной. Можешь попытаться? Движок-то у игры один, а адреса к ресурсам разные в разных языковых версиях. Другое дело что эти ресурсы перечислено красиво в отдельной табличке, которую нужно перенести аккуратно.

#6 angel_death

angel_death

    Сержант

  • Пользователи
  • 24 сообщений

Отправлено 16 February 2006 - 14:47

руками exe пересобирать это сложновато, а прогу которая нормально ресурсы редактирет ты и сам можешь искать.
но я сомневаюсь что дело в неправильном изменении ресурсов,
просто структура изменилась. и просты копированием какойто таблицы ничего не сделаешь.
я бы сначала копал в сторону переключения языка, игра вроде поддерживает мулти язычность.
Хотя судя по protect.dll там старфорс, и если в игру пристуствует файл (обычно называется как exe с раширением dat), начинающийся с SFFS, то русские ресурсы могут быть именно там, и игра получает доступ к ни через старфорс. Соответственно английский exe их не увидит.

#7 bak

bak

    Младший сержант

  • Пользователи
  • 12 сообщений

Отправлено 16 February 2006 - 15:03

Доступ ко всем ресурсам осуществляется через fesl.dll, в русской версии зашитый в protect.dll. Английский fesl.dll прекрасно запускался с русским ПИРАТСКИМ .ехе, который мне может перепадет на днях. Как пираты вставили русский в игру, неясно, но fesl ресурсы видел.

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

Давай куда-нибудь выложу:

1. Старфорсенный .ехе
2. Пиратский.
3. Англ. взломанный.
4. Фесл

Очень помощь нужна, игра отличная, старфорс эмулируется крайне туго...

P.S.
Мультиязычность есть. В пиратке вместо немецкого языка был вшит русский. В русском .ехе файле слово language в хекс-редакторе было заменено на ranguage. Запускалась русская взамен немецкой. Меняешь на language - запускается английская. Вопрос в том что английский взломанный .ехе непонятно как на русский переключить. Если переключить - все ресурсы найдутся...

#8 bak

bak

    Младший сержант

  • Пользователи
  • 12 сообщений

Отправлено 16 February 2006 - 17:31

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

#9 bak

bak

    Младший сержант

  • Пользователи
  • 12 сообщений

Отправлено 16 February 2006 - 17:39

Продолжаем вскрытие. Внутри экзешника игры версии 1.0 вообще нет отдельной секции RCData... это вывод номер один. Вывод номер два: предположительно шифрованная алгоритмом ZIP таблица ресурсов внутри экзешника зовется game.orcи может быть выдрана через это имя...

#10 angel_death

angel_death

    Сержант

  • Пользователи
  • 24 сообщений

Отправлено 17 February 2006 - 10:50

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

#11 bak

bak

    Младший сержант

  • Пользователи
  • 12 сообщений

Отправлено 17 February 2006 - 17:27

Какой архив старфорса? от старфорса там protect.dll, в который зашит fesl.dll, да сам .ехе. Сколько на свете игр со старфорсом, ни одной не встречал, где русский язык был бы среди ресурсов старфорса... Наоборот по жизни - вставляешь англ. No-CD и все пашет на русском великолепно!

Обрати внимание на то как называется файл с английским и немецким языком:

localization\master\english (united states) {0409}.xml
localization\master\german (germany) {0407}.xml

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

Очень похоже, что если все же что-то сменить в .ехе на русский язык, то нужный ресурс сам найдется и все запашет...

P.S. Хм. задал внутри английского .ехе поиск по слову russian... нашел целый блок открытого текста типа english (united states) и german (germany), русский среди них проходит под именем просто russian. Т.е. переключатель языков видимо в действительности есть... вопрос как его переключить...

#12 bak

bak

    Младший сержант

  • Пользователи
  • 12 сообщений

Отправлено 18 February 2006 - 04:21

Никаких архивов старфорса, исходя из того определения, которое им выше в топике дал Ангел, в игре не обнаружилось...

#13 bak

bak

    Младший сержант

  • Пользователи
  • 12 сообщений

Отправлено 18 February 2006 - 05:14

Удалось извлечь русскую локализацию из data.ork

Ангел, можешь доработать свою прогу чтобы она умела удалять из ork файлы и добавлять обновленные версии, если известны полные пути и имена внутри архива?

Просто родилась тупая идея запихать в data.ork русский текст вместо английского под именами англ. локализации biggrin.gif И не мучать .ехе biggrin.gif

Отредактировано автором позднее: я раздобыл коцаный пиратский .exe версии 1.0, который, в случае если внутри data.ork не находится какого-то файла, выдает в корень игры filelist.log со всеми путями и именами файлов, находящимися внутри data.ork после битого файла. 2 Angel: можешь прикончить/испортить первый файл в data.ork? тогда по идее в filelist.log выложится все содержимое игры...

#14 bak

bak

    Младший сержант

  • Пользователи
  • 12 сообщений

Отправлено 18 February 2006 - 14:22

2 Angel_Death^ см. приват, все что нашел - выложил

#15 Serg_R

Serg_R

    Старший сержант

  • Пользователи
  • 43 сообщений

Отправлено 23 February 2006 - 09:34

2Angel_Death - пожалуйста сделай паковщик - он очень нужен чтобы сделать русификатор и noCD ))

#16 bak

bak

    Младший сержант

  • Пользователи
  • 12 сообщений

Отправлено 23 February 2006 - 13:03

Кто-нибудь, спасайте! Вот вся длинная история:

Господа! Вы - моя последняя надежда. Гибнет четверо суток напряженного труда и надежды многих геймеров. Решил сюда написать, т.к. мой вопрос напрямую имеет отношение к взлому защиты. В данном случае - на злосчастной русской лицензии всенародно любимой стратегии Armies of Exigo.

Моя задача - сделать русификатор на английскую Armies of Exigo и отвязку от диска на русскую лицензию от "Нового Диска", оба вопроса упираются в одну и ту же заподлянку.

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

Как все начиналось (преамбула)

Имелся крек на английскую Armies of Exigo версии 1.4. Крек состоял из вылеченных Exigo.exe и Editor.exe. Работать на русской лицензии отказался - вылезала ошибка fesl.dll. Господа из "Нового Диска" зашили эту библиотеку внутрь protect.dll. Решение было найдено незамедлительно: fesl.dll был взят от английской игры версии 1.4, длл-ка следовательно идеально подошла к взломанному английскому .ехе. Запустил. Удивился - игра запустилась на английском и без звука. Немного поковырялся с пираткой и выяснил, что в версии от Нового Диска отсутвтует пара важных ключей реестра - Language и Locale, хотя в пиратке они присутствовали. Спасибо angel_death, который открыл мне глаза на этот факт. Добавил эти ключи. Открыл потом в редакторе взломанный Exigo.exe и принялся долго и упорно читать его, как газету. Где-то на половине чтения наткнулся на открытый текст вида english {409}, german {407}. Ба! Да игра похоже использует Microsoft XML! Стал читать .ехе дальше и нашел ключи локализации: en_US, en_UK и все в том же духе. Нашел и ru-RU. Пошел в реестр, изменил Language с 409 на 419 (русский в классификации XML), Locale с en_US на ru-RU. Запустил игру.

О чудо, оно запустилось без диска - на русском и со всеми звуками. Только вместо буковок - квадратики. Первая мысль была: английский .exe накосячил с выбором кодировки. Пошел в .exe, нашел там ссылки на некие внутриигровые ресурсы типа fonts_unicode_eng.xml, fonts_unicode_eur.xml, fonts_unicode_hpc.xml. Они оказались зашитыми в игровой архив data.ork. Поменял внутри .ехе "fonts_unicode_eng.xml" на "fonts_unicode_hpc.xml" (в стандарт HPC имхо и кириллица включена), запустил игру. Длина .ехе не изменилась, все заработало. Получил те же квадратики, только уже перечеркнутые. А именно взятые из другого шрифта. Поменял внутри .ехе на "fonts_unicode_eur.xml". Снова квадратики, только опять же из другого шрифта

В душу стали закрадываться смутные подозрения. XML использует кодировку Unicode для ВСЕХ языков, стало быть неправильно выбрать кодировку .ехе не мог, т.к. она одна-единственная. Вышеперечисленные .xml файлы похоже просто задают какие шрифты грузятся игрой для разных языков. И у всех этих шрифтов, похоже, отсутствует кириллица, - подумал я.

Родилась идея: расковырять data.ork, найти там имя кириллической таблицы от Нового Диска и засунуть его в .ехе. Если таблица самостоятельно задает пути и спецификации шрифтов, то все должно заработать.

Нашел описание формата .ork и ахнул.

Файлы формата .ork представляют собой склеенные между собой цепочки файлов, упакованных по алгоритму ZIP. Все файлы зашифрованы, в качестве пароля на каждый файл использовано его имя + путь до этого файла внутри игрового архива. Например файл внутри игрового архива defaultprofile\config.con зашифрован по паролю "defaultprofile\config.con". При запуске игры она в оперативной памяти воссоздает всю виртуальную структуру папок игрового архива и лежащих в нём файлов, а внутри самого .ork они хранятся как сельди в бочке

Да, забыл совсем сказать - имена файлов не хранятся в .ork, откуда их берёт .exe игры - науке неизвестно. Вместо имен в .ork лежат md5 хеши файлов. Вывод: не зная пути до файла и его имени внутри игрового архива, невозможно этот файл извлечь!

На помощь пришла все та же пиратка игры. Ее битый .ехе версии 1.0, заботливо мной сохраненный в банке с рассолом, имел странное свойство вести в корневой директории игры лог всех файлов, которые .ехе достает из архива. Уж не знаю что пираты сделали с .ехе, но поиграв с полчаса в английскую версию без звука, я получил на руки лист на свыше чем 3000 имен. Включая имена и пути до шрифтов. (Кстати, любые другие .ехе остальных версий не ведут никаких логов)

Осталось теперь их извлечь. Поискал в интернете. Нашел ork extractor, написанный человеком angel_death. Автор проги проделал точно такой же умственный путь что и я. Экстрактор работал по принципу - скармливаешь ему файл-лист, он пытается это вытянуть из архива.

Ну я и скормил экстрактору свой файл-лист, созданный пираткой. Экстрактор все прекрасно распаковал. Первым делом я взялся за шрифты - открыл их все поочередно в программе font expert. Как и следовало ожидать, в регистре cyrillic у этих шрифтов стояли одни квадратики. Все стало ясно.

Заглянул и в пресловутые fonts_unicode_***.xml - там действительно лежали ссылки на эти фонты. Русской таблицы я не получил, т.к. имя ее неизвестно и английский .ехе ее не вызывает, потому имя это не уходит в лог. Пробовал вслепую по аналогии копнуть в том же месте на предмет fonts_unicode_rus.xml, fonts_unicode_cyr.xml. Ничего не получил. Нет имени - нет файла Ох уж это шифрование.

Игра изначально сделана с поддержкой множества языков (теоретически, если ее на эти языки переведут) Тексты и звуки хранятся на каждый язык отдельно, какую локализацию грузить - .ехе смотрит по ключам реестра, помимо того у .ехе есть свой default language, который по большому счету ничего не решает (игра грузит default language если в реестре не найдены нужные ключи, вот и все).

А вот таблицы шрифтов работают хитрее. При запуске игра смотрит к какой языковой группе принадлежит запускаемый язык - eng, eur, hpc и грузит соответствующую таблицу шрифтов. А в таблице - ссылки на шрифты, ЛИШЁННЫЕ кириллицы. И игра покорно грузит русский текст, русский звук и русскую раскладку, вместо которой в шрифтах - квадраты. Предполагалось, что при переводе игры на какой-либо язык локализаторы изменят/добавят шрифты и отредактируют нужные таблицы. Изначально шрифты держат только английский, французский, немецкий, итальянский, чешский, польский и еще пару языков.

Родился вопрос: а как же оригинальный .ехе запускает игру на русском? Скачал из интернета мини-образ лицензионного диска, поставил Daemon Tools 4.03, отключил сидиром. Через два часа мучительных ковыряний удалось сэмулировать новомодный StarForce 3.7.10. Глянул в игру. Ужаснулся. Шрифт вместо трех грузился только один и не слишком похожий на шрифты оригинала.

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

Что мне оставалось делать? На русский .ехе и русскую таблицу я решительно плюнул. Родилась идея - если английский шрифт при запуске русской версии работает исправно - латиница-то отображается верно - то может просто заменить этот шрифт на аналог, где в регистре cyrillic есть русские буквы? Кодировка-то - юникод, загрузиться должны исправно. Ведь английский .ехе исправно кушает ключи 0x419 и ru-RU и по идее грузит буковки именно из пустого регистра cyrillic.

Полазал в инете. Нашел похожий шрифт ttf с полноценной кириллицей. Полез в реестр, там был ключ DATA с путем до несуществующей папки Data. "Оверрайд," - подумал я, - "Вот сейчас положу свой шрифт в оверрайд и все запашет".

В следующие 2 часа я занимался поклажей разных шрифтов, измененных файлов в папку DATA с сохранением их внутренних путей, т.к. собственно вместе с путями они и были успешно извлечены; это ни к чему не привело. Игра не реагирует принципиально ни на какую информацию, лежащую за пределами data.ork. Зачем в реестре ключ DATA, я так и не понял.

Далее я вспомнил, что пиратка версии 1.0 успешно патчится, а лицензия от Нового Диска уже вышла в последней версии 1.4. И в пропатченной пиратке есть файлики data1.ork и data2.ork. В версии Нового Диска их нет, видимо игра была собрана одним куском т.к. патчей уже не требовала. "Вот он, оверрайд!" - подумал я, - "Взломанный английский .ехе 1.4 наверняка тоже попытается из них брать данные, осталось только запихать в data3.ork нужный шрифт!"

Ну прежде всего я решил доказать на практике, что data1.ork и data2.ork - это оверрайд. Положил их в отдельную папку, и прогнал через ork extractor. Data1.ork оказался пустышкой длиной в несколько десятков байт, которая состояла из заголовка архива и открытого текста "good luck!". Data2.ork успешно распаковалась - все ее содержимое, 475 файлов, уже засветилось в моем файл-листе. Поглядел на распакованное - действительно оверрайд, все имена, естественно, совпадают с уже имеющимися в Data.ork.

Так что единственный способ создать No-CD на игру от Нового Диска - запаковать шрифт с кириллицей в ork под старым именем английского шрифта. Стало быть нужен запаковщик, созданный по аналогии с распаковщиком. Я сам не программист, а написать прогу позарез надо. О чем я вас всех слёзно прошу. Автор ork экстрактора отказался чем-либо заниматься по причине "очень занят". Может быть, кто-то из вас поможет. Буду ОЧЕНЬ признателен. Нужен просто запаковщик в .ork, всю остальную канитель с .dll, .ехе и прочим я беру на себя т.к. полностью разобрался и никого не хочу утруждать вторичной ненужной работой.

Со своей стороны предоставляю следующие материалы:

Data1.ork - маленький файл от патча, содержит только заголовок и слова Good Luck! Его исследование и сравнение с Data2.ork помогут вычленить специфические заголовок и концовку файлов .ork

Data2.ork - большой (28 Мб) файл от патча, в нем лежит 475 файлов, все имена которых известны.

Filelist.log - лог использования файлов от пиратки 1.0. Прошу заметить, там только 3000 имен, которые .ехе затронул за час игры, а в оригинальном data.ork их свыше 16.000 но это, в сущности, неважно.

Ork extractor.exe - ему скармливается Filelist.log, по которому прочесывается data2.ork и в результате все его содержимое выходит наружу Синтаксис: ork_extractor.exe data2.ork filelist.log из корня где все это лежит.

==================================================
Всё это выложено по адресу: http://www.sendspace.com/file/mwj0xt
==================================================

Основной признак того, что созданный вами запаковщик работает исправно - тот факт, что распаковщик его распаковывает Вся надежда на вас, господа!

#17 Serg_R

Serg_R

    Старший сержант

  • Пользователи
  • 43 сообщений

Отправлено 08 April 2006 - 07:15

Я так понимаю на этом все и закончилось ( жаль...

#18 Fl0ppy

Fl0ppy

    Ефрейтор

  • Пользователи
  • 6 сообщений

Отправлено 04 May 2006 - 14:31

@bak
Can you upload again the file in another server?
The program can unpack ALL data?

Можете вы upload снова архив в другом сервере? Программа может распаковать ВСЕ данные?


#19 bak

bak

    Младший сержант

  • Пользователи
  • 12 сообщений

Отправлено 08 May 2006 - 12:21

Цитата (Serg_R @ 8.04.2006 - 11:15)
Я так понимаю на этом все и закончилось ( жаль...

Нет, все еще только началось.

Ангел запакует все в нужный файл. Найдите мне фэнтэзийный .OTF шрифт, желательно тот, который используется в версии от Руссобита (а я хз как он называется).

Просто был занят очень продолжительное время. Но на создание No-CD не забил.


#20 Serg_R

Serg_R

    Старший сержант

  • Пользователи
  • 43 сообщений

Отправлено 28 May 2006 - 16:17

Как дела? bak ты нашел нужный OTF?