Warcraft 2 Жил, Живёт и будет жить!
об игре warcraft 2 Архив файлов Список ссылок Посетить Форум Почитать статейки F.A.Q. история warcraft 2 карты warcraft 2 турниры warcraft 2
Скачать игру бесплатно
скачать warcraft 2
WarCraft 2 COMBAT
(Warcraft II BNE 2.02+)
Актуальная версия: 4.6
(февраль 2020)
Совместимо с Windows XP/Vista/7/8/10

Боевой релиз, ~40 Мб
для игры по сети:
Английская версия
Русская версия

Полная версия, ~450 Мб
с музыкой и видео:
Полная английская версия
Полная русская версия
перевод от war2.ru на базе перевода от СПК

Другие версии и файлы
доступные для скачивания



Как подключиться и
играть в Warcraft 2 онлайн


Мы в социальных сетях:
Warcraft 2 вконтакте
Warcraft 2 в facebook

Для голосового общения:
Наша группа в Discord

Логин
Ник

Пароль


Потеряли пароль?

Нет своего аккаунта?
Зарегистрируйтесь!

Кто на сайте
 45: Гости
 0: Пользователи
 4103: Пользователи с регистрацией

Вы гость здесь.
+ регистрация

Последний посетитель:
arkanis: 4 Дней 4 ч. назад
TigerHZ: 14 Дней 9 ч. 32 м. назад
Starwalker: 14 Дней 17 ч. 56 м. назад
AgainstTheGrain: 21 Дней 9 ч. 48 м. назад
Smergik: 65 Дней 21 ч. 59 м. назад
Rio: 96 Дней 7 ч. 17 м. назад
Oragorn: 128 Дней 16 ч. 19 м. назад
2001: 172 Дней 1 ч. 4 м. назад
sfinx: 247 Дней 1 ч. 30 м. назад
tolsty: 281 Дней 18 ч. 7 м. назад
Dark_Master: 303 Дней 21 ч. 26 м. назад
KagaN: 310 Дней 23 ч. 30 м. назад
Радибор: 332 Дней 13 ч. 52 м. назад
Bru-PA: 363 Дней 13 ч. 40 м. назад

Поиск

/  Список форумов
   /  Флейм
/  Идеальная защита от мапхака, если б я писал варкрафт
Распечатать топик 
Идеальная защита от мапхака, если б я писал варкрафт

il Идеальная защита от мапхака, если б я писал варкрафт

Добрый Админ


Регистрация: 10.5.06
Сообщений: 2470
Откуда:


Выложу сюда свои мысли по тому, как бы я защищал игру наподобие варкрафта от мапхака, если бы я был ее разработчиком:
Не секрет, что владелец компьютера может залезть в память любого процесса на своем компьютере и подсмотреть любые данные. В том числе, данные обо всем, что "знает" его компьютер о других игроках.

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

Как это сделать:
1. Gолучается, самый простой вариант защиты от мапхака - толстый клиент.
Когда все игровые процессы выполняются на сервере, а на клиентах только картинка рисуется.
2. А самый правильный вариант если самим делать игру - получается с сервером-посредником:
каждый клиент передает данные о том что он делает не другим клиентам, а серверу. А сервер уже выдает клиентам только те данные о других клиентах, которые они в данный могут видеть. Фактически как вариант 1, только тонкий клиент.

А если делать обмен данными с защитой от мапхака без посредников то схема придумалась, но получается большой объем данных: Но теоретическое решение существует.
Упрощенная задача к которой сводится наша:
допустим, у нас игровое поле размером N клеток, мы хотим узнать у противника, что находится на k-й клетке. Т.е. мы ее разведываем. Надо чтобы противник:
1. не узнал что мы разведываем именно k-ю клетку. Иначе понятно что мы именно там находимся,
2. хотя бы в конце игры он узнал что k-ю клетку мы разведывали по праву. Т.е. что мы действительно там были или что-то туда кастанули, а не обманули его, чтобы он нам нам показал ту клетку, которую мы просмотреть не могли.
Мысль такая:
- генерируем пары ключей - N пар, по одной паре на каждую из клеток поля.
- По массиву закрытых ключей строим хеш и отправляем его противнику. В конце игры мы отправим ему этот массив закрытых ключей чтобы он с помощью этого хеша проверил что мы не жульничали а именно эти ключи использовали.
- чтобы узнать содержимое k-й клетки, отправляем ему открытый ключ для k-й клетки, но для какой именно клетки не говорим. Он этим ключом шифрует все N клеток и весь массив отправляет нам. Мы можем расшифровать только содержимое k-й клетки, поскольку наш закрытый ключ подходит только к ней. Остальные данные для нас - мусор.

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

Другой вариант: мы хотим узнать содержимое не одной, а сразу многих клеток:
Мы можем отправить сразу массив длины N открытых ключей от тех клеток которые узнать надо и мусор от тех клеток которые узнавать не надо. Массив в том же порядке, как и расположены клетки. Противник шифрует каждым ключом свою клетку и отправляет нам. Те к которым у нас есть ключи - мы расшифровываем, остальные игнорируем как мусор.
Таким образом, за 1 шаг имеем передачу N значений в одну сторону и N в другую.
В конце игры отдаем противнику изначальные закрытые ключи чтобы он убедился что мы узнали у него именно те клетки которые действительно имели право узнать.
Как-то примерно так.

Конечно, этот вариант гораздо хуже и затратнее по трафику, чем способ используемый в вар2: там передаются только изменения. Т.е, фактически, только действия игроков в данный момент.
В моем же алгоритме приходится передавать просто огромный объем данных: например для карты 256x256 приходится передавать 65536 зашифрованных пакетов, и это - на каждом цикле синхронизации! Не говоря уж про то, что для этого приходится производить 65536 операций шифрования. И как это оптимизировать. я не знаю.
Но теоретически, такой вариант есть.
А вы что думаете по этому поводу?

[ Редактировано il в 21.3.19 00:06 ]
» 21.3.19 01:00 Профайл Посетить веб-сайт
Распечатать топик 

Поиск

Ключевые слова:    
[ Расширенный поиск ]

Права

Вы не можете начинать темы.
Вы не можете редактировать свои сообщения.
Вы не можете создавать опросы.
Вы не можете вкладывать файлы в сообщения.
Вы не можете отвечать на сообщения.
Вы не можете удалять свои сообщения.
Вы не можете голосовать.

Статус Battle.Net
Расширенный статус server.war2.ru
Загружается...
backup.war2.ru
Загружается...

Победители турниров
hurt's Sea Tournaments, 7/7: Final
ExtaseyVityOragorn
hurt's Sea Tournaments, 6/7: One Strait
OragornARMilitarExtasey
hurt's Sea Tournaments, 5/7: River fork
ExtaseyARMilitarDoooda
hurt's Sea Tournaments, 4/7: High seas combat BNE
VityARMilitarNone
hurt's Sea Tournaments, 3/7: Atols
ExtaseyARMilitarDoooda
hurt's Sea Tournaments, 2/7: Spiral
ARMilitarExtaseyhoma
hurt's Sea Tournaments, 1/7: Cross the streams
fuckluckARMilitarOragorn
Elite Final 2023
ExtaseyVityfuckluck
Qualifiers (no) 2023
OragornNemoDar
Complete Smurfdom
RagnerExtaseyNik5et

Пожертвования
Спасибо:
FX - $80 (домен)
Zelya - (турниры)
lesnik
Dar - (турниры)
Kagan - (турниры)
vova1 - (хостинг)
tolsty - (хостинг)
Oragorn - (хостинг)
2007 год:
Spbwar - $400
Jade -$100
MasterKsa - $60
Lisak -$52
Cocka - $50
Konstkl - $50
Ldir - $50
Gadzila - $20
Feature -$10

Последние статьи
 · Почему я проиграл? ..
 · О версиях игры и се..
 · 2 halling
 · Деньги на новый сер..
 · Моральные нормы в и..

- Генерация страницы: 0.28 секунд -