 |
Запуск WarFace без ИЦ - Warface Online - Онлайн-шутер Warface от Crytek |
29.11.2014, 15:40
|
#1
|
|
|
|
Разведчик
|
 Регистрация: 02.02.2014
 Сообщений: 27
 Популярность: 1833
 Сказал(а) спасибо: 1
Поблагодарили 9 раз(а) в 8 сообщениях
|
Запуск WarFace без ИЦ
не знаю пригодится ли кому.
для начала запуск WF без Игрового Центра для аккаунтов НЕМАЙЛРУ.
game.exe запускается ИЦ с параметрами -uid и -token которые отвечают за авторизацию в игре. рассмотрим откуда они берутся если аккаунт НЕМАЙЛРУ. ИЦ посылает следующие запросы:
первый запрос POST на адрес
Код:
https://authdl.mail.ru/ec.php?hint=GcAuth
Код:
<?xml version="1.0" encoding="UTF-8"?><GcAuth Username="пощта@немайл.ру" Password="пароль" ChannelId="0"/>
ответ приходит в виде XML. в элементе GcAuth ответа есть параметры Token, Uid и SessionKey
Token хранится ИЦ (чтобы не хранить пароль, но и не заставлять пользователя вводить его каждый раз) используя этот Token ИЦ может получить Uid и SessionKey заново (правда при этом обновляется и сам Token)
второй запрос POST на адрес
Код:
https://authdl.mail.ru/ec.php?hint=EnazaGetOrdersList
Код:
<?xml version="1.0" encoding="UTF-8"?><EnazaGetOrdersList Uid="Uid_из_предыдущего_ответа" SessionKey="SessionKey_из_предыдущего_ответа" UidType="3"/>
в ответе нет полезной информации, но запрос сделать необходимо.
третий запрос POST на адрес
Код:
https://authdl.mail.ru/sz.php?hint=AutoLogin
Код:
<?xml version="1.0" encoding="UTF-8"?><AutoLogin ProjectId="1177" SubProjectId="0" ShardId="1" GcToken="Token_из_первого_ответа"/>
ответ на этот запрос приходит в формате XML элемент AutoLogin которого содержит параметры PersId и Key. это и есть -uid и -token необходимые для запуска WF.
все запросы необходимо выполнять с User-Agent актуальным на сегодняшний день. по нему сервера авторизации похоже проверяют версию ИЦ. на сегодняшний день User-Agent это версия ИЦ после точки с дополнительным нулём.
ниже скрипт на VB. надо положить в папку с Game.exe и запустить с параметрами имя_скрипта.vbs почта@немайл.ру пароль
скрипт запустит game.exe для соединения с альфой (параметры --shard_id=0 +online_server s0.warface.ru) 0 альфа 1 браво 2 Чарли менять в обоих местах для других серверов.
работа скрипта проверялась под Win7 64бит про другие системы не скажу. скрипт совершенно не проверяет никакие ошибки :-)
Код:
Set objArgs = WScript.Arguments
Dim o, WFLogin, WFPassword, WFToken, WFUid, WFSessionKey, WFPersId, WFKey, wsh
WFLogin = objArgs.Item(0)
WFPassword = objArgs.Item(1)
Set o = CreateObject("Microsoft.XMLHTTP")
o.open "POST", "https://authdl.mail.ru/ec.php?hint=GcAuth", False
o.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
o.setRequestHeader "Content-Length", Len("<?xml version=""1.0"" encoding=""UTF-8""?><GcAuth Username="""&WFLogin&""" Password="""&WFPassword&""" ChannelId=""0""/>")
o.setRequestHeader "User-Agent","Downloader/4300"
o.send "<?xml version=""1.0"" encoding=""UTF-8""?><GcAuth Username="""&WFLogin&""" Password="""&WFPassword&""" ChannelId=""0""/>"
Set xmlParser = CreateObject("Msxml2.DOMDocument")
xmlParser.loadXML(o.responsetext)
WFToken = xmlParser.getElementsByTagName("GcAuth").Item(0).getAttribute("Token")
WFUid = xmlParser.getElementsByTagName("GcAuth").Item(0).getAttribute("Uid")
WFSessionKey = xmlParser.getElementsByTagName("GcAuth").Item(0).getAttribute("SessionKey")
o.open "POST", "https://authdl.mail.ru/ec.php?hint=EnazaGetOrdersList", False
o.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
o.setRequestHeader "Content-Length", Len("<?xml version=""1.0"" encoding=""UTF-8""?><EnazaGetOrdersList Uid="""&WFUid&""" SessionKey="""&WFSessionKey&""" UidType=""3""/>")
o.setRequestHeader "User-Agent","Downloader/4300"
o.send "<?xml version=""1.0"" encoding=""UTF-8""?><EnazaGetOrdersList Uid="""&WFUid&""" SessionKey="""&WFSessionKey&""" UidType=""3""/>"
o.open "POST", "https://authdl.mail.ru/sz.php?hint=AutoLogin", False
o.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
o.setRequestHeader "Content-Length", Len("<?xml version=""1.0"" encoding=""UTF-8""?><AutoLogin ProjectId=""1177"" SubProjectId=""0"" ShardId=""1"" GcToken="""&WFToken&"""/>")
o.setRequestHeader "User-Agent","Downloader/4300"
o.send "<?xml version=""1.0"" encoding=""UTF-8""?><AutoLogin ProjectId=""1177"" SubProjectId=""0"" ShardId=""1"" GcToken="""&WFToken&"""/>"
xmlParser.loadXML(o.responsetext)
WFPersid = xmlParser.getElementsByTagName("AutoLogin").Item(0).getAttribute("PersId")
WFKey = xmlParser.getElementsByTagName("AutoLogin").Item(0).getAttribute("Key")
Set wsh = WScript.CreateObject("WScript.Shell")
wsh.Exec("Game.exe --shard_id=0 +online_server s0.warface.ru -uid "&WFPersid&" -token "&WFKey&" ")
для почт майлру ИЦ применяет немного другой механизм авторизации. но его тоже раскопать можно. начало раскопок в форуме про PerfectWorld
|
|
|
2 пользователя(ей) сказали cпасибо:
|
|
29.11.2014, 21:09
|
#2
|
|
|
|
Разведчик
|
 Регистрация: 02.02.2014
 Сообщений: 27
 Популярность: 1833
 Сказал(а) спасибо: 1
Поблагодарили 9 раз(а) в 8 сообщениях
|
Re: Запуск WarFace без ИЦ
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
это случайно не те скрипты которые отправляют логи пас на почту тебе?
|
|
 |
|
 |
|
подозрения вполне понятны, но это не те скрипты.
я лучше продолжу. описание механизма авторизации теперь для МАЙЛРУ почт.
ИЦ делает около 8 запросов, но для получения -uid и -token хватает 4х
первый запрос POST на адрес
Код:
https://o2.mail.ru/token
Код:
client_id=gamecenter.mail.ru&grant_type=password&username=почта@майл.ру&password=пароль
ответ на первый запрос
Код:
{"expires_in":3600,"refresh_token":"0123456789abcdef0123456789abcdef7777888877778888","access_token":"abcdef0123456789abcdef01234567897777888877778888"}
из этого ответа понадобится access_token
второй запрос POST на адрес
Код:
https://authdl.mail.ru/ec.php?hint=MrPage2
Код:
<?xml version="1.0" encoding="UTF-8"?><MrPage2 SessionKey="abcdef0123456789abcdef01234567897777888877778888" Page="http://dl.mail.ru/robots.txt"/>
SessionKey="access_token"
ответ
Код:
<?xml version="1.0" encoding="UTF-8"?><MrPage2 Location="https://auth.mail.ru/cgi-bin/auth?Login=почта@майл.ру&agent=AA_aAAaaA0aaA00AAAAAaAAa&page=http%3A%2F%2Fdl.mail.ru%2Frobots.txt" ErrorCode="0" />
из этого ответа понадобится Location с амперсантами нормального вида, т.е.
Код:
https://auth.mail.ru/cgi-bin/auth?Login=почта@майл.ру&agent=AA_aAAaaA0aaA00AAAAAaAAa&page=http%3A%2F%2Fdl.mail.ru%2Frobots.txt
третий запрос GET на адрес Location из предыдущего ответа, т.е. на
Код:
https://auth.mail.ru/cgi-bin/auth?Login=почта@майл.ру&agent=AA_aAAaaA0aaA00AAAAAaAAa&page=http%3A%2F%2Fdl.mail.ru%2Frobots.txt
в куках ответа на этот запрос лежит Mpop вида
Код:
0123456789:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef012345:почта@майл.ру:
четвёртый запрос POST на адрес
Код:
https://authdl.mail.ru/sz.php?hint=AutoLogin
Код:
<?xml version="1.0" encoding="UTF-8"?><AutoLogin ProjectId="1177" SubProjectId="0" ShardId="1" Mpop="0123456789:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef012345:почта@майл.ру:"/>
ответ на 4й запрос
Код:
<?xml version="1.0" encoding="UTF-8"?><AutoLogin PersId="012345678" Key="0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef" />
-uid = PersId
-token = Key
можно запускать Game.exe
|
|
|
16.03.2016, 03:19
|
#3
|
|
|
|
Разведчик
|
 Регистрация: 01.11.2015
 Сообщений: 7
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Запуск WarFace без ИЦ
Всегда интересовало каким образом вы раскапываете такие данные для запуска, можно какую нибудь стать на эту тему?
|
|
|
16.03.2016, 07:45
|
#4
|
|
|
|
Разведчик
|
 Регистрация: 04.11.2011
 Сообщений: 1
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Запуск WarFace без ИЦ
|
|
|
17.03.2016, 04:59
|
#5
|
|
|
|
Разведчик
|
 Регистрация: 01.11.2015
 Сообщений: 7
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Запуск WarFace без ИЦ
кстати сейчас способ для запуска игры с почтой mail.ru еле пашет (запускается с ~4-го раза), хотя все данные вытягиваются по запросам, пишет в самой игре: "Ошибка авторизации"  кто-то знает в чем проблема?
Последний раз редактировалось wfplayer0; 17.03.2016 в 05:20.
|
|
|
03.04.2016, 10:31
|
#6
|
|
|
|
Разведчик
|
 Регистрация: 02.02.2014
 Сообщений: 27
 Популярность: 1833
 Сказал(а) спасибо: 1
Поблагодарили 9 раз(а) в 8 сообщениях
|
Re: Запуск WarFace без ИЦ
случайно заметил что в теме есть ответы.
давно не запускал скрипт на МАЙЛРУ почты. в данный момент (у меня) всё стопорится на
 |
Цитата: |
 |
|
|
|
|
|
|
|
третий запрос GET на адрес Location из предыдущего ответа, |
|
 |
|
 |
|
в общем надо заново копать :-)
по поводу того как копать ИЦ...
сначала надо понять куда ИЦ отправляет запросы. это можно сделать с помощью например wireshark (правда он покажет только IP адреса без имён) или можно использовать дополнительно связку tasklist | findstr GameCenter покажет PID_ИЦ netstat -no | findstr PID_ИЦ
имея IP адреса немного муторно вычислять DNS имена но возможно:
1. разлогинились и закрыли ИЦ
2. ipconfig /flushdns
3. запустили ИЦ
4. залогинились
5. ipconfig /displaydns
если параллельно запущен wireshark можно посмотреть какие DNS запросы происходят.
выяснив куда обращается ИЦ нужно выяснить что же он передаёт. поскольку там всё по https то содержимое пакетов втупую посмотреть нельзя - там будет всё зашифровано.
однако, майлру обычно не особо защищался от подмены каждой из сторон клиентской или серверной.
т.е. можно поднять у себя допустим апач или любой другой веб-сервер поднять на нём https и у себя а в файле hosts написать что o2.mail.ru (и все другие выясненные имена) это 127.0.0.1 (ну или адрес где поднят апач)
далее работа идёт последовательно
1. выясняем какой запрос ИЦ отправляет первым подставив ему свой апач вместо майлрушного сервера
2. пишем скрипт который отправляет такой же запрос на реальный майлрушный сервер - получаем ответ
3. заставляем свой апач отвечать ИЦ аналогично реальному серверу
4. выясняем какой запрос ИЦ отправляет вторым подставив ему свой апач вместо майлрушного сервера
5. ... в общем повторять пока скрипту с ммайлрушного сервера не придёт нужная для запуска информация :-)
Добавлено через 7 часов 48 минут
ИЦ выполняет этот запрос не передавая User-Agent чем ставит меня в тупик поскольку в данный момент я пишу на VBS используя MSXML2.ServerXMLHTTP или WinHttp.WinHttpRequest.5.1 у которых есть дефолтный User-Agent и который пока получалось только изменить, но никак не удалить :-)
Добавлено через 10 часов 41 минуту
разобрался вроде.
эти хитрецы при выполнении запроса
 |
Цитата: |
 |
|
|
|
|
|
|
|
третий запрос GET на адрес Location из предыдущего ответа |
|
 |
|
 |
|
редиректят на страницу для роботов, что и привело меня в смущение. вобщем алгоритм остался таким каким и был. вот скрипт он весь результат кладёт в файл wfm.log рядом с собой так что ложите в папку с правом на запись. скрипт не проверяет никакие ошибки.
Код:
Set objArgs = WScript.Arguments
Dim o, o1, WFLogin, WFPassword, WFMRaccess_token, WFMRMpop, WFMRUid, WFMRSessionKey, WFMRPersId, WFMRKey
WFLogin = objArgs.Item(0)
WFPassword = objArgs.Item(1)
Set objRegExp = CreateObject("VBScript.RegExp")
Set xmlParser = CreateObject("Msxml2.DOMDocument")
Set o = CreateObject("MSXML2.ServerXMLHTTP")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile ("wfm.log", 8, True)
'логин/пароль -> аксес-токен
o.open "POST", "https://o2.mail.ru/token", False
o.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
o.setRequestHeader "Content-Length", Len("client_id=gamecenter.mail.ru&grant_type=password&username="&WFLogin&"&password="&WFPassword)
o.setRequestHeader "User-Agent","Downloader/11870"
o.send "client_id=gamecenter.mail.ru&grant_type=password&username="&WFLogin&"&password="&WFPassword
objRegExp.Pattern = "access_token"":""(.+?)"""
WFMRaccess_token = objRegExp.Execute(o.responsetext).Item(0).Submatches.Item(0)
objTextFile.WriteLine(o.responsetext)
'юзеринфо - (!)надобность под вопросом
o.open "POST", "https://o2.mail.ru/userinfo", False
o.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
o.setRequestHeader "Content-Length", Len("client_id=gamecenter.mail.ru&access_token="&WFMRaccess_token)
o.setRequestHeader "User-Agent","Downloader/11870"
o.send "client_id=gamecenter.mail.ru&access_token="&WFMRaccess_token
objTextFile.WriteLine(o.responsetext)
'аксесс-токен -> ссылка для мпоп
o.open "POST", "https://authdl.mail.ru/ec.php?hint=MrPage2", False
o.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
o.setRequestHeader "Content-Length", Len("<?xml version=""1.0"" encoding=""UTF-8""?><MrPage2 SessionKey="""&WFMRaccess_token&""" Page=""http://dl.mail.ru/robots.txt""/>")
o.setRequestHeader "User-Agent","Downloader/11870"
o.send "<?xml version=""1.0"" encoding=""UTF-8""?><MrPage2 SessionKey="""&WFMRaccess_token&""" Page=""http://dl.mail.ru/robots.txt""/>"
xmlParser.loadXML(o.responsetext)
WFMRLocation = xmlParser.getElementsByTagName("MrPage2").Item(0).getAttribute("Location")
objTextFile.WriteLine(o.responsetext)
'ссылка для мпоп -> мпоп из куки на странице с редиректом
Set o1 = CreateObject("WinHttp.WinHttpRequest.5.1")
o1.open "GET", WFMRLocation, False
o1.setRequestHeader "User-Agent","Downloader/11870"
o1.Option(6) = False
o1.send
objRegExp.Pattern = "Mpop=(.+?);"
objTextFile.WriteLine(o1.GetAllResponseHeaders())
objTextFile.WriteLine(o1.responsetext)
WFMRMpop = objRegExp.Execute(o1.getResponseHeader("Set-Cookie")).Item(0).Submatches.Item(0)
'мпоп -> юид и сессионкей
o.open "POST", "https://authdl.mail.ru/ec.php?hint=Auth", False
o.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
o.setRequestHeader "Content-Length", Len("<?xml version=""1.0"" encoding=""UTF-8""?><Auth Cookie="""&WFMRMpop&""" ChannelId=""0""/>")
o.setRequestHeader "User-Agent","Downloader/11870"
o.send "<?xml version=""1.0"" encoding=""UTF-8""?><Auth Cookie="""&WFMRMpop&""" ChannelId=""0""/>"
xmlParser.loadXML(o.responsetext)
WFMRSessionKey = xmlParser.getElementsByTagName("Auth").Item(0).getAttribute("SessionKey")
WFMRUid = xmlParser.getElementsByTagName("Auth").Item(0).getAttribute("Uid")
objTextFile.WriteLine(o.responsetext)
'мпоп -> персайди
o.open "POST", "https://authdl.mail.ru/sz.php?hint=Auth", False
o.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
o.setRequestHeader "Content-Length", Len("<?xml version=""1.0"" encoding=""UTF-8""?><Auth ProjectId=""1177"" SubProjectId=""0"" ShardId=""0"" Mpop="""&WFMRMpop&"""/>")
o.setRequestHeader "User-Agent","Downloader/11870"
o.send "<?xml version=""1.0"" encoding=""UTF-8""?><Auth ProjectId=""1177"" SubProjectId=""0"" ShardId=""0"" Mpop="""&WFMRMpop&"""/>"
objTextFile.WriteLine(o.responsetext)
'хз зачем это тут
o.open "POST", "https://authdl.mail.ru/ec.php?hint=EnazaGetOrdersList", False
o.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
o.setRequestHeader "Content-Length", Len("<?xml version=""1.0"" encoding=""UTF-8""?><EnazaGetOrdersList Uid="""&WFMRUid&""" SessionKey="""&WFMRSessionKey&""" UidType=""0""/>")
o.setRequestHeader "User-Agent","Downloader/11870"
o.send "<?xml version=""1.0"" encoding=""UTF-8""?><EnazaGetOrdersList Uid="""&WFMRUid&""" SessionKey="""&WFMRSessionKey&""" UidType=""0""/>"
objTextFile.WriteLine(o.responsetext)
'мпоп -> уид и токен
o.open "POST", "https://authdl.mail.ru/sz.php?hint=AutoLogin", False
o.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
o.setRequestHeader "Content-Length", Len("<?xml version=""1.0"" encoding=""UTF-8""?><AutoLogin ProjectId=""1177"" SubProjectId=""0"" ShardId=""1"" Mpop="""&WFMRMpop&"""/>")
o.setRequestHeader "User-Agent","Downloader/11870"
o.send "<?xml version=""1.0"" encoding=""UTF-8""?><AutoLogin ProjectId=""1177"" SubProjectId=""0"" ShardId=""1"" Mpop="""&WFMRMpop&"""/>"
xmlParser.loadXML(o.responsetext)
WFMRPersid = xmlParser.getElementsByTagName("AutoLogin").Item(0).getAttribute("PersId")
WFMRKey = xmlParser.getElementsByTagName("AutoLogin").Item(0).getAttribute("Key")
objTextFile.WriteLine(o.responsetext)
objTextFile.Close
Последний раз редактировалось manx5; 03.04.2016 в 21:12.
Причина: Добавлено сообщение
|
|
|
04.04.2016, 17:47
|
#7
|
|
|
|
Разведчик
|
 Регистрация: 02.02.2014
 Сообщений: 27
 Популярность: 1833
 Сказал(а) спасибо: 1
Поблагодарили 9 раз(а) в 8 сообщениях
|
Re: Запуск WarFace без ИЦ
а будет интересно кому подключение к серверу варфейс без клиента?
|
|
|
05.04.2016, 16:44
|
#8
|
|
|
|
Разведчик
|
 Регистрация: 01.11.2015
 Сообщений: 7
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Запуск WarFace без ИЦ
мне больше интересно было как вы отследили какие параметры передаются непосредственно Game.exe. А запуск без ИЦ интересен т.к. есть необходимость автономно запускать ВФ. Если это можно сделать как-то с помощью ИЦ (возможно с помощью WinApi) буду очень благодарен подсказке.
|
|
|
05.04.2016, 17:11
|
#9
|
|
|
|
Разведчик
|
 Регистрация: 14.02.2016
 Сообщений: 2
 Популярность: 557
 Сказал(а) спасибо: 0
Поблагодарили 5 раз(а) в 3 сообщениях
|
Re: Запуск WarFace без ИЦ
|
|
|
05.04.2016, 17:41
|
#10
|
|
|
|
Разведчик
|
 Регистрация: 02.02.2014
 Сообщений: 27
 Популярность: 1833
 Сказал(а) спасибо: 1
Поблагодарили 9 раз(а) в 8 сообщениях
|
Re: Запуск WarFace без ИЦ
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
мне больше интересно было как вы отследили какие параметры передаются непосредственно Game.exe. А запуск без ИЦ интересен т.к. есть необходимость автономно запускать ВФ. Если это можно сделать как-то с помощью ИЦ (возможно с помощью WinApi) буду очень благодарен подсказке.
|
|
 |
|
 |
|
не совсем понял вопрос.
если имеется ввиду вот это
Код:
C:\GamesMailRu\Warface\Bin32Release\Game.exe --shard_id=0 +online_server s0.warface.ru -uid 267130688 -token 9021504b84672afb40fa69375dcc672a591f7181e58baf943deeb3620c3d8dce
то в диспетчере задач посмотрел
т.е. если надо запустить варфейс без ИЦ то в конец скрипта надо добавить
Код:
set WshShell = WScript.CreateObject("Wscript.Shell")
WshShell.Run "Game.exe --shard_id=0 +online_server s0.warface.ru -uid " & WFMRPersid & " -token " & WFMRKey
а сам скрипт положить в папку с Game.exe
скрипт запустить с параметрами [email protected] pass
и вы на альфе. s1.warface.ru браво s2.warface.ru чарли
ну и я повторю вопрос: вдруг для ваших нужд и не надо запускать варфейс-то а надо просто попасть на сервер?
|
|
|
05.04.2016, 19:02
|
#11
|
|
|
|
Разведчик
|
 Регистрация: 01.11.2015
 Сообщений: 7
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Запуск WarFace без ИЦ
|
|
|
05.04.2016, 19:29
|
#12
|
|
|
|
Разведчик
|
 Регистрация: 02.02.2014
 Сообщений: 27
 Популярность: 1833
 Сказал(а) спасибо: 1
Поблагодарили 9 раз(а) в 8 сообщениях
|
Re: Запуск WarFace без ИЦ
|
|
|
05.04.2016, 20:18
|
#13
|
|
|
|
Разведчик
|
 Регистрация: 01.11.2015
 Сообщений: 7
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Запуск WarFace без ИЦ
|
|
|
05.04.2016, 20:37
|
#14
|
|
|
|
Разведчик
|
 Регистрация: 02.02.2014
 Сообщений: 27
 Популярность: 1833
 Сказал(а) спасибо: 1
Поблагодарили 9 раз(а) в 8 сообщениях
|
Re: Запуск WarFace без ИЦ
|
|
|
06.04.2016, 20:42
|
#15
|
|
|
|
Фельдмаршал
|
 Регистрация: 22.02.2011
 Сообщений: 949
 Популярность: 34698
 Сказал(а) спасибо: 939
Поблагодарили 2,534 раз(а) в 911 сообщениях
|
Re: Запуск WarFace без ИЦ
Код на Delphi.
function Mail() - это для почты mail.
function NeMail() - это для любой другой почты.
Код:
function TForm1.Start(server,uid,token: String):Integer;
begin
ShellExecute (0, nil,
PChar(gPath+'\Bin32Release\Game.exe'),
PChar('--shard_id=0 +online_server '+server+' -uid '+uid+' -token '+token),
nil, SW_RESTORE);
end;
function Mail():Integer;
var
o,xmlparser:OleVariant;
accesstoken,str,location,mpop,uid,token:string;
a1,a2:Integer;
first,firstpost,twopost,autoLogin,server: string;
begin
//Memo1.Clear;
CoInitialize(0);
if Form1.ComboBox1.ItemIndex = 0 then server:='s0.warface.ru';
if Form1.ComboBox1.ItemIndex = 1 then server:='s1.warface.ru';
if Form1.ComboBox1.ItemIndex = 2 then server:='s2.warface.ru';
firstpost:= 'https://o2.mail.ru/token';
first:='client_id=gamecenter.mail.ru&grant_type=password&username='+Form1.Edit1.Text+'&password='+Form1.Edit2.Text;
twopost:='https://authdl.mail.ru/ec.php?hint=MrPage2';
autoLogin:='https://authdl.mail.ru/sz.php?hint=AutoLogin';
o:=CreateOleObject('Microsoft.XMLHTTP');
xmlparser:=CreateOleObject('Msxml2.DOMDocument');
o.open ('POST', firstpost, False);
o.setRequestHeader ('Content-Type', 'application/x-www-form-urlencoded');
o.setRequestHeader ('Content-Length',Length(first));
o.setRequestHeader('User-Agent','Downloader/4300');
o.send (first);
xmlParser.loadXML(o.responsetext);
accesstoken := copy (o.responsetext, (Length(o.responsetext)-49),48 );
if Pos('"error_code"',o.responsetext)<>0 then
begin
ShowMessage('Не верный логин\пароль');
end
else
begin
o.open ('POST', twopost, False);
o.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
o.setRequestHeader('Content-Length', Length('<?xml version="1.0" encoding="UTF-8"?><MrPage2 SessionKey="'+accesstoken+'" Page="http://dl.mail.ru/robots.txt"/>'));
o.setRequestHeader('User-Agent','Downloader/4300');
o.send ('<?xml version="1.0" encoding="UTF-8"?><MrPage2 SessionKey="'+accesstoken+'" Page="http://dl.mail.ru/robots.txt"/>');
xmlParser.loadXML(o.responsetext);
location := xmlParser.getElementsByTagName('MrPage2').Item(0).getAttribute('Location');
StringReplace (location, 'amp;', '&',[rfreplaceall,rfignorecase]);
o.open ('GET', location, false);
o.setRequestHeader ('User-Agent','Downloader/4300');
o.send;
str:=o.getResponseHeader ('Set-Cookie');
a1:= pos('Mpop=',str);
a2:= Pos('ru:;',str);
mpop:= copy (str, a1+5, a2-a1-2);
o.open ('POST',autoLogin , False);
o.setRequestHeader ('Content-Type', 'application/x-www-form-urlencoded');
o.setRequestHeader ('Content-Length', Length('<?xml version="1.0" encoding="UTF-8"?><AutoLogin ProjectId="1177" SubProjectId="0" ShardId="1" Mpop="'+mpop+'"/>'));
o.setRequestHeader ('User-Agent','Downloader/4300');
o.send ('<?xml version="1.0" encoding="UTF-8"?><AutoLogin ProjectId="1177" SubProjectId="0" ShardId="1" Mpop="'+mpop+'"/>');
if Pos('SZError Code="793"',o.responsetext)<>0 then
begin
ShowMessage('Вы забанены :(');
end else
begin
xmlParser.loadXML(o.responsetext);
uid := xmlParser.getElementsByTagName('AutoLogin').Item(0).getAttribute('PersId');
token := xmlParser.getElementsByTagName('AutoLogin').Item(0).getAttribute('Key');
Form1.Start(server,uid,token);
end;
end;
end;
//------------------------------------------------------------------------------
function NeMail():Integer;
var
o,xmlparser:OleVariant;
accesstoken,str,location:string;
a1,a2:Integer;
zapr,first,firstpost,twopost,server: string;
WFPersid,WFKey: string;
uid,token,WFSessionKey,first_two,autoLogin: string;
begin
if Form1.ComboBox1.ItemIndex = 0 then server:='s0.warface.ru';
if Form1.ComboBox1.ItemIndex = 1 then server:='s1.warface.ru';
if Form1.ComboBox1.ItemIndex = 2 then server:='s2.warface.ru';
zapr:='https://authdl.mail.ru/ec.php?hint=GcAuth';
first:='<?xml version="1.0" encoding="UTF-8"?><GcAuth Username="'+Form1.Edit1.Text+'" Password="'+Form1.Edit2.Text+'" ChannelId="0"/>';
CoInitialize(0);
o:=CreateOleObject('Microsoft.XMLHTTP');
xmlparser:=CreateOleObject('Msxml2.DOMDocument');
o.open ('POST',zapr , False);
o.setRequestHeader ('Content-Type', 'application/x-www-form-urlencoded');
o.setRequestHeader ('Content-Length',Length(first));
o.setRequestHeader ('User-Agent','Downloader/4300');
o.send(first);
xmlParser.loadXML(o.responsetext);
if Pos('GcAuth ErrorCode="411" ',o.responsetext)or Pos('GcAuth ErrorCode="418"',o.responsetext)<>0 then
begin
ShowMessage('Нерный логин\пароль');
end else
begin
token :=xmlParser.getElementsByTagName('GcAuth').Item(0).getAttribute('Token');
uid:= xmlParser.getElementsByTagName('GcAuth').Item(0).getAttribute('Uid');
WFSessionKey:= xmlParser.getElementsByTagName('GcAuth').Item(0).getAttribute('SessionKey') ;
first_two:='<?xml version="1.0" encoding="UTF-8"?><EnazaGetOrdersList Uid="'+token+'" SessionKey="'+WFSessionKey+'" UidType="3"/>';
o.open('POST', 'https://authdl.mail.ru/ec.php?hint=EnazaGetOrdersList', False);
o.setRequestHeader ('Content-Type', 'application/x-www-form-urlencoded');
o.setRequestHeader ('Content-Length', Length(first_two));
o.setRequestHeader ('User-Agent','Downloader/4300');
o.send(first_two);
autoLogin:='<?xml version="1.0" encoding="UTF-8"?><AutoLogin ProjectId="1177" SubProjectId="0" ShardId="1" GcToken="'+token+'"/>';
o.open ('POST', 'https://authdl.mail.ru/sz.php?hint=AutoLogin', False);
o.setRequestHeader ('Content-Type', 'application/x-www-form-urlencoded');
o.setRequestHeader ('Content-Length', Length(autoLogin));
o.setRequestHeader ('User-Agent','Downloader/4300');
o.send(autoLogin);
xmlParser.loadXML(o.responsetext);
if Pos('SZError Code="793"',o.responsetext)<>0 then
begin
ShowMessage('Вы забанены :(');
end
else
begin
WFPersid:= xmlParser.getElementsByTagName('AutoLogin').Item(0).getAttribute('PersId');
WFKey:= xmlParser.getElementsByTagName('AutoLogin').Item(0).getAttribute('Key');
xmlparser:=CreateOleObject('WScript.Shell');
Form1.Start(server,WFPersid,WFKey);
end;
end;
end;
//------------------------------------------------------------------------------
|
|
|
Опции темы |
|
Опции просмотра |
Линейный вид
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Похожие темы
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
[Помогите!] Запуск EXE
|
SWATrc |
Вопросы и ответы, обсуждения |
5 |
12.06.2014 22:34 |
[Помогите!] запуск из .bat
|
blad56 |
Вопросы и ответы, обсуждения |
5 |
01.08.2011 15:59 |
[Помогите!] запуск PWI
|
thomas4792 |
Общение и обсуждение Perfect World |
0 |
13.03.2011 17:48 |
Запуск PW
|
kirill=) |
Общение и обсуждение Perfect World |
11 |
14.12.2010 17:09 |
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 18:48.
|
 |