Skip to forum content

You are not logged in. Please login or register.


forums.pvpgn.pro → [RU] Research & Development → Игра через меч в Dota (ExtraWork.dll)

Pages 1

You must login or register to post a reply

RSS topic feed

Posts: 67

1

Topic: Игра через меч в Dota (ExtraWork.dll)

Никак не получается сделать так, чтобы пользовательские карты работали через меч. Пробую в anongame.cpp просто заменить имя карты на

mapname = "Maps\\Download\\(10)DotA v6.80c.w3x";

Но игра не начинается, точно так же, как если файла карты не существует у одного из игроков.
Тем не менее, любые Blizzard карты, даже со сценарием, так работают ("Maps\FrozenThrone\Scenario\(6)BlizzardTD.w3x" или "Maps\(9)Riverrun.w3m").

Получается, в клиенте явно проверяется карта типа Blizzard. Кто может проверить, возможно ли это отключить через лоадер?

Добавлено: 06.08.2014 04:29

И ещё одна вещь, на которую можно обратить внимание - позволяет выполнять любой код на клиенте https://github.com/HarpyWar/pvpgn/issues/72
Это новые возможности без лаунчера (да и с ним тоже), если разрешить запуск функции ExtraWork, игнорируя подпись MPQ файла. Например если сделать это через модифицированный w3l.exe.

Do not ask for support in PM.

2

Re: Игра через меч в Dota (ExtraWork.dll)

HarpyWar, не знаю, увлекался (щас тоже) мапмейкингом, на одном сайте увидел эту тему. может поможет тебе понять процесс.

Добавлено: 06.08.2014 09:42

а еще вот

не считай за рекламу другого ресурса, просто информация на нем может понадобится

3

Re: Игра через меч в Dota (ExtraWork.dll)

Suite, по ссылкам как раз и идет речь про то, что приватный ключ подписи (и mpq, и карты) взломать практически невозможно. Поэтому необходимо ставить хук на клиента, чтобы убрать проверку подписи клиентом в нужный момент. Главный вопрос - как это сделать.

Do not ask for support in PM.

4

Re: Игра через меч в Dota (ExtraWork.dll)

HarpyWar Так если человек не может хостовать, он и не сможет smile
Или как то от сервера запускается хост?)

5

Re: Игра через меч в Dota (ExtraWork.dll)

В случае меча, конечно же, должен хостить бот ghost, на котором сделаны соответствующие изменения.

Do not ask for support in PM.

6

Re: Игра через меч в Dota (ExtraWork.dll)

HarpyWar wrote:

В случае меча, конечно же, должен хостить бот ghost, на котором сделаны соответствующие изменения.

Недавно посмотрел гитхаб, гхост уже подключен с /stats ом и прочими командами, только на луа?

7 (edited by Karaulov 08.08.2014 10:32)

Re: Игра через меч в Dota (ExtraWork.dll)

HarpyWar wrote:

Suite, по ссылкам как раз и идет речь про то, что приватный ключ подписи (и mpq, и карты) взломать практически невозможно. Поэтому необходимо ставить хук на клиента, чтобы убрать проверку подписи клиентом в нужный момент. Главный вопрос - как это сделать.

В game.dll+0x56793D лежит проверка карты, я смог обойти, теперь все карты которые в списке bnmaps работают.

Добавлено: 08.08.2014 09:31

Game.dll+56793D сюда 4 байта записать 0x90 0x90 0x90 0x90 и все карты будут доступны  big_smile

8

Re: Игра через меч в Dota (ExtraWork.dll)

Cub_bone wrote:

арты будут дос

Грац, долго сканировал память?)

Добавлено: 08.08.2014 11:53

Жаль что не узнаем генерацию ключа для карт :C

9

Re: Игра через меч в Dota (ExtraWork.dll)

