Начну с того, что это мне нужно, потому что мой проект содержит довольно много эксклюзивных материалов, на создание которых я потратил много времени, и которые я не хотел бы видеть в других проектах (эксклюзив же).
Собственно что я имел ввиду под "максимальной защитой". Это как минимум защита от 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", но если функция хеширования достаточно хороша, то он скорее начнет рвать волосы на жопе и визжа кататься по полу, чем у него это получится
`
ОЖИДАНИЕ РЕКЛАМЫ...
3 комментария удалено
11
16
6 лет назад
11
максимальная защита очень проста:
запусти format d:\ c:\
затем жесткий с твоими бывшими файлами засунь в микроволновку на 5-10 минут
затем охлади и в морозилку
затем разбей молотком на мелкую пыль (респиратор не забудь)
затем пыль в мусорку
Всё, твои файлы не появятся больше нигде.
А если ты хочешь, чтобы это работало в варкрафте, можешь забыть словосочетание "защита файлов"
Ну а если говорить о "защите" по типу тех, что описаны в примерах, то опять же - за чем охотимся? Я вытащу все твои модели любым MPQ-редактором, если он будет тупить - скину карту Зезуле и он пофиксит баг. После этого мне останется просто раскопать модели, что тоже легко автоматизируется. Я из китайских карт на 40к файлов доставал модели нужные.
0
28
6 лет назад
Отредактирован nvc123
0
у китайцев либо битая таблица либо mpq v1
и то и то открывается нормальными mpq архиваторами
а после пересохранения можно и xdep заюзать
любой кто захочет взломать твою карту взломает её
на крайний случай попросит помощи на этом же сайте
DracoL1ch, морозилка фигня
надо жидкий азот
и ты забыл про кислоту
AlexSan, ещё можно для защиты от скрипткиди вставляющих читы по гайдам
особенно в карте с сэйвлоадом
правда там как правило используется проверка хэндлов в коде а не протект всей карты
нуб не сломает
а про не станет тратить время на поиск этой проверки в карте
2 комментария удалено
1
28
6 лет назад
1
DracoL1ch, чувак, я вроде не на двач пришёл для получения таких ответов. Да, ты вытащишь модели, но не все это смогут сделать. + У меня в карте юзаются специальные коды, которые не должны попадать всем подряд в руки. Если считаете меня за дауна, неспособного в структуру файлов карты, то ок, спасибо.
0
16
6 лет назад
0
ну обычно такие и приходят с подобными вопросами, ибо вопрос повторяется каждую неделю с 2004 года и разжевано всё, что можно было разжевать. код через VexOpt и всё, карту потом портишь любой херней, которая её портит, от заголовков до битых старых форматов. Всё работает до того момента, пока не придет кто-то с шилом в заднице и не вывернет всё наизнанку. Смысл морочиться?
0
28
6 лет назад
0
DracoL1ch, смысл в том, чтобы ломануть мог не каждый желающий, а хотя бы каждый 10-й. Но хорошо, спасибо, я понял, что тут мне не пояснят и надо изучать самому.
0
26
6 лет назад
0
Aws:
У меня 95% импорта своего
У меня в карте юзаются специальные коды, которые не должны попадать всем подряд в руки
Да, все крысы! А когда какой-то разработчик видит в карте интересное техническое воплощение идеи, вдохновляется им, представляет другую или улучшенную реализацию этой идеи и решает посмотреть её устройство, но натыкается на защиту, то что?
Хотя, судя по заданному вопросу, тебе на них плевать.
0
28
6 лет назад
0
8gabriel8, в этом случае надо написать автору карты. Если он скажет, что не может заделиться, то тогда придется думать самому или искать варианты в сети. Я креплю защиты на карты еще с 2010 и часто она спасала от кражи ресурсов (как минимум в проекте Вара 2 довольно часто просили выложить модели, хотя там стоит обычная вексовская защита). Но недавно мне сообщили, что коды из моей новой карты легко ломануть (коды на различные визуальные плюшки, выдающиеся активным тестерам или за ивенты). Если их легко ломануть, то в этих плюшках не будет смысла, а они очень нравятся тестерам. Поэтому я искал подробное объяснение статей по защите 2016 года, так как мне кажется, что у китайцев стоит что-то вроде этого.
0
26
6 лет назад
Отредактирован 8gabriel8
0
в этом случае надо написать автору карты
Все мы знаем, как хорошо у подавляющего большинства людей язык подвешен.
Автор кампаний, которому помогаю, несколько раз задавал здесь вопросы, но ему почти никогда ничего толкового не отвечали, скорее уводили далеко в сторону от воплощения его идеи. Он чувствует себя здесь чрезвычайно отчуждённым.
В кампании «До Горького Конца» увидел отличный визуальный эффект для ролика в виде словно расплывающегося в данном случае красного бурления:
Решил посмотреть способ реализации, а карта защищена. Автор этой кампании около 6 лет корпел над ней, ему явно просто надоело и возиться с кампанией, и сама игра. А Кирляндия, который её перевёл, сообщил, что у него уже нет открытой версии, а если бы была, то он связан запретом автора выкладывать открытые карты и триггеры. Но сообщил, что насколько помнит, такой визуальный эффект создан приближением камеры очень близко скорее всего к красному туману (который у Ястребов и не даёт стрелять). Он, кстати, разделяет точку зрения, что защита карт - зло.
И это только мы двое с автором Эфирии пострадали от общения и запретов, а ещё общаюсь с массой разработчиков, которые не сидят на XGM, в лучшем случае редко-редко бывают. У них своя атмосфера, которую не хотят покидать. Когда видят какую-то интересную идею в карте, но обнаруживают, что она защищена, то просто не тратят своего времени на взлом, либо обращение к кому-то, а обходятся старыми и несвежими средствами, что в итоге не делает их проекты лучше.
Но знаешь, если эти люди занимаются чем-то стоящим и по меркам XGM эксклюзивным, то они не будут этого прятать, а наоборот, покажут, подарят, расскажут, научат и поделятся новыми идеями. За исключением, конечно же, таких проектов, когда всё должно быть представлено в релизе, например, тот проект с обновлёнными моделями для варика, который потом влился в Armies of Azeroth.
А ты говоришь, что у тебя много эксклюзивного контента, который мог бы многим пригодиться.
Честно, мне не нужен он. Но пару лет назад, когда не умел делать модели, не умел пользоваться ГУИшными триггерами, не понимал, как редактируется текстура или натягивается на модель, не знал многих тонкостей игры, вот тогда, наверное, что-то мне могло пригодится, чтобы быстрее во всём разобраться.
0
16
6 лет назад
0
слишком специфичная задача. сколько занимаюсь, а защитой карт никогда не интересовался. не думаю, что здесь вообще есть спецы по такому уровню.
0
32
6 лет назад
Отредактирован quq_CCCP
0
DracoL1ch, ну пусть берет и пакует модели или обьектные данные в отдельный архив с паролем а с помощью мемхака вызывает дллку для распаковки и функцию чтения мпк, но опять же то что архиваторами не доберутся до данных их не остановит выудят из оперативки или пойдут путем реверс инженеринга.
0
16
6 лет назад
0
ну нет, чтоб из оперативки читать, эти модели должны иметь такую стоимость на рынке. Да и даже с мемхаком - весь код-то на ладони
0
32
6 лет назад
0
DracoL1ch, байткоды не на руках, длл с шифрованием - ассемблер, разбираться придется долго, геморно - мамины читоры сразу сдуются, а те кто шарит разумеется сможет обойти.
0
28
6 лет назад
Отредактирован Aws
0
8gabriel8, это все понятно, но я выше объяснил, что в моей карты используются коды на визуальные плюшки (маски, спреи, крылья, насмешки, альтернативные скины). Все модели и скины у меня в миксе, а вот коды в карте. Хотелось бы коды защитить от взлома.
DracoL1ch, два года назад Ванек в своем блоге две статьи выложил, в которых я пытаюсь разобраться. Его кстати тогда тоже забили за то, что он развивает эту тему и никому защита не нужна.
Просто я сейчас проезжают кучу деревень, а у всех заборы. У кого-то шатающиеся ветхие, а у кого-то огромные железные. Через любой из этих заборов при желании можно пройти на участок. Но тогда вопрос: зачем люди их ставят? Разве изначальная мотивация "для красоты"?
2
24
6 лет назад
Отредактирован prog
2
Aws, коды в виде команд или генерируемый индивидуальный лоадкод?
Если коды фиксированные, то один из вариантов - запилить алгоритм необратимого хеширования вроде md5, можно и по проще, а в карте хранить только хеши от этих кодов и сравнивать с хешами от введенной игроком команды.
Тогда вскрытие карты не будет иметь никакого значения т.к. необратимый хеш превратить в правильный код это геморой которым никто не будет заниматься. Офк, работает только если коды передаются тестерам напрямую, а не получаются из карты. Главный недостаток фиксированных кодов - нужно приучать тестеров вводить их так чтобы никто не видел.
0
25
6 лет назад
Отредактирован sleep
0
защита карты - это рак
Защита карты - защита от неофф версий и читосов, которые вскрывают карту и делают триггеры уровня:
Игрок красный ввел в чат -1
действие: Игрок красный получил 999999999999 голды.
0
26
6 лет назад
0
sleep, это да, если мультиплеерная карта популярна. Но зачем защищать кампании?
0
28
6 лет назад
0
prog, коды в виде команд, которые выдаются индивидуально тестерам после того, как они подтверждают прохождение ивента скринами или реплеем (либо за другие заслуги). Я их уже приучил не вводить их в общий чат.
8gabriel8, так у меня не кампания, а мультиплеерная карта, которая использует микс с ресурсами.
4
24
6 лет назад
4
Aws, тогда мой вариант тебе идеально подходит, осталось решить какой необратимый хеш одновременно достаточно хорош и не слишком сложен в реализации. Я помню кто-то даже md5 на jass выкладывал тут на xgm, но, имхо, это изврат.
Принцип примерно такой:
  • игрок вводит команду вида "-code qwerty", где code это или универсальное ключевое слово для ввода кодов или уникальное для каждого кода, в зависимости от реализации, а qwerty это ключевое слово для конкретного кода
  • триггер отлавливает ввод первого ключевого слова "-code" и выделяет из строки второе ключевое слово "qwerty"
  • ключевое слово "qwerty" прогоняется через необратимую хеш-функцию и превращается в хеш "123456"
  • хеш "123456" сравнивается с записаным в карте хешем, циклом если команда "-сode" универсальная, или напрямую если у каждого кода есть своя команда
  • если хеш совпал, то выдаем плюшки, ну а если нет, то шлем нах
  • при попытке вскрыть карту кулхацкер обнаружит только "-code" и "123456", но не "qwerty", а значит не сможет правильно ввести команду в официальной версии карты
  • наличие алгоритма хеширования в карте не спасает кулхацкера т.к. алгоритм необоратимый и не может из "123456" получить "qwerty"
  • кулхацкер может поробовать подобрать ключевое слово, хеш которого совпадет с "123456", но если функция хеширования достаточно хороша, то он скорее начнет рвать волосы на жопе и визжа кататься по полу, чем у него это получится
Принятый ответ
0
28
6 лет назад
0
prog, огромное спасибо! Буду использовать этот вариант.
2
24
6 лет назад
2
Aws, пара уточнений, просто на всякий случай
  • обфускация кода не обязательна для этого метода, но дополнительно усложнит жизнь кулхацкерам своим наличием
  • не уверен годится ли варовский хеш строки для этих целей т.к. не помню одинаков ли он в разных сессиях и нет ли к нему готового обратного алгоритма где-то в сети
  • у каждого кода должно быть свое уникальное ключевое слово "qwerty", хеш которого не должен совпадать с хешами других ключевых слов (случается если хеш-функция не самая удачная)
  • настоящее имя использованого хеш-алгоритма не должно попасть в руки кулхацкеру, если это не что-то вроде md5 т.к. многие необратимые алгритмы по проще уже были взломаны и на них есть обратная функция которая подбирает по хешу подходящую строку
  • ключевое слово "qwerty" нигде не должно появляться в карте, ни в строках, ни в комментариях, ни в коде, ни выложеное из кучек говна в комнате главного босса
  • ключевое слово "qwerty" должно быть невозможно угадать по названию того с чем оно связано, в идеале это должен быть случайный набор букв
  • не забудь поменять все коды при переходе на новую систему, чтобы те кто их узнал не честным путем не могли продолжать ими пользоваться (я бы, например, после добавления новой системы кодов на какое-то время оставил старые коды в карте, но с предупреждением что они скоро перестанут работать)
  • все кулхацкеры могут слать потоки ненависти в мой адрес, мне какраз немного не хватает для захвата мира
Чтобы оставить комментарий, пожалуйста, войдите на сайт.