Какие способы есть протекта мапы?(от редактирования) Можно ли поставить такую защиту, что бы карта работала только на своем боте?
За сплежер я знаю, его достаточно легко удалить в HxD блокноте, а по сильней можно что-то сделать, чем испортить заголовки?

Ладно обобщу все что тут сказано было:
Защитить можно, но чем сильнее защита, тем сложнее её писать.
Убить заголовок MPQ v2 можно, что не даст возможности некоторым ботам прочитать карту, но есть новый Storm, которому по зубам эта уловка.
От бота передать какие-то уникальные данные можно (хоть HCL, хоть от fakeplayer'a в чат написать), но есть 2 минуса:
  1. Защиту можно обойти просто изменив j файл
  2. Прослушка трафика и подгон бота под карту.
Способ prog (xgm.guru/p/wc3/212625?postid=392839#comment25), конечно, обеспечит должную защиту, но насколько тогда секретна карта, чтобы такое ставить?
`
ОЖИДАНИЕ РЕКЛАМЫ...
32
Trickster, от редактирования вовсе - нет, от запуска вне бота - можно, но это не так уж и просто, да и придется готовить хост бот под это дело.
25
Напиши в гугле "Варкрафт3 защита карты"
Можно ли поставить такую защиту, что бы карта работала только на своем боте?
Не слышал о подобном
32
Под свой бот - только если научишь читать бота определенный сбитый заголовок файла.
но зачем, если в вар и так полтора калеки играют
25
Fakov, схоронил. Карты хоть работают после такого патчинга?
32
защита это комплекс мер всегда
Бордер:
Fakov, схоронил. Карты хоть работают после такого патчинга?
Работали когда писал
28
бот может читать/писать кэш
на этом основано много систем взаимодействия с ботом
стата в доте
моды в картах для хостботов
сделай чтобы бот писал в кэш карты пароль
в карте хранишь хэш этого пароля
после старта карты высчитываешь хэш полученного пароля и сверяешь с тем что записан в карте
если совпали то значит карта на твоём боте
если пароля нету или не совпали то значит карта не на твоём боте
хэш функций в интернете дофига
18
nvc123
интересно как ты ботом засунешь инфу в карту
бот вообще то не может писать в кэш
28
UrsaBoss, поиграй на ботах с автомодами
в ту же доту например
18
nvc123:
UrsaBoss, поиграй на ботах с автомодами
в ту же доту например
это hcl, он не пишет в кэш
25
UrsaBoss,
интересно как ты ботом засунешь инфу в карту
Боты спамят в чат всякую херню
Я бы сделал так:
Игрок пишет в чат точное совпадение "Инфа"
Имя игрока = Имя бота
=> Делаем действия
28
Бордер, нормальные боты не спамят всякую херню
UrsaBoss, мне почему то казалось что он может и читать и писать
18
nvc123 чтобы писать ему нужен реальный игрок, типа fakeplayer.
Если попытаться подделать sync пакеты, то "подделываемый" игрок вылетит с ошибкой протокола или будет десинхрон
А hcl работает благодаря гандикапам и можно юзать это всего лишь 1 раз при старте игры (и то передавая лишь мизерный объем инфы).
Т.е бот перед стартом настраивает их нужным образом, карта читает их и ставит обратно на 100%
28
UrsaBoss, странно
по идее ведь кэш поддерживает синхронизацию локальных данных
18
nvc123:
UrsaBoss, странно
по идее ведь кэш поддерживает синхронизацию локальных данных
но бот это не игрок, и не может sync пакеты отправлять (если конечно у него нету fakeplayer)
28
т.е. подделывание пакетов синхронизации не должно вызывать десинков
UrsaBoss, так если в карте идёт синхронизация то он может перехватить их
в теории если перехватить sync пакеты от игрока 1 и заменить их содержимое
а также перехватить sync пакеты к игроку 1 и тоже заменить их содержимое
то игрок 1 будет считать что он получил локальные данные от других, а остальные игроки будет считать что локальные данные получили от игрока 1
ну на крайний случай можно пойти другим путём
карта генерит строку и пишет её в кэш
бот считывает - высчитывает ответ - фигачит его в чат
карта проверяет ответ и если он верен то значит это наш бот
20
nvc123,
HCL (автомод) - основан на подмене грандикапов (фор). Можно передать данные в карту раз и до 12 знаков (при условии забитости слотов)
W3MMD (статлиба) - работает на отлове Action пакета, которые вар отсылает при использовании SuncStored*. За Action пакетами вар следит ай ай ай как. Нарушив целостность таких пакетов приводит либо к вылету игрока (ошибка протокола) либо к десинику. Если есть желание подробнее узнать могу рассказать как все работает.
nvc123, если прям позарез надо отправить данные, то могу рассказать как это организовать (но надо хорошо понимать C++ и устройство бота)
24
сделай чтобы бот писал в кэш карты пароль
в карте хранишь хэш этого пароля
после старта карты высчитываешь хэш полученного пароля и сверяешь с тем что записан в карте
если совпали то значит карта на твоём боте
если пароля нету или не совпали то значит карта не на твоём боте
увы, никто не помешает просто отодрать от карты любую защиту и захостить результат, в отличии от ситуации когда нужно защитить пароль от сторонних глаз и помешать его вводу в официальной версии своей карты
18
prog защиты тут не причем, со штормами зезулы можно хостить любую карту (с любой защитой) на любом боте.
Здесь сам прикол чтобы скомпилить бота который отсылал бы карте HCL, а карта сверяла бы его. Если он нулевой или не тот что должен быть, то просто поражение всем игрокам. Это например хорошо защитило бы карту от хостинга на обычных дешевых ботах или ручного хостинга. А ботоводы не стали бы страдать подобной фигней и забили бы на карту с этой штукой
24
UrsaBoss, во-первых я обращался к nvc123. Во-вторых предложеный им способ я недавно предлагал при другой постановке задачи, там он решал поставленую задачу, тут не решает. В-третьих, если затолкать проверку HCL или информации передаваемой в карту любым другим способом, то это конечно остановит хомячков, не способных вскрыть карту и выпилить защиту, но автора вроде как что-то по серьезней интересовало, чем защита от хомячков.
18
prog во первых это не личные сообщения, во вторых бот не может писать в кэш без fakeplayer'a, в третьих больше 60% тех кто делает карты сейчас не знают как это делается, а оставшиеся 35% либо забивают на варкрафт, либо делают карты "для себя" и оставшиеся 5% знают как ломать карты, но им лень тратить время на варкрафт.
И если ты под "вскрыть карту" называешь открыть .j и вставить туда читпак по инструкции, то ты заблуждаешься.
24
Есть более-менее надежный, но сложный в реализации способ - часть ключевой игровой логики выносится в подгружаемую мемхаком dll - тогда простое выпиливание защиты уже ничего не даст т.к. карта перестанет правильно работать, а восстановить потеряный кусок уже не так просто, а дальше тем-же мемхаком делаем любую дичь, хоть связываемся с хостботом напрямую и спрашиваем он ли хостит эту карту, хоть проверяем гандикапы (принципиально важно чтобы это было не в jass коде и при попытке удалить удалялось только вместе с упомянутым выше куском игровой логики).
Минусы:
  • долго и сложно в реализации
  • требует мемхак и, соответственно, не работает в версиях вара под которые мемхака не существует
  • всеравно можно обойти если заморочиться декомпиляцией dll
Чтобы оставить комментарий, пожалуйста, войдите на сайт.