Перейти к содержанию

Расшифровка файлов.


Рекомендуемые сообщения

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

Подскажите куда копать, какой набор программ необходим, что может потребоваться.

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

Ссылка на сообщение
Поделиться на другие сайты

Браузерная игра- fragoria.com Она имеет клиент.

Мне нужно именно расшифровать данные. для их изучения. Читерство меня не интересуетю :)

Ссылка на сообщение
Поделиться на другие сайты

Базовыми навыками работы с программируемыми HEX редакторами обладаешь? Знаешь какой-нибудь низкоуровневый (желательно) язык программирования? Если серьёзно, то занятие весьма сложное, даже при ответах "да" на оба вопроса. А, английский ещё нужен почти всегда. Впрочем, если есть большое желание, терпение, умение читать и много свободного времени, то научиться реально.

0. Было сказано, что игра браузерная, не очень представляю, где могут быть файлы. Либо в темпах, либо вообще чисто в памяти. Представим, что они уже есть.

1. В большинстве случаев игровые файлы лежат не россыпью, а в архивах, причём пожатых каким-нибудь алгоритмом. Если нужно кратко про сжатие: хорошая статья (на правах ИМХО), сорс уже не знаю где, но и так сойдёт. Впрочем, мне встречались варианты и без сжатия (а также варианты с криптовкой вместо сжатия), как повезёт.

2. Далее рано или поздно мы добираемся до самих файлов. Наиболее очевидный способ после данного шага — посмотреть в инетрнете, не встречался ли кто-то с чем-то подобным. Многие разработчики используют схожие/одинаковые форматы. В первую очередь я бы залез на XeNTaX. Если нет, то тогда в руки hex редактор и смекалку. Едва ли что-то можно посоветовать без примера, но в интернете какие-то руководства вполне можно найти. Выстраиваем структуру файла (к примеру: 4 байта заголовок, 4 байта размер, 2 байта ширина, 2 байта высота, 4 байта оффсет начала данных), в идеале её проверять с помощью редакторов вроде 010 Editor, Synalyze It!, Hex Editor Neo, Hex Workshop умеет тоже, вроде (у всех есть триалы, но программы не из дешёвых, потому нередко ограничиваются головой, текстовым редактором и HxD).

3. Мы знаем устройство файла с данными. Пишем какой-то скрипт/программу для преобразования его в нужный нам вид (существуют разные вспомогательные инструменты по 3D моделям, Noesis, например, однако не шибко сталкивался).

4. Редактируем/изменяем в редакторе 3D графики или графическом редакторе (а может и аудио редакторе) полученный преобразованный файл.

5. Пишем обратный конвертер (если его ещё не написали) и упаковщик (если требуется).

6. Тестируем всё в игре.

 

Возможно, игра ещё и будет проверять целостность своих ресурсов по, скажем, хэшам и т.п. Редко, но бывает, особенно, если подумать, что у тебя игра онлайновая. Значит, нужно и немного знать ассемблер, чтобы убрать лишнюю проверку где-нибудь в её недрах. Из дизассемблеров: IDA Pro (шутка), Hopper, Olly Debug (наверное, наилучшее из бесплатных под Windows).

Ссылка на сообщение
Поделиться на другие сайты

Ничего себе ._. Вообще, я не знаю ни одного языка. Но понемногу буду читать книгу по С++. Надеюсь, нормально выучу.

Ссылка на сообщение
Поделиться на другие сайты

 

 


Ну, во-первых какую; а во-вторых... C++, я бы не шибко советовал с него начинать, надоест быстро.
Молодой человек хочет заняться программированием. Но не знает, что знание языка не позволяют написать программу. Прежде научитесь писать алгоритм программы, а затем реализуйте этот алгоритм на разных языках. Разберитесь в каких случаях и какой язык наиболее подходит для реализации поставленной задачи. :)
Ссылка на сообщение
Поделиться на другие сайты

Paddington, тем, что C++ — это во-первых сложный язык, сложный не неудобным и некрасивым синтаксисом (ИМХО :D), а богатством предоставляемых возможностей. Во-вторых, если изучать плюсы основательно, то окажется, что имеющаяся STL не самая простая, потребуются какие-то, порой, очевидные функции и юзер придёт к излюбленному "сделай сам". А это множество, противопоставленное огромному количеству библиотек дополняется и недружелюбными компиляторами (опять же, для новичка). А в-третьих, если ещё вспомнить про разные стандарты, неполные (и порой кривые) реализации на разных операционных системах, то количество подводных камней будет "ну очень много". Я реалист, поэтому считаю, что пусть человек освоит сначала азы программирования (как правильно сказали — хотя бы логику построения алгоритмов), чем будет тратить уйму времени на что-то от него далёкое. Если уж так хочется начать с C-подобного языка, то вначале надо выучить C (буквы), а потом уже пытаться слагать слова (плюсы). 

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...