Форум программистов, компьютерный форум CyberForum.ru

Можно ли определить содержимое файла? - C++

Восстановить пароль Регистрация
 
 
Alvares89
0 / 0 / 0
Регистрация: 06.06.2013
Сообщений: 17
06.06.2013, 17:43     Можно ли определить содержимое файла? #1
Здравствуйте, помогите с проблемой, в общем я в программировании ничего не понимаю, надо попробовать прочитать сжатый файл, это база данных, меня интересует возможно ли извлечь из нее информацию, очень надо!

P.S. Извините если не там написал)
Вложения
Тип файла: rar fearxp.rar (122.8 Кб, 12 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2013, 17:43     Можно ли определить содержимое файла?
Посмотрите здесь:

C++ Добавить в конец первого файла содержимое второго файла
Изменить содержимое файла программно. C++
выводит на экран содержимое файла C++
C++ Пользователь вводит имя файла, программа выводит содержимое файла с указанием номеров строк.
C++ Напишите программу, которая выводит на экран содержимое файла и выводит сумму чисел файла
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alvares89
0 / 0 / 0
Регистрация: 06.06.2013
Сообщений: 17
21.11.2016, 14:39  [ТС]     Можно ли определить содержимое файла? #21
Вообще я занимался другими делами и на это время отлаживал эти вещи, программирование это ведь не суп сварить, быстро не получится, буду конечно осваивать, хочу попросить людей кто может помочь немного, и то хорошо будет.

Я думал что исходники 10 летней давности все те же исходники на том же языке как и в большинстве игр. Поспрашиваю везде конечно, дело то добровольное, я даже не прочь оплатить успешные труды, так что может кто и отзовется.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
21.11.2016, 14:52     Можно ли определить содержимое файла? #22
Цитата Сообщение от Alvares89 Посмотреть сообщение
Я думал что исходники 10 летней давности все те же исходники на том же языке как и в большинстве игр.
Так то да, но игра уже не актуальна, а где пригодятся знания старой игры?
Можете попросить rikimaru2013. Если готовы заплатить, то в раздел фриланс. Может быть подойдёт еще этот раздел.
rikimaru2013
21.11.2016, 16:20
  #23

Не по теме:

MrGluck, вы красиво поступаете?

MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
21.11.2016, 16:57     Можно ли определить содержимое файла? #24
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
MrGluck, вы красиво поступаете?
Я решил пригласить в тред эксперта в области С++ + GameDev. Можете считать это комплиментом. Если привлёк ненужное внимание - прошу прощения. Но помогать (платно/бесплатно) или нет решать вам, конечно.
rikimaru2013
C++ Game Dev
 Аватар для rikimaru2013
2139 / 972 / 223
Регистрация: 30.11.2013
Сообщений: 3,241
21.11.2016, 17:31     Можно ли определить содержимое файла? #25
Alvares89, все файлы от геймдева своего типа для своей программы, как правило бинарники.
Почитайте про сериализацию в С++ и вы найдете много примеров как она работает.
Но в крупных играх бинарники может прочесть только сама игра, так как она знает куда и как писать,
и тут же код на чтение. В основном такие файлы имеют вначале древо мапирования "Раздел" - "Offset".
Где-то есть в сети представление psd файла. К такому "стандарту" придерживаются многие:
вначале карта с версией read/write программы и сами данные. В коде "ссылки" на разделы могут
быть вбиты через enum и имя файл не возможно будет узнать, что за раздел и какой его offset.

Больше конкретике: в коде сериализатор знает, что 10 пункт( enum ) это сохранка главного героя,
далее идёт 32 бита отображающие смещение от начала файла к началу "Раздела". При переходе на
это смещение информационный заголовок от класса "Player" которому и разрешили писать в раздел.
Но в каком порядке там данные? Количество жизней, скорость и броня ? Или Уровень, мана и скорострельность?
Опять же никто не знает, кроме создателей игры.

Это я описал систему, где создатели взяли готовое решение "мапирования". А представьте, что они не пишут
"Раздел; отступ", а зашифровали 32-ух битный отступ в 128 битах после названия раздела. Как теперь
найти? Методом тыка? Прочитать в документации игры, если есть? Искать слив информации/код?

А как тогда взламывали игры наши деды? Есть правило в С++, что адрес переменной совпадает с
её размером. Переменная int 32 бита будет иметь адрес кратный 32-ум. Что дальше? Берём все данные
выделенные процессом игры, запоминаем все данные во всех адресах кратных 32-ум. Разворачиваем игру,
меняем эту переменную. Как? Ну знаем, что жизней у нас 133, нашли все переменные с адресами 32, нашли
у кого значение 133. Нашлось 199 шт. Почему так много? Вдруг это пиксели или еще что интереснее)
Поменялось здоровье, теперь 72, теперь в тех значениях адресов убираем все, у кого сейчас не 72, осталось 51 шт.
И так до победного) Как программисту защитить свои данные от такой атаки? Не хранить в явных местах или в явной форме.
Например разрабы Космических рейнджеров выводили золото "522", хотя у них в переменной было "5220". Так
они отсеяли 90% школьников мечтающий взломать вк и их игру)

Но это вмешательство в игру, в OЗУ, при перезагрузке всё слетит. Внедрение в сохранку намного круче,
как же туда залесть? Начнём с защиты: в онлайн играх общаются через hash сообщения и понять, где что
очень тяжело. Так же стоит аутентификация между клиентом и сервером. Самая простая все данные клиент
превращает отдельно в hash, вместе с секретным ключём от сервера, который пришёл ему с просьбой отослать все
данные и отправляет данные и их hash. Если попытаться даже как научиться подбирать hash меняя золото с 100 на 99999,
хакеру всеравно не узнать какой hash-секрет hash-ировался вместе с данными для отправки.

И это браузерные игры, где низкий уровень защиты. А теперь представьте онлайн игру. Там есть целые отделы отвечающие
за безопастность от хакерский-атак игры. И тут вы хотите их обмануть?

В целом всё реально, в защите слабое звено всегда человек. Я как-то нашёл на продажу исходники одного продукта,
над которым я работал в конторе более 7 месяцев) Найдите в гугле мепинг сохранки и меняйте значения,
но знайте, что если бы вы как программист поставили перед собой цель в течении 7 дней, защитить свои данные перед
релизом, вы бы отсеяли 97% мелких атак.


По вашей теме - вот есть небольшой пример мепинга для вашей игры https://steamcommunity.com/sharedfil.../?id=180211741
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2016, 17:43     Можно ли определить содержимое файла?
Еще ссылки по теме:

C++ Зашифровать содержимое текстового файла
C++ Зашифровать содержимое текстового файла
C++ Вывести содержимое файла на экран

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Alvares89
0 / 0 / 0
Регистрация: 06.06.2013
Сообщений: 17
21.11.2016, 17:43  [ТС]     Можно ли определить содержимое файла? #26
А что вы можете сказать уважаемый про дописывание в движок еще одного эффекта?
Yandex
Объявления
21.11.2016, 17:43     Можно ли определить содержимое файла?
Ответ Создать тему
Опции темы

Текущее время: 10:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru