LINUX.ORG.RU

Верификация динамически загружаемой библиотеки

 , , , ,


0

3

Предисловие:

Игровые файлы, текстуры, звуки, модели, etc компилируются в .so или .dll библиотеку которые динамически (через SDL_LoadObject()) подключаются к движку и он уже автоматически извлекает char * буферы файлов по запросу имени типа "asset/texture.dds" и посредством SDL_RWFromConstMem() передаются в обработчики. После получения ресурсов библиотека выгружается дабы не занимать память.

Суть:

Пока что у меня всё тупо, гружу библиотеку пробую загрузить от туда функцию const char * asset_lib_verify(const char * msg) если она есть передаю ей "ping" в ответ она должна отправить "pong" и если всё ок я уже запрашиваю указатель на структуру с данными.

А на будущее хочется как то проверять что библиотека с ресурсами не была подменена, ну например как мера защиты от читеров если такое потом будет нужно.

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

Но мне кажется это ненадёжным ведь sha строку в самом приложении могут вручную перебить на нужную.

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

UDP: В долгий ящик или на помойку, пока что вывод >> ненужно © <<

★★★★★

Последнее исправление: LINUX-ORG-RU (всего исправлений: 2)

Ответ на: комментарий от LINUX-ORG-RU

Там что-то искать всё равно, что в помойке рыться. Открыл Dungeon Team он сожрал всю память какую была через 30 минут работы.

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 1)
Ответ на: комментарий от crutch_master

Открыл Dungeon Team он сожрал всю память какую была через 30 минут работы.

:D Эх, да 2k19, а игоря нужного жанра нету. Ну можно тут https://gamejolt.com/ ещё поискать. На gogs/steam 100% ничего нет чего ты не знаешь видимо, где ещё искать хз. Разве что на MoDDB закопано что_то

LINUX-ORG-RU ★★★★★
() автор топика
Ответ на: комментарий от next_time

То есть, вы используете .so для того, для чего нормальные люди используют классы?

Не, причём тут классы? Я использую ‘.so’ для того, для чего нормальные люди используют ‘.zip’ или свои форматы хранения. :D

LINUX-ORG-RU ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.