Создание собственного типа графического файла / расширения

#image #file-format #data-protection

#изображение #формат файла #защита данных

Вопрос:

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

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

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

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

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

Ответ №1:

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

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

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

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

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

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

Комментарии:

1. Этот ответ требует большего… Голосую за! 1 за очень хороший ответ, с пунктами, которые я никогда не рассматривал.

Ответ №2:

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