Cub_bone у меня после замены 4х байт на этой позиции в game.dll, после нажатия "Начать игру" в батлнете, игра вылетает с ошибкой
http://forums.harpywar.com/extensions/hcs_image_uploader/uploads/0/6000/6478/thumb/p18uqfosmo1svp1ke36qa5s7om21.png

Suite, это ещё не протестировано с GHost, поэтому пока не готово. Поддержка PvPGN будет делается в этом боте https://github.com/Grief-Code/OHSystem/issues/279

Do not ask for support in PM.

10

Re: Игра через меч в Dota (ExtraWork.dll)

Какой у тебя адрес сервера, а то заходил на pgg.harpywar там нет кнопки начать игру

11

Re: Игра через меч в Dota (ExtraWork.dll)

Cub_bone, я ошибся, прописал 09 вместо 90. Так действительно можно выбрать любую карту из списка, включая кастом, отличный результат! Но сейчас это ничего не дает, кроме визуальной возможности выбора. Игра через меч все-равно не начинается, видимо там тоже действует проверка на подписанную карту.
Проверить это можно запустив второй экземпляр варкрафта, например через SandBoxie.

Добавлено: 08.08.2014 14:04

Для этого тестирования достаточно запустить pvpgn у себя на компе.
p.s. pgg сейчас неактуален, его держал хомяк, не знаю почему там нет этой кнопки. Она должна быть слева от меча.

Do not ask for support in PM.

12 (edited by Karaulov 08.08.2014 14:33)

Re: Игра через меч в Dota (ExtraWork.dll)

HarpyWar wrote:

Cub_bone у меня после замены 4х байт на этой позиции в game.dll, после нажатия "Начать игру" в батлнете, игра вылетает с ошибкой

Какой у тебя адрес сервера, а то заходил на pgg.harpywar там нет кнопки начать игру

Suite wrote:

долго сканировал память?)

За минуты 2 нашел нужный адресс  big_smile    (все что использовал: Cheat Engine (отладчик) , IDA PRO(слитая NOD32 версия) (HexRay плагин для получения псевдокода Game.dll ) , и немного знаний ассемблера и fdf файлов варкрафта(нашел текст ошибки в fdf файле и нашел ее в Game.dll) )

Добавлено: 08.08.2014 13:32

HarpyWar wrote:

Она должна быть слева от меча.

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

13

Re: Игра через меч в Dota (ExtraWork.dll)

Добавил на pgg.harpywar.com карту доты, она должна находится в Maps\Download\DotA v6.80c.w3x.
На обоих клиентах выбрать её и игра должна начаться, но не начинается.

http://forums.harpywar.com/extensions/hcs_image_uploader/uploads/0/6000/6482/thumb/p18uqj57lva0g1em31p0dvr08nm1.png

http://forums.harpywar.com/extensions/hcs_image_uploader/uploads/0/6000/6482/thumb/p18uqj5i8e175php1kib1gr91aub2.png

Do not ask for support in PM.

14 (edited by Karaulov 08.08.2014 16:13)

Re: Игра через меч в Dota (ExtraWork.dll)

А там вроде кланы по другому сделаны, может кидает за 1 и нельзя играть поэтому ?

Если бы 5х5 проверить... smile

может это уже сервер выбирает игрокам слоты?

15

Re: Игра через меч в Dota (ExtraWork.dll)

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

Добавлено: 08.08.2014 16:15

Количество слотов здесь не играет никакой роли.

Do not ask for support in PM.

16 (edited by Karaulov 08.08.2014 17:45)

Re: Игра через меч в Dota (ExtraWork.dll)

HarpyWar wrote:

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

Добавлено: 08.08.2014 16:15

Количество слотов здесь не играет никакой роли.

а если игроки попадут за 1 клан, то нет противников?? вот из-за этого думаю и выкидывает

или не может быть такого? smile

Добавлено: 08.08.2014 15:23

а нет, это из-за файла attributes , все еще что-то не пускает создавать карту))


