Начну с того, что это мне нужно, потому что мой проект содержит довольно много эксклюзивных материалов, на создание которых я потратил много времени, и которые я не хотел бы видеть в других проектах (эксклюзив же).
Собственно что я имел ввиду под "максимальной защитой". Это как минимум защита от xdepa и возможности открыть в других программах. То есть оптимизатор-протектор Векса мне точно не подойдет.
Многие китайские карты не взламываются хдепом (ошибка с открытием war3map.w3i), крашат модел эдитор при попытке открыть через mpq браузер, а в mpq editor Ладика отображают только файлы .xxx и некоторые модели с текстурами с битыми названиями. Пример такой карты - Focs3 Another.
Я понимаю, что и это можно как-то ломануть, но мне нужно знать, как замутить такую защиту (на хгм были какие-то статьи про замену строчек, но я не особо понял, в какой именно файл карты это вставлять).

Принятый ответ

Aws, тогда мой вариант тебе идеально подходит, осталось решить какой необратимый хеш одновременно достаточно хорош и не слишком сложен в реализации. Я помню кто-то даже md5 на jass выкладывал тут на xgm, но, имхо, это изврат.
Принцип примерно такой:
  • игрок вводит команду вида "-code qwerty", где code это или универсальное ключевое слово для ввода кодов или уникальное для каждого кода, в зависимости от реализации, а qwerty это ключевое слово для конкретного кода
  • триггер отлавливает ввод первого ключевого слова "-code" и выделяет из строки второе ключевое слово "qwerty"
  • ключевое слово "qwerty" прогоняется через необратимую хеш-функцию и превращается в хеш "123456"
  • хеш "123456" сравнивается с записаным в карте хешем, циклом если команда "-сode" универсальная, или напрямую если у каждого кода есть своя команда
  • если хеш совпал, то выдаем плюшки, ну а если нет, то шлем нах
  • при попытке вскрыть карту кулхацкер обнаружит только "-code" и "123456", но не "qwerty", а значит не сможет правильно ввести команду в официальной версии карты
  • наличие алгоритма хеширования в карте не спасает кулхацкера т.к. алгоритм необоратимый и не может из "123456" получить "qwerty"
  • кулхацкер может поробовать подобрать ключевое слово, хеш которого совпадет с "123456", но если функция хеширования достаточно хороша, то он скорее начнет рвать волосы на жопе и визжа кататься по полу, чем у него это получится
`
ОЖИДАНИЕ РЕКЛАМЫ...