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)
Ответ на: комментарий от anonymous

А активную защиту пользователи явно не оценят.

В случае однопользовательских игр, да, это зло. А вот в случает онлайна с даже крохотной соревновательной жилкой это жизненно необходимо, ну разве что онлайн игра не HVH =). Я сейчас скорее не делаю, а думаю можно ли это сделать как то не монструозно.

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

А вот в случает онлайна с даже крохотной соревновательной жилкой

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

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

А вот в случает онлайна с даже крохотной соревновательной жилкой это жизненно необходимо

Если теоретически что-то можно сделать на клиенте, то у тебя не игра, а кнопкодроч, как csgo или любой другой шутан. Придумай нормальную игру и надобность отпадёт.

crutch_master ★★★★★
()
Ответ на: комментарий от crutch_master

Да это просто мысли в слух, нормальную сетевуху я не осилю. От затеи я уже полностью отказался (от огораживания, но не от компиляции ресурсов в библиотеки). А касательно нормальной игры, эх кто-бы знал, что это такое нормальная, я уже две 90 листовые тетради исписал и изрисовал концептами, 100500 прототипов налабывал и удалял, сё хирня какая то =)

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

А касательно нормальной игры, эх кто-бы знал, что это такое нормальная

Основа - turn based strategy с минимальным рандомом или вообще без него. Да, по сути это будет вариация шахмат, но всё остальное - это задротство и читеры

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

но всё остальное - это задротство и читеры

Ну почему же, сразу задроство, есть просто для веселья, типа osu! Там конечно можно задротить огогого, но можно под музыку просто поклацать, минут 5 потыкал и настроение как-то поднимается, потому что активность и ритм!

Я было хотел сделать что-то подобное, но не тыкалку, а прыгалку =)

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

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

Так tbs в разы проще сделать

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

Да и дело не в том что проще по сути, дело ещё в интересе. Для стратегии нужен сюжет, где мы, кто мы, откуда мы, что мы длаем, а зачем? кто друзья , а кто враги? А в чём наша слабость? А в чём их сила? А нафига нам драться? А что можно? А что нельзя? А почему нельзя? А как сделать так что-бы было можно?

Если в игре нужно докатить шарик из точки А в точку Б и всё это скучно, а если Шарик в точке А хочет к маме в точку Б и плачет его нужно докатить, но сын шарик в силу своей природы и юнного возраста имеет свойство телепортироватся в ритм звуков окружающего мира и телепортируется он на 1 метр в лево при Басах и на 1 в право когда поёт девушка, это свойство всех шариков деток…. Ну а теперь врубается вокал околодабстеп и теперь попробуй докати телепортирующегося сыну шарика до мамы =)

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

В разы не в разы, для TBS какой бы он ни был нужно много-много-много хорошего арта,звуков,анимации.

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

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

Ну, я понял какие тебе игры нравятся =) Таких уже очень много и очень много качественных и хороших, как визуально так и по механикам. Повторюсь я конечно больше ради интереса делаю, но выше головы не прыгаю, ну если конечно загорится в глазах. А пока нет. Пока есть другие задумки, которые просто интересны.

Короче у меня планов нет, я тупо играюсь и экспериментирую, завтра может вообще всё удалю нахрен, а может внезапно начну мега стратерию пилить. Чёрт, его, короче, знает. И это прикольно =)

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

Таких уже очень много и очень много качественных и хороших, как визуально так и по механикам

Где они все? Давай список.

crutch_master ★★★★★
()
Ответ на: комментарий от crutch_master

HD текструрки в платном DLC.

anonymous
()
Ответ на: комментарий от 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 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.