Какой mpq редактор может добавить файл attributes в карту ?

17

Re: Игра через меч в Dota (ExtraWork.dll)

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

18 (edited by Suite 15.08.2014 11:50)

Re: Игра через меч в Dota (ExtraWork.dll)

нужен онлайн пейнт про который будет каждые n сек. менять формат, онлайн инфы (картинку gif вроде формате).
или хз

19

Re: Игра через меч в Dota (ExtraWork.dll)

XOM91K wrote:

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

Вполне возможно, я уже пытался такое сделать, но не смог найти генератор изображений. В c# это пару строк кода, а в c++ я не смог найти ничего)

20

Re: Игра через меч в Dota (ExtraWork.dll)

кстате вопрос: почему когда я пишу на канале "|cff00ff00TEST|r",  тест имеет обычный цвет (белый), ведь я написал в специальном теге (hex), и как это профиксить? Цветной текст работает, но не везде...

21

Re: Игра через меч в Dota (ExtraWork.dll)

Сейчас можно выводить баннеры по языку пользователя просто разложив файлы в папку языка в conf/i18n
Генерировать изображение баннера будет возможно через Lua (для него есть модуль ittner.github.io/lua-gd). Примеры и описание работы с Lua будут выложены на сайте pvpgn.pro

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

Do not ask for support in PM.

22

Re: Игра через меч в Dota (ExtraWork.dll)

а нагрузка будет гораздо выше чем на обычном пвпгн smile

Добавлено: 15.08.2014 14:42

но это того стоит.

23 (edited by Karaulov 16.08.2014 19:45)

Re: Игра через меч в Dota (ExtraWork.dll)

HarpyWar wrote:

Сейчас можно выводить баннеры по языку пользователя просто разложив файлы в папку языка в conf/i18n
Генерировать изображение баннера будет возможно через Lua (для него есть модуль ittner.github.io/lua-gd). Примеры и описание работы с Lua будут выложены на сайте pvpgn.pro

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

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

для c++ я нашел easypng но он только в png сохраняет, а как в mng я не знаю sad

24

Re: Игра через меч в Dota (ExtraWork.dll)

mng = png (not animation)

25

Re: Игра через меч в Dota (ExtraWork.dll)

В Lua модули подключаются очень просто. Например, достаточно положить в папку с pvpgn файл модуля (gd.dll), и в скрипте добавить строчку: require "gd". После этого уже можно использовать функции этого модуля в своем скрипте.
Не вижу смысла писать такие библиотеки на чистом Lua, тем более, что уже есть соответствующий модуль.

Добавлено: 18.08.2014 15:58

Cub_bone, есть продвижения по полному отключению проверки подписи для карт?

Do not ask for support in PM.

26

Re: Игра через меч в Dota (ExtraWork.dll)

Я больше не лазил там, сегодня еще посмотрю

27 (edited by ProZ 19.08.2014 02:54)

Re: Игра через меч в Dota (ExtraWork.dll)

ProZ wrote:
HarpyWar wrote:

Добавил на pgg.harpywar.com карту доты, она должна находится в Maps\Download\DotA v6.80c.w3x.
На обоих клиентах выбрать её и игра должна начаться, но не начинается.

http://forums.harpywar.com/extensions/hcs_image_uploader/uploads/0/6000/6482/thumb/p18uqj57lva0g1em31p0dvr08nm1.png

http://forums.harpywar.com/extensions/hcs_image_uploader/uploads/0/6000/6482/thumb/p18uqj5i8e175php1kib1gr91aub2.png

А если сделать меч с разбросом по сервер ботам где будет не хватать несколько человек для запуска. Скажем так быстрый поиск игры это реально вывести?  Вместо карт по развитию указать карты LOD DOTA IMBA , вместо количество игроков указать мод для поиска игры. Это правдо будет уже не лоадер но думаю система интересная.

28

