0 / 0 / 0
Регистрация: 06.06.2013
Сообщений: 17
|
|
1 | |
Можно ли определить содержимое файла?06.06.2013, 17:43. Показов 1809. Ответов 25
Метки нет (Все метки)
Здравствуйте, помогите с проблемой, в общем я в программировании ничего не понимаю, надо попробовать прочитать сжатый файл, это база данных, меня интересует возможно ли извлечь из нее информацию, очень надо!
P.S. Извините если не там написал)
0
|
06.06.2013, 17:43 | |
Ответы с готовыми решениями:
25
Можно ли в RichEdit запихать содержимое Word-файла (текст и картинки)? Определить содержимое .res файла как можно изменить содержимое файла фотографии, не меняя самого фото? Можно ли как-то стереть всё содержимое файла, не закрывая его, fstream |
0 / 0 / 0
Регистрация: 06.06.2013
Сообщений: 17
|
|
21.11.2016, 14:39 [ТС] | 21 |
Вообще я занимался другими делами и на это время отлаживал эти вещи, программирование это ведь не суп сварить, быстро не получится, буду конечно осваивать, хочу попросить людей кто может помочь немного, и то хорошо будет.
Я думал что исходники 10 летней давности все те же исходники на том же языке как и в большинстве игр. Поспрашиваю везде конечно, дело то добровольное, я даже не прочь оплатить успешные труды, так что может кто и отзовется.
0
|
rikimaru2013
|
21.11.2016, 16:20
#23
|
Не по теме: MrGluck, вы красиво поступаете?
0
|
Форумчанин
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|
21.11.2016, 16:57 | 24 |
Я решил пригласить в тред эксперта в области С++ + GameDev. Можете считать это комплиментом. Если привлёк ненужное внимание - прошу прощения. Но помогать (платно/бесплатно) или нет решать вам, конечно.
0
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
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/sha... =180211741
0
|
0 / 0 / 0
Регистрация: 06.06.2013
Сообщений: 17
|
|
21.11.2016, 17:43 [ТС] | 26 |
А что вы можете сказать уважаемый про дописывание в движок еще одного эффекта?
0
|
21.11.2016, 17:43 | |
21.11.2016, 17:43 | |
Помогаю со студенческими работами здесь
26
Определить содержимое файла f, после выполнения следующих операторов: Записать в текстовый файл содержимое Edit, и прочитать содержимое файла в Memo Копировать содержимое одного указанного файла в другой указанный файл, дописывая, а не стирая его содержимое Даны два текстовых файла. Добавить в начало первого файла содержимое второго файла Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |