Твой софтовый форум > Software > Софт вопросы

Какой программой открыть файлы dat и экзе?

Дата публикации: 06.09.2007 - 17:31
G.K.
Вобщем, я пару лет назад купил очень пиратский диск с игрой (дети Нила). В игре был один очень глупый, но очень серьёзный баг - вместо дома резчика по камню строится дом обычного каменщика, из-за чего невозможно построить кучу сооружений.
Я в программировании- чайник, но сейчас думаю, что вполне мог бы починить этот баг сам, поскольку проблема, как я понимаю, только в том, что в каком-то файле вместо одного имени по ошибке написали другое. (я уже таким манером в одной игре кое-что поменял, просто путём подмены одного, вырезания другого, короче, чистой логикой).

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

Чем это всё можно прочитать и отредактировать?

Добавлено:

ЗЫ. А, может быть, и длл придётся открыть тоже.
llELViSll
Посмотри здесь.
https://softoroom.org/topic27732.html
G.K.
в общем, не получается пока.

Уточню, файлы, кторые мне надо - это не архивы, в которые зашита музыка, картинки, и т.д. Это - маленькие текстовые файлы от 1 кб до пару сот кб. Но при открытии блокнотом я читаю сплошную абракадабру, в которой периодически попадаются читаемые строки латиницей. Нужна программа, чтоб прочитать всё (и отредактировать).
middleman
Цитата | Quote
сплошную абракадабру, в которой периодически попадаются читаемые строки латиницей

Это не текстовые фаилы. Это результат работы компилятора - машинный код. Исполняемый код ты не прочитаешь. Некоторые старые компиляторы оставляли текстовые строки отображаемые на экране в неизменном виде. Если ты даже поменяешь одну из этих строк измениться лишь отображаемое на экране слово. на игровой процесс это никаким боком не повлияет, т.к. последний задается исполняемым кодом, а не отображаемыми строками.
В общем-то у тебя три варианта.
Первый и самый простой это поискать багфикс, который исправит эту ошибку.
Второй посложнее... Тебе нужно выяснить на каком языке была написана игра (возможно вплоть до билда компилятора) и найти или написать (что врядли) под него декомпилятор, который переведет машинный код обратно в команды языка, потом проправить программу и тем-же самым компилятором скомпилить обратно в машинные коды.
Ну и третий, самый невероятный... это разобраться в ассемблере и поправить исполняемый код напрямую.
Если открыть фаил под WinHex ты увидишь шестнадцатиричные коды.
Если открыть его под каким-то дизассемблером, то увидишь эквивалентные этим кодам команды ассемблера.
Каждый байт или несколько байт информации в этом фаиле будут представлять ту или иную команду машине.
Вот их то тебе и надо будет править. Только эти команды реально влияют на игровой процесс.
G.K.
Спасибо. А почему тогда у меня прекрасно открывались блокнотом файлы, скажем, lua? В них же тоже код, который на игру влияет огого как... Очень простой, причём.

Багфикс, к сожалению, не выйдет, потому что официальные патчи на эту версию даже ставиться не хотят - диск покупал, привезенный прямо из карибского моря biggrin.gif
И уже не помню, что за фирма произвела этот диск, поскольку потом обменял его на другую игру sad.gif

В общем, расшифровать файл "дат", даже если он весит 1 кб, нельзя никак?


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

Добавлено:

Цитата | Quote
Это не текстовые фаилы. Это результат работы компилятора - машинный код. Исполняемый код ты не прочитаешь. Некоторые старые компиляторы оставляли текстовые строки отображаемые на экране в неизменном виде.

Нет, это нигде не оображается. Вот пример:

 Ш яяяя яяяяяяяяяяяяяяяя *  •  N N  и НМЊ?НММ= Ђ Ђ Ђ Ђ  C * graphics\interface\buttons\but_placeholder  ыяяя  а * graphics\interface\buttons\but_placeholder  ыяяя  $  @њ Ђ8 ? Ђ> { { N * graphics\interface\buttons\but_placeholder
 N Ђ?  ђ  * graphics\interface\buttons\but_placeholder    –  N N  и НМЊ?НММ= Ђ Ђ Ђ Ђ  * graphics\interface\buttons\but_placeholder  ыяяя яяяя яяяяяяяяяяяяяяяя *  у  N N  и НМЊ?НММ= Ђ Ђ Ђ Ђ  * graphics\interface\buttons\but_placeholder  ыяяя  ѕ  N N  и НМЊ?НММ= k k k k  6 * graphics\interface\buttons\but_placeholder   яяяя яяяяяяяяяяяяяяяя * яяяя яяяяяяяяяяяяяяяя *   Ђ8 '  @њ @? ? 1 1 -  * graphics\interface\buttons\but_placeholder   шяяя Ђ? Д  N N  и НМЊ?НММ= Ђ Ђ Ђ Ђ  * graphics\interface\buttons\but_placeholder  ыяяя
¬  `к '  и НМЊ? ?   * *  1 * graphics\interface\buttons\but_placeholder    х  Ђ8 Ђ8  N ? Ђ> ~ 1 , , a * graphics\interface\buttons\but_placeholder –   %  Ђ8 '  @њ @? ? k k ; ;  ы * graphics\interface\buttons\but_placeholder  ыяяя  Ы  N N  и НМЊ?НММ= Ђ Ђ Ђ Ђ
 * graphics\interface\buttons\but_placeholder    ыяяя  “   * graphics\interface\buttons\but_placeholder #  ьяяя яяяя яяяяяяяяяяяяяяяя *  Ф \ * graphics\interface\buttons\but_placeholder  яяяя яяяяяяяяяяяяяяяя *  Ц  @њ q  ' ?ГхЁ>  * graphics\interface\buttons\but_placeholder
  л  Ђ8 @њ  N @? ?  * graphics\interface\buttons\but_placeholder     * graphics\interface\buttons\but_placeholder   ыяяя  з  Ђ8 N  N @? ?  * graphics\interface\buttons\but_placeholder # 



Ну, и т.д.
Evgeny101
Цитата | Quote(middleman @ 4.09.2007 - 10:11)
Ну и третий, самый невероятный... это разобраться в ассемблере и поправить исполняемый код напрямую.
*


А по мойму это самый реальный вариант.Но только дизассамблер и редактор здесь врядли поможет.Берёшь отладчик в руки и вперёд.Токо я не представляю как ты будешь игру отлаживать.
А если честно забей на это дело.Что бы фиксить такие баги нужен исходный код игры(сорцы)
middleman
Цитата | Quote
А почему тогда у меня прекрасно открывались блокнотом файлы, скажем, lua? В них же тоже код, который на игру влияет огого как... Очень простой, причём.

Возможно lua в этой игрушке представляет собой какое-то подобие стандартного INI. т.е. списка настроек игры. вполне естественно, что их изменение может влиять на игровой процесс в какой-то мере, но подобные фаилы конфигурации врядли смогут влиять на то какое здание по какой команде строится.
Тот кусок кода, что ты привел похож на список путей к элементам интерфейса, а значит это не исполняемый код, который нужно менять, а просто набор даных, используемых движком для поиска картинок, изменением которых в игре совершенно ниче не изменишь. максимум вызовешь ошибку или зависание если движок по исправленому пути не найдет соответствующей картинки.
G.K.
Ладно, народ, спасибо, я в общем понял, что тут без камасутры не разберёшься... И визит к проктологу после отладки гарантирован... :/

Будет время - может, попробую чего-то поменять.

Цитата | Quote
А по мойму это самый реальный вариант.Но только дизассамблер и редактор здесь врядли поможет.Берёшь отладчик в руки и вперёд.Токо я не представляю как ты будешь игру отлаживать.


А что такое отладчик, чем он отличается от дизассемблера и какие есть отладчики, доступные в сети для скачивания?

ЗЫ. Кстати, дизассемблер скачал. Файлы дат он вообще не открывает, говорит,что это типа то ли не вин32 файл, то ли ещё что-то, и открывает только хекс - коды.
Открыл им длл - выдало хекс коды+много строчек чего-то непонятного, что, очевидно, является ассемблером.
Исправить что-то там, к сожалению, маловероятно, поскольку я абсолютно не представляю, какой регистр, или как там оно называется, соответствует какому объекту в игре, и вообще, что это был за длл...


Цитата | Quote
Возможно lua в этой игрушке представляет собой какое-то подобие стандартного INI. т.е. списка настроек игры. вполне естественно, что их изменение может влиять на игровой процесс в какой-то мере, но подобные фаилы конфигурации врядли смогут влиять на то какое здание по какой команде строится.


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

В целом на игровой процесс оно влияло - поскольку там напрямую были команды - при таком-то действии вызвать такую-то модель, такую-то анимацию.

Как я понимаю, там вполне можно было и сами объекты местами поменять. Видать, язык какой-то высокоуровневый очень.smile.gif
-=$eReG@=-
lua - один из языков программирования. Использовался, например, в S.T.A.L.K.E.R.е(в распакованной версии игры - файлы с расширением .script). Кстати, достаточно простой и удобный.
Цитата | Quote
Возможно lua в этой игрушке представляет собой какое-то подобие стандартного INI. т.е. списка настроек игры
скорее всего, но кроме настроек могут быть простенькие функции. Проверь всё, что идёт после слов "function" и особенно - "class(es)". Class в программировании означает "объект"
подробнее:
Цитата | Quote
вместо дома резчика по камню строится дом обычного каменщика
скорее всего, что дома - описаны как объекты. Но даже если ты их найдёшь, это вряд ли что-то даст. Проблема может быть в движке игры. Вобщем, если не выйдет, у тебя три варианта:
1)забей smile.gif
2)лицензия(хорошая пиратка) + патч
3)assembler(самый бредовый, потому как игры состоят, как правило, из тысяч строчек кода).
зы: если получится или возникнут вопросы - спрашивай.
Удачи!


Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке: Какой программой открыть файлы dat и экзе?
SoftoRooM © 2004-2024