Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Зашифровать ресурсы (Картинки, звуки и т.д) (3 стр)

Зашифровать ресурсы (Картинки, звуки и т.д) (3 стр)

Поделиться

Страницы: 1 2 3

МизраэльПостоялецwww13 ноя. 20179:32#30
Funtik
Пишешь свою d3d11.dll, которая экспортирует те же функции, что и оригинальная. Только вместо d3d-объектов эти функции создают свои proxy-обёртки, в которых помимо проксирования вызова к оригинальным d3d объектам могут делать что-то ещё, например сохранять в файл все создаваемые текстуры и модели.
Свою d3d11.dll помещаешь в каталог с игрой, чтобы она загружалась вместо оригинальной.

Правка: 13 ноя. 2017 9:32

MikleМодераторwww14 ноя. 201715:40#31
Мизраэль
> Пишешь свою d3d11.dll, которая экспортирует те же функции, что и оригинальная.
Это слишком сложно. Пишешь dll, которая тупо перенаправляет все обращения к d3d11.dll, кроме одного, например DrawInexedPrimitive (или как там оно в DX11). Из этой ф-ции получаешь ссылки на индексные и вертексные буферы, которые спокойно грабишь - так получишь любую зашифрованную модель, даже если она вообще сгенерирована, а не загружена. Так же и с текстурами или звуками.
MiraПостоялецwww14 ноя. 201716:04#32
Mikle
угу, а там дело техники. некоторые античиты пытаются противодействовать инжекции или перехвату API. например GameGuard при сплайсинге CreateDevice или DIP ругается и шлет нафиг.

так же у метода реконструкции моделей есть проблемка - ты грабишь всю сцену. например некоторые объекты слиты оптимизацией в один DIP , не всегда ожидаемый порядок отрисовки (из за внутренних сортировок), сложно/невозможно извлечь скелет анимированной модели. при софтверной анимации получишь тупо кадр анимации а даже не Т позу.  это нужно очень основательно заморочиться.

MrGobusПользовательwww14 ноя. 201721:16#33
Хаус
> А всякие MD5 тоже самое делают?

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

Например:

1 + 4 + 3 + 7 + 2 = 17

Внесли изменения в данные, и хоп, хеш другой

2 + 4 + 3 + 7 + 2 = 18

Отсюда вытекает основное применение хеша - проверка целостности данных (проверка подлинности пользователя, копирование, скачивание, защита кода от изменения и т.п.)

Сразу думаю заметны минусы, для разных последовательностей может быть один и тотже хеш (2 + 3 = 5, 1 + 4 = 5). По этому есть более сложные алгоритмы которые сводят подобные ситуации к минимуму, например md5.

Страницы: 1 2 3

/ Форум / Программирование игр / Общее

2001—2017 © GameDev.ru — Разработка игр