XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
RulezZz

offline
Опыт: 20
Активность:
Как сделать к своей карте специальную подпись, как у Blizzard?
Нужна помощь пацаны. Хочу на локальном сервере провести соревнования по одной карте. Когда ее вставляю в список то мне серер говорит что карта неимеет подписи как blizzard. Как сделать карте эту подпись? Или обмануть сервер pvpgn?
Аналог такой программы есть для старкрафт. А для варкрафтика есть что подобное?
Старый 09.11.2006, 15:44
p01nTT

offline
Опыт: 11,160
Активность:
Да наверно нельзя,а то бы началасть близзардомания ))
Старый 09.11.2006, 17:09
DioD

offline
Опыт: 45,134
Активность:
никто не знает как карты подписаны
Старый 09.11.2006, 17:17
Pozitron

offline
Опыт: 736
Активность:
Попробуй сделать так (хотя я не совсем уверен что будет работать): Возьми стандартную мели
карту такого же размера как твоя и удали у неё ландшаф, затем вставь свой. Отключи треггеры инициализации , вставь свои триггеры в новой директории. Имя автора карты не меняй и в настройках WE убери сохранение версии карты. Возможно будет работать.
Старый 22.11.2006, 08:47
zibada

offline
Опыт: отключен
никак.
там ассиметричное шифрование, т.е. ключ расшифровки (для проверки валидности подписи) известен, ключ зашифровки (для генерации таких подписей) известен только близзарду..

Цитата:
The strong digital signature consists of a SHA-1 digest with extremely simple padding, encrypted using straight RSA encryption. All known Blizzard keys are 2048-bit (strong) RSA keys; a default key is stored in Storm. Obviously, any RSA key may be used; in fact, an archive signed with the default key has never been seen in the wild. The strong digital signature is stored immediately after the archive, in the containing file. The entire archive (ArchiveSize? bytes, starting at ArchiveOffset? in the containing file) is hashed as a single block (there is one known exception to that algorithm, see below). In addition, a signature tail may be appended to the SHA-1 digest before it is finalized; this can be any arbitrary blob of data. The signature has the following format:

00h: char(4) Magic : Indicates the presence of a digital signature. Must be "NGIS" ("SIGN" backwards).
04h: int2048 Signature : The digital signature, stored in little-endian format.

When the Signature field is decrypted with the public key, and the resulting large integer is stored in little-endian order, it is structured as follows:

00h: byte Padding : Must be 0Bh.
01h: byte(235) Padding : Must be BBh.
ECh: byte(20) SHA-1 : SHA-1 digest of the archive, in standard SHA-1 byte order.
Старый 22.11.2006, 12:13
DioD

offline
Опыт: 45,134
Активность:
единственный способ это повесить хук и неким образом узнать что именно движок хотел получить от подписи карты, но для этого надо будет отслеживать всю выделеную програмой область памяти, то есть програма должна будет считать, сгенерировать тру ключ и сравнить, ну и этот тру ключь надо будет искать по всей области памяти.
собственно на это хватило моих знаний, может это бред, но может быть и правда.
Старый 23.11.2006, 13:06
zibada

offline
Опыт: отключен
подпись при расшифровке дает sha-1 хэш карты, написано же.
(взято из гугла по запросу mpq signature)
только сгенерить валидную подпись для модифицированной карты (чтобы при расшифровке открытым ключом получался требуемый хэш) тебе это знание ну никак не поможет...
Старый 23.11.2006, 17:23
DioD

offline
Опыт: 45,134
Активность:
вот сам подумай с чем движок вара сравнивает то что засунуто как подпись карты?
Старый 23.11.2006, 18:54
Aspid

offline
Опыт: 8,361
Активность:
Цитата:
вот сам подумай с чем движок вара сравнивает то что засунуто как подпись карты?

хех а ведь и правда. чтобы сравнить ключ он где-то должен храниться. правда по-моему игра не стоит свеч..мое имхо..
Старый 23.11.2006, 19:19
Zuriel

offline
Опыт: 7,909
Активность:
господа ламеры, вам же ясно сказано — ассиметричное шифрование!
http://ru.wikipedia.org/wiki/Асимметричный_шифр_(криптосистема)

