Создание моего собственного графического типа файла / расширения - PullRequest
1 голос
/ 18 мая 2011

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

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

У меня есть несколько файлов JPEG, PNG и растровых изображенийЯ хотел бы сделать это, чтобы люди не могли так легко скопировать их, когда я распространяю свою игру.

Я использую C ++ и DirectX, если это имеет какое-то значение.

Кто-нибудь знает, как это делается?Я знаю, что могу изменить расширение .txt на что угодно, и моя программа будет читать его так же, но будет ли это работать с картинками?

Ответы [ 2 ]

3 голосов
/ 27 декабря 2011

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

Создать собственное расширение легко, просто решитекак вы хотите интерпретировать свое изображение и создать конвертер для построения их из существующих образов ...

... Но форматы ... выбираются ради программиста ихудожественные инструменты, а не для защиты.Вы никогда не сможете действительно защитить свое произведение от кражи, так как в какой-то момент ваш код должен будет преобразовать графику в необработанный DDB (зависимый от устройства растровый рисунок) или DIB (независимый от устройства растровый рисунок) перед их рендерингомна экран или отправка их в DX / OpenGL.Честно говоря, коммерческие игры на картриджах, которые не соответствуют стандартным форматам, легко копируются.Хакеры даже делают редакторы уровней для проприетарных игровых движков, которые не известны широкой публике.

Я не использую png и jpg в своем игровом коде по той простой причине, что я не смог использовать libpng в своем коде, ни jpeg-декодер, и мне нужно, чтобы моя графика поставлялась в виде плиток 8x8 с 4/8-битной палитрой (цвет 0 прозрачен) или 16-битной RGBA_555_1, чего нельзя добиться с помощью png и jpeg.

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

Так что да, вы можете легко изменить тип файла, но этоне помешает любому пользователю (а) изменить имя файла или (б) определить тип файла, поместив его в программу, которая может легко распознавать тип файла.И как человек, который также занимался редактированием видео, я могу сказать, что многие программы с радостью интерпретируют любой файл и выясняют формат real .И это не остановит (с), скрупулезный хакер разорвет ваши произведения.На самом деле просто взгляните на то, что хакеры сделали с форматом Refill Propellerhead, поскольку они не могли понять, как его читать, они создали программу, которая использовала программу Propellerhead для его чтения - подумайте об этом.На самом деле не требуется много времени, чтобы использовать отладчик Vanjar Fukar для отслеживания вашего кода при загрузке изображений, определения кода загрузки вашего изображения и либо его копирования, либо запуска его самостоятельно (среди сотен других тактик взлома).

0 голосов
/ 18 мая 2011

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

...