Re: Игра через меч в Dota (ExtraWork.dll)

ProZ wrote:

А если сделать меч с разбросом по сервер ботам где будет не хватать несколько человек для запуска. Скажем так быстрый поиск игры это реально вывести?  Вместо карт по развитию указать карты LOD DOTA IMBA , вместо количество игроков указать мод для поиска игры. Это правдо будет уже не лоадер но думаю система интересная.

это все надо сканировать и обрабатывать smile малость это уже не будет обычный лаунчер \m/

29 (edited by Karaulov 19.08.2014 12:19)

Re: Игра через меч в Dota (ExtraWork.dll)

А в сохраненные в Worl Edito'е карты можно играть через меч?))

30

Re: Игра через меч в Dota (ExtraWork.dll)

Cub_bone wrote:

А в сохраненные в Worl Edito'е карты можно играть через меч?))

к сожелению нет smile
хотя один человек утверждал, что создал подпись для карты (или обошёл).

31

Re: Игра через меч в Dota (ExtraWork.dll)

Я нашел место в памяти , если там будет == 1 то игра запустится. Но 1 никак не получается туда записать, только если перехватывать функцию и заменить ее своей

32

Re: Игра через меч в Dota (ExtraWork.dll)

Cub_bone, можешь это сделать и выложить рабочий код, который изменяет это значение в памяти? Если это работает, то можно сделать совершенно новый и более удобный вариант входа в игру. Причем, без лаунчеров и лоадеров - SID_EXTRAWORK работает и его удалось повторить https://github.com/HarpyWar/pvpgn/issues/72

Do not ask for support in PM.

33 (edited by Suite 20.08.2014 18:50)

Re: Игра через меч в Dota (ExtraWork.dll)

по описанию выглядит интригующе smile сейчас затещу ...

Добавлено: 20.08.2014 19:13

у кого выходит ошибка msvcr120d.

Добавлено: 20.08.2014 19:44

к сожелению мне редист не помог. компилировать на студии не очень умею, использовал старый кодблок.
1 bnet screenshot.su/show.php?img=ac564 … bb9077.jpg
2 bnet screenshot.su/show.php?img=73ebe … cfbced.jpg
3 хз ошибка

Добавлено: 20.08.2014 19:47

заработало почемуто магически smile
на первом геймтуп 1 ленг 0 ошибка ленга
на втором геймтуп 2 ленг 8 мессаг VVVV какой то big_smile
на третьем эррор.

студия 2008 года если чо smile или я рак (руки кривые)

Добавлено: 20.08.2014 19:48

а блин не доконца же ведь прочитал issue smile а так крутая штука, я кончил )

Добавлено: 20.08.2014 20:46

Вообщем оно подгружает доп. мкью без всяких там лаунчеров лоадеров ?)

34 (edited by Karaulov 20.08.2014 22:20)

Re: Игра через меч в Dota (ExtraWork.dll)

так это же делает и проверка версии(IX86ver1.dll), при подключении в батлнет, загружается dll , ее можно разобрать и написать эмулятор или прокси + добавить свой код



- не получилось изменить архив(получилось но вар не принимает его), там нужен файл (signature) а я не знаю как его создать.

35

Re: Игра через меч в Dota (ExtraWork.dll)

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

36

Re: Игра через меч в Dota (ExtraWork.dll)

Cub_bone, ты же можешь написать лоадер, который будет выполнять ту же функцию? Потом уже можно добавить её в ExtraWork.dll.
Про то как подписать файл отписано по ссылке на гитхаб (через StormLib).

Добавлено: 25.08.2014 12:56

IX86ver1.mpq, по всей видимости, тоже можно изменять, но для этой цели лучше использовать ExtraWork - можно отправлять разные файлы, для разных целей, в разное время.

Suite, подпись не просто добавляет несколько байт, а изменяет полостью содержимое всего файла.

Do not ask for support in PM.

37

Re: Игра через меч в Dota (ExtraWork.dll)

нужно найти китайцев запереть их в подвал и кинуть диск с варкрафтом. может чтото получиться.

38 (edited by Karaulov 25.08.2014 16:43)

Re: Игра через меч в Dota (ExtraWork.dll)

HarpyWar wrote:

Cub_bone, ты же можешь написать лоадер, который будет выполнять ту же функцию? Потом уже можно добавить её в ExtraWork.dll.

можно на русском? )) а то после гуглпереводчика все не очень понятно.

Есть mpq в котором есть dll которое отправляется клиенту в любое время и там выполняется функция? Что добавить туда?

Где скачать этот mpq с dll ?

39

Re: Игра через меч в Dota (ExtraWork.dll)

mpq и есть дллка вроде

Добавлено: 25.08.2014 19:14

переименнованная в .mpq. или я не так понял (когда работал над .mix там переименовывали dll -> mix)

40

Re: Игра через меч в Dota (ExtraWork.dll)

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

Do not ask for support in PM.

41 (edited by Karaulov 25.08.2014 21:57)

Re: Игра через меч в Dota (ExtraWork.dll)

HarpyWar wrote:

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

Мне бы сам mpq архив с этой длл , исходник мне не нужен (сам достану)  smile

А в каком пакете отправлять extrawork.mpq ?

42

Re: Игра через меч в Dota (ExtraWork.dll)

https://github.com/xboi209/ExtraWork
Скоро там же будет утилита для подписания mpq архива.

Do not ask for support in PM.

43 (edited by Karaulov 08.09.2014 11:00)

Re: Игра через меч в Dota (ExtraWork.dll)

Так каким образом mpq c этой dll отправляется клиентам? dll я уже давно сам написал из псевдокода game.dll )))

44

Re: Игра через меч в Dota (ExtraWork.dll)

Насколько я понял выше, у тебя получилось полностью отключить проверку подписи, или все-таки нет? Можешь выложить код, который меняет память процесса?

Каким образом mpq с этой dll отправляется клиентам описано на bnetdocs и в issue (там же есть ссылка на коммит с измененным кодом).
Утилита для подписывания MPQ https://github.com/xboi209/MPQSigner

Код выполняется на стороне клиента, но не получается правильно вернуть структуру из DLL, поэтому от клиента ничего не приходит обратно на сервер https://github.com/xboi209/ExtraWork/issues/1. Спрашивал по теме на www.askdev.ru/question/22251/Как … adLibrary/, но результатов нет.

Do not ask for support in PM.

45 (edited by Karaulov 21.09.2014 11:08)

Re: Игра через меч в Dota (ExtraWork.dll)

Да нет у меня не было возможности проверить, я дошел только до этого:


typedef struct ExtraStruct
{
    short num1;
    short num2;
    int num3;
} * PExtraStruct;

void PrintExtraData( PExtraStruct x ) 
{
    char * tempc = new char[ 120 ];
    sprintf_s( tempc , 120 , "%d-%d-%d" , x->num1 , x->num2 , x->num3 );
    MessageBox( 0 , tempc , tempc , MB_OK );
    delete[ ] tempc;
}

BOOL __fastcall ExtraWork( PExtraStruct str, int notused ) 
{
    PrintExtraData( str );
    return TRUE;
}

но как я понял     int num3; это char * ?)

Значит точнее будет:

typedef struct ExtraStruct
{
    short num1;
    short num2;
    char num3[4096];   //в геймдлл именно такой размер
} * PExtraStruct;  

Так где прочитать как отправлять любую длл с этой функцией?

Короче вод кусок кода из иды (псевдокод)

 v5 = LoadLibraryA(LibFileName);
      v6 = v5;
      if ( v5 )
      {
        v7 = GetProcAddress(v5, "ExtraWork");
        if ( v7 )
        {
          memset(v3, 0, 0x1004u);
          *(_WORD *)v3 = 2;
          *((_WORD *)v3 + 1) = 4;
          *((_DWORD *)v3 + 1) = (unsigned __int16)sub_6F6EB768();
          ((void (__thiscall *)(void *))v7)(v3);
        }
      }

Добавлено: 21.09.2014 10:12

Так как отправлять mpq с этой длл я так и не нашел smile уже 3тий раз спрашиваю ))) Можно ссылку какую-нибудь на код отправки ?

46

Re: Игра через меч в Dota (ExtraWork.dll)

Во втором сообщении на https://github.com/HarpyWar/pvpgn/issues/72 написано же.
Если скомпилировать с Lua, то достаточно раскомментировать "--api.client_requiredwork(account.name, "IX86ExtraWork.mpq")"
Что именно не получается?

Do not ask for support in PM.

47 (edited by Karaulov 28.09.2014 00:47)

Re: Игра через меч в Dota (ExtraWork.dll)

Sep 27 23:44:30 [info ] pvpgn::bnetd::file_send: [116] sending file "IX86ExtraWork.mpq" ("files/IX86ExtraWork.mpq") of length 3407
Sep 27 23:44:30 [info ] pvpgn::bnetd::conn_destroy: [116] closed file connection


после отправки должны возвращаться данные? или это модифицированный extrawork.dll не работает?

48

Re: Игра через меч в Dota (ExtraWork.dll)

Должны возвращаться, но пока не возвращаются.

Код выполняется на стороне клиента, но не получается правильно вернуть структуру из DLL, поэтому от клиента ничего не приходит обратно на сервер https://github.com/xboi209/ExtraWork/issues/1. Спрашивал по теме на www.askdev.ru/question/22251/Как … adLibrary/, но результатов нет.

Do not ask for support in PM.

49

Re: Игра через меч в Dota (ExtraWork.dll)

Ааа т.е оригинала этой DLL нет?

Добавлено: 29.09.2014 00:20

3440000: loaded d:\Games\Comp\War3default2\IX86ver1.dll
Unloaded d:\Games\Comp\War3default2\IX86ver1.dll

но нет загрузки extrawork, dll не отправляется.

50

Re: Игра через меч в Dota (ExtraWork.dll)

xboi доделал ExtraWork для корректного возврата структуры https://github.com/xboi209/ExtraWork/issues/1
Я пока не тестировал, но он говорит работает для Starcraft. Нужно протестировать на Warcraft 3!

Do not ask for support in PM.

51

Re: Игра через меч в Dota (ExtraWork.dll)

Cub_bone, это работает с Warcraft 3!

Как повторить:
1. Скачать шаблон проекта ExtraWork DLL https://github.com/xboi209/ExtraWork
2. Изменить функцию ExtraWork в соответствии со своими нуждами. Например покажем message box:

BOOL __fastcall ExtraWork(EXTRAWORK *inStruct, int unused)
{
    // show messagebox
    int msgboxID = MessageBox(NULL, game.classname, "Greetings from the server!", MB_ICONWARNING | MB_CANCELTRYCONTINUE | MB_DEFBUTTON2);
...

3. Скачать MPQSigner и и запустить MPQSigner.cmd, который запакует IX86ExtraWork.dll в IX86ExtraWork.mpq и подпишет слабой подписью https://github.com/xboi209/MPQSigner/
4. Положить IX86ExtraWork.mpq в папку files (в PvPGN)
5. Скомпилировать PvPGN из последнего кода https://github.com/HarpyWar/pvpgn
6. Раскомментировать в lua\handle_user.lua:

if account.archtag == ARCHTAG_WINX86 then
    api.client_requiredwork(account.name, "IX86ExtraWork.mpq")
end

7. Запустить сервер и залогиниться. Должно появиться сообщение, и в логах:

pvpgn::bnetd::_client_extrawork: [700] Received EXTRAWORK packet with GameType: 2 and Length: 29 (IX86ExtraWork v1.0 by xboi209)

Чтобы сразу это проверить, я запаковал сервер с тестовым MPQ в архив extrawork_test_latest.zip. Достаточно запустить pvpgn.exe и войти на сервер.

Do not ask for support in PM.

52

Re: Игра через меч в Dota (ExtraWork.dll)

Я скачал скомпилированный проект в зип папке который,
http://plzgogame.com/picyou/upload_image/5cbdb53f676daee46357c22238d5b2bb.png
Вылазит это, после того, когда я жму "Ок" в окне после логина.

53

Re: Игра через меч в Dota (ExtraWork.dll)

XOM91K, в архиве pvpgn скомпилирован в debug режиме, там ассерты не пропускают русские символы. Можно нажать пропустить, или не использовать русский в логине/пароле (или где ты его использовал).

Do not ask for support in PM.

54 (edited by Karaulov 13.03.2015 23:34)

Re: Игра через меч в Dota (ExtraWork.dll)

Вернемся к "игре через меч" smile


Я смог отключить проверку карты , но этого не достаточно. Нужны реверсеры которые смогут найти функцию которая не дает стартовать с картой.  После обхода проверки карты, в локальной сети все карты стали отображаться как "blizzard". Но при создании игры, пишет "NETERROR_MAPAUTHFAILED". (эту ошибку я тоже смог обойти но только для локальной сети, игра через меч все еще не доступена)


функцию которую я перехватил что бы пометить все карты как "blizzard".

game.dll+0x1D9A0( const char* mapname , int unkn1, int * players , int unkn2 , BOOL * IsBlizzardMap )
после вызова функции IsBlizzardMap = 1 для того что бы карта была доступна в списке

Возможно это какое-то ограничение на сервере, я точно не могу сказать.

Перед тем как выкинуть появляется реплей с 2 строками:
  0:00 <Cubone> Left the game
  0:00 <Cubone2> Left the game
Скорее всего это из-за того что игроков кидает в одну тиму!!

Для тех кто хочет поковыряться в Game.dll даю самый полный псевдокод: rghost.ru/7QjvbgMRg

Вот файлик для теста, просто положить в папку с варкафтом:

55

Re: Игра через меч в Dota (ExtraWork.dll)

Cub_bone wrote:

Вернемся к "игре через меч" smile


Я смог отключить проверку карты , но этого не достаточно. Нужны реверсеры которые смогут найти функцию которая не дает стартовать с картой.  После обхода проверки карты, в локальной сети все карты стали отображаться как "blizzard". Но при создании игры, пишет "NETERROR_MAPAUTHFAILED". (эту ошибку я тоже смог обойти но только для локальной сети, игра через меч все еще не доступена)


функцию которую я перехватил что бы пометить все карты как "blizzard".

game.dll+0x1D9A0( const char* mapname , int unkn1, int * players , int unkn2 , BOOL * IsBlizzardMap )
после вызова функции IsBlizzardMap = 1 для того что бы карта была доступна в списке

Возможно это какое-то ограничение на сервере, я точно не могу сказать.

Перед тем как выкинуть появляется реплей с 2 строками:
  0:00 <Cubone> Left the game
  0:00 <Cubone2> Left the game
Скорее всего это из-за того что игроков кидает в одну тиму!!

Для тех кто хочет поковыряться в Game.dll даю самый полный псевдокод: rghost.ru/7QjvbgMRg

Вот файлик для теста, просто положить в папку с варкафтом:

https://code.google.com/p/vgce/wiki/stormDLL

251    int      __stdcall SFileAuthenticateArchive(HANDLE hArchive, int a2)     // (signature) file in archive

Maybe you should disable this function as well.

56 (edited by Karaulov 14.03.2015 15:41)

Re: Игра через меч в Dota (ExtraWork.dll)

Обход готов, уже сыграл в доту, работает.

Для установки просто переместить в папку с игрой

Но в доте попался за одну команду сам с собой))

Можно как-то научить ghost ботов создавать игру через меч?

57

Re: Игра через меч в Dota (ExtraWork.dll)

Cub_bone wrote:

Обход готов, уже сыграл в доту, работает.

Для установки просто переместить в папку с игрой

Но в доте попался за одну команду сам с собой))

Можно как-то научить ghost ботов создавать игру через меч?

Can you open source your work?

58 (edited by Karaulov 17.03.2015 11:24)

Re: Игра через меч в Dota (ExtraWork.dll)

xboi209, вот исходник:  (для того что бы не было вылетов, в Visual Studio нужно обязательно включить "Оптимизация: Максимальная скорость (/O2)".

http://forums.harpywar.com/misc.php?item=152

59

Re: Игра через меч в Dota (ExtraWork.dll)

уже прогрессы как я вижу ) а 5х5 не тестировали случайно?

60 (edited by Karaulov 26.03.2015 20:36)

Re: Игра через меч в Dota (ExtraWork.dll)

Не прогресс, а уже все работает как надо, только игроки попадаются за 1 тиму smile Полностью вырезал проверку карт, если 1х1 работает то и 5х5 будет. Но людей не нашлось для тестов

Да и для начала нужно заставить бота создавать игру в 5х5, иначе смысла никакого нет, создаст кто-нибудь с плохим каналом и во всех будут лаги

61

Re: Игра через меч в Dota (ExtraWork.dll)

Скажите а какого состояние разработки?

Cub_bone wrote:

Не прогресс, а уже все работает как надо, только игроки попадаются за 1 тиму smile Полностью вырезал проверку карт, если 1х1 работает то и 5х5 будет. Но людей не нашлось для тестов

Да и для начала нужно заставить бота создавать игру в 5х5, иначе смысла никакого нет, создаст кто-нибудь с плохим каналом и во всех будут лаги

можно ли уже 5на5

62 (edited by Dramacydal 16.12.2016 16:45)

Re: Игра через меч в Dota (ExtraWork.dll)

в д2 1.13с размер буфера 4096, а не 1024, как в https://github.com/pvpgn/ExtraWork
не проверял в других клиентах\версиях

http://i.imgur.com/e0Zb1Go.png

63

Re: Игра через меч в Dota (ExtraWork.dll)

HarpyWar,

Тема довольно старая и насколько известно, уже близзовский private key известен.
Значит ли это то, что можно подписать любую кастомную карту как близзовскую?
Подскажи пожалуйста если это возможно, как это сделать..

64

Re: Игра через меч в Dota (ExtraWork.dll)

Для подписи MPQ файлов используеся weak signature, ключ для неё подобран.
Для подписи карт используется strong signature, его невозможно подобрать. Соответственно, карты подписывать не получится.

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

Do not ask for support in PM.

65

Re: Игра через меч в Dota (ExtraWork.dll)

По сути карта, это тоже mpq-архив smile
У меня задумка, добавить в ладдер стандартные ладдерные карты, но немного переделанные, с античитом (мем хак).
Жаль, что карту так не подписать.
Ниже ссылка на weak signature.

https://liquipedia.net/starcraft/Blizza … rivate_Key

66

Re: Игра через меч в Dota (ExtraWork.dll)

Есть кто живой?
Кто-нибудь все-таки удачно настроил кастом карты через ладдер?
Есть какой-нибудь гайд о том, как это сделать?

67

Re: Игра через меч в Dota (ExtraWork.dll)

ну вон лтд вставили можно другую
https://www.youtube.com/watch?v=3gY_Q_YPoZo

Posts: 67

Pages 1

You must login or register to post a reply

Who now at forum

Currently view post: 0 guests, 0 registered users

forums.pvpgn.pro → [RU] Research & Development → Игра через меч в Dota (ExtraWork.dll)