короче говоря, то что ты вычилишь вытащишь и подсунешь — будет подходить только к той карте, из которой ты это вытащил.

или ты предлагаешь хук на близовский сервер повесить? )
Старый 23.11.2006, 19:35
Iron
Листовой
offline
Опыт: 24,427
Активность:
Ø, т.е. батлнет дешифрует совершенно по другому алгоритму чем игра?
Старый 23.11.2006, 21:09
zibada

offline
Опыт: отключен
курите матчасть, вон Ø даже ссылку кинул.
(и я еще одну кину на ту же тему)

еще раз.

подпись - это зашифрованный приватным ключом близзардов хэш подписываемой карты.
для проверки валидности подпись расшифровывается (клиентом, бнет-сервером или вообще любым желающим - не важно), и сравнивается с хэшом проверяемой карты на предмет совпадения.

который, очевидно, изменится при любой ее модификации - причем вроде хэшируется даже имя файла.
так что если ты изменишь хоть один байт в карте, ее подпись просто перестанет соответствовать ее содержимому, а сгенерить новую подпись, чтобы при расшифровке она давала новый, нужный хэш, ты не сможешь, т.к. для этого требуется знание приватного ключа, который, очевидно, нигде не записан.
Старый 23.11.2006, 21:35
Iron
Листовой
offline
Опыт: 24,427
Активность:
Цитата:
Общая идея криптографической системы с открытым ключом заключается в использовании при зашифровке сообщения такой функции от открытого ключа и сообщения(хеш-функции), которую алгоритмически очень трудно обратить, т.е. вычислить по значению функции её аргумент, даже зная значение ключа. Информация, предоставляемая секретным ключом должна существенно облегчить расшифровку закодированного сообщения.


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

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


Что я не так понял? Ибо если все так (в чем я сомневаюсь), то какие траблы? (в смысле если конкретно задаться целью забабахать такой алгоритмик)
Старый 23.11.2006, 21:53
Aspid

offline
Опыт: 8,361
Активность:
вывод - свистнуть у близов ключик=)
Цитата:
или ты предлагаешь хук на близовский сервер повесить? )

во во=)
Старый 23.11.2006, 22:06
Zuriel

offline
Опыт: 7,909
Активность:
Iron,
в данном случае все наборот.
алгоритм «цифровой подписи» — зашифровать можно только с помощью закрытого ключа, а расшифровать при помощи открытого.

принцип тот же.

а закрытый ключ находится в сейфе, в офисе близов, под охраной полка армейского спецназа и никогда оттуда не уходил.
Старый 23.11.2006, 22:12
Iron
Листовой
offline
Опыт: 24,427
Активность:
Ø, но обратить действия открытого ключа то можно? Блин, я запутался.
Старый 23.11.2006, 22:25
Zuriel

offline
Опыт: 7,909
Активность:
обратить действия открытого ключа нельзя. Ты запутался. :)
Старый 23.11.2006, 22:29
zibada

offline
Опыт: отключен
Цитата:
Итого имеем. Если найти и высчемить закрытый ключ (который, как мне показалось из ответа диода, можно выщемить отслеживая работу игры)


это сделать невозможно, потому что ключа там нет в принципе.
равно как и на серваках бнета.

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

короче, дальше ищите сами, читать тут базовый курс криптографии нет никакого желания.
Старый 23.11.2006, 22:39
Iron
Листовой
offline
Опыт: 24,427
Активность:
Ø, как же тогда делаются разнообразные крэки? Или же все такие тупые и не шифруют данным "чудо" методом? (т.е. типа посылаешь разработчику программы сое мыло + ID, а он прогоняет его через закрытый ключ и отдает тебе пароль, а ты вводишь его в регистрацию и открытый ключ его сверят с внутренним ID + тыое мыло) Имхо все-таки лазейка где-то есть.
Старый 23.11.2006, 22:43
zibada

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

по аналогии, ты можешь пропатчить свой варкрафт, например, чтобы он любую карту принимал как "подписанную".
вот только с "пропатчиванием" бнетовских серваков, чтобы они тоже твою карту считали подписанной, будет чуть сложнее =)
Старый 23.11.2006, 22:55
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

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

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 09:09.