Регистрация Главная Пользователи Все разделы прочитаны
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Запуск WarFace без ИЦ

-

Warface Online

- Онлайн-шутер Warface от Crytek

Ответ
 
Опции темы
Старый 09.04.2016, 23:43   #16
 Разведчик
Аватар для wfplayer0
 
wfplayer0 никому не известный тип
Регистрация: 01.11.2015
Сообщений: 7
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Запуск WarFace без ИЦ

Цитата:
Сообщение от Dimedrol1536Посмотреть сообщение
Код на 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;
//------------------------------------------------------------------------------

Во, а я то думал, как можно проверять на бан, эва как. только теперь это надо перегнать C#
  Ответить с цитированием
Старый 18.04.2016, 16:46   #17
 Разведчик
Аватар для WarPlayer
 
WarPlayer лучик света в грозовом небеWarPlayer лучик света в грозовом небеWarPlayer лучик света в грозовом небеWarPlayer лучик света в грозовом небеWarPlayer лучик света в грозовом небеWarPlayer лучик света в грозовом небеWarPlayer лучик света в грозовом небе
Регистрация: 02.01.2013
Сообщений: 11
Популярность: 882
Сказал(а) спасибо: 4
Поблагодарили 15 раз(а) в 4 сообщениях
 
По умолчанию Re: Запуск WarFace без ИЦ

Цитата:
Сообщение от Dimedrol1536Посмотреть сообщение
Код на 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;
//------------------------------------------------------------------------------

Спасибо большое за код. Правда он по началу у меня совсем не работал.

Изначально не работала ни та, ни та авторизация. Пошаманил так -
Код:
CreateOleObject('Microsoft.XMLHTTP')
заменил на
Код:
CreateOleObject('MSXML2.ServerXMLHTTP');
Заработала авторизация NeMail, а вот заставить работать Mail( которая собственно и нужна ) не выходит. Выдает ошибку на
Код:
  str:=o.getResponseHeader('Set-Cookie');
А именно пишет "Запрашиваемый заголовок не найден"

Не подскажешь чё за дичь?
  Ответить с цитированием
Старый 18.04.2016, 16:58   #18
 Фельдмаршал
Аватар для Dimedrol1536
 
Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(
Регистрация: 22.02.2011
Сообщений: 949
Популярность: 34698
Сказал(а) спасибо: 939
Поблагодарили 2,534 раз(а) в 911 сообщениях
Отправить сообщение для Dimedrol1536 с помощью ICQ Отправить сообщение для Dimedrol1536 с помощью Skype™
 
По умолчанию Re: Запуск WarFace без ИЦ

Цитата:
Не подскажешь чё за дичь?

Боюсь я не знаю. (
  Ответить с цитированием
Старый 18.04.2016, 17:03   #19
 Разведчик
Аватар для WarPlayer
 
WarPlayer лучик света в грозовом небеWarPlayer лучик света в грозовом небеWarPlayer лучик света в грозовом небеWarPlayer лучик света в грозовом небеWarPlayer лучик света в грозовом небеWarPlayer лучик света в грозовом небеWarPlayer лучик света в грозовом небе
Регистрация: 02.01.2013
Сообщений: 11
Популярность: 882
Сказал(а) спасибо: 4
Поблагодарили 15 раз(а) в 4 сообщениях
 
По умолчанию Re: Запуск WarFace без ИЦ

Тоскливо(

Добавлено через 1 час 31 минуту
Всё таки удалось решить этот голимый вопрос.. Нужно сооружать все запросы из фикса, который давал ТС.

Последний раз редактировалось WarPlayer; 18.04.2016 в 18:34. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 19.04.2016, 03:23   #20
 Фельдмаршал
Аватар для Dimedrol1536
 
Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(Dimedrol1536 сломал счётчик популярности :(
Регистрация: 22.02.2011
Сообщений: 949
Популярность: 34698
Сказал(а) спасибо: 939
Поблагодарили 2,534 раз(а) в 911 сообщениях
Отправить сообщение для Dimedrol1536 с помощью ICQ Отправить сообщение для Dimedrol1536 с помощью Skype™
 
По умолчанию Re: Запуск WarFace без ИЦ

Цитата:
Всё таки удалось решить этот голимый вопрос..

А теперь делись им.
  Ответить с цитированием
Старый 19.04.2016, 08:41   #21
 Разведчик
Аватар для pihar79
 
pihar79 никому не известный тип
Регистрация: 19.03.2016
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Запуск WarFace без ИЦ

Ребятки может на C# код скинете, вместе помозгуем
  Ответить с цитированием
Старый 19.04.2016, 08:42   #22
 Разведчик
Аватар для WarPlayer
 
WarPlayer лучик света в грозовом небеWarPlayer лучик света в грозовом небеWarPlayer лучик света в грозовом небеWarPlayer лучик света в грозовом небеWarPlayer лучик света в грозовом небеWarPlayer лучик света в грозовом небеWarPlayer лучик света в грозовом небе
Регистрация: 02.01.2013
Сообщений: 11
Популярность: 882
Сказал(а) спасибо: 4
Поблагодарили 15 раз(а) в 4 сообщениях
 
По умолчанию Re: Запуск WarFace без ИЦ

Цитата:
Сообщение от Dimedrol1536Посмотреть сообщение
А теперь делись им.

Лови =)

Код:
function Mail():Integer;
var
  o, o1, 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';

  o:=CreateOleObject('MSXML2.ServerXMLHTTP');
  xmlparser:=CreateOleObject('Msxml2.DOMDocument');

  o.open('POST', 'https://o2.mail.ru/token', False);
  o.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  o.setRequestHeader('Content-Length', Length('client_id=gamecenter.mail.ru&grant_type=password&username='+Form1.Edit1.Text+'&password='));
  o.setRequestHeader('User-Agent','Downloader/11870');
  o.send('client_id=gamecenter.mail.ru&grant_type=password&username='+Form1.Edit1.Text+'&password='+Form1.Edit2.Text);

  xmlParser.loadXML(o.responsetext);
  accesstoken := copy (o.responsetext, (Length(o.responsetext)-49),48 );
  ShowMessage(accesstoken);

  o.open('POST', 'https://o2.mail.ru/userinfo', False);
  o.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  o.setRequestHeader('Content-Length', Length('client_id=gamecenter.mail.ru&access_token='+accesstoken));
  o.setRequestHeader('User-Agent','Downloader/11870');
  o.send('client_id=gamecenter.mail.ru&access_token='+accesstoken);

  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', Length('<?xml version=''1.0'' encoding=''UTF-8''?><MrPage2 SessionKey='''+accesstoken+''' Page=''http://dl.mail.ru/robots.txt''/>'));
  o.setRequestHeader('User-Agent','Downloader/11870');
  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]);

  ShowMessage(location);

  o1:= CreateOleObject('WinHttp.WinHttpRequest.5.1');
  o1.open('GET', location, False);
  o1.setRequestHeader('User-Agent','Downloader/11870');
  o1.Option(6):= False;
  o1.send;

  str:=o1.getResponseHeader ('Set-Cookie');
  a1:= pos('Mpop=',str);
  a2:= Pos('ru:;',str);
  mpop:= copy (str, a1+5, a2-a1-2);

  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', Length('<?xml version=''1.0'' encoding=''UTF-8''?><Auth Cookie='''+mpop+''' ChannelId=''0''/>'));
  o.setRequestHeader('User-Agent','Downloader/11870');
  o.send('<?xml version=''1.0'' encoding=''UTF-8''?><Auth Cookie='''+mpop+''' ChannelId=''0''/>');


  xmlParser.loadXML(o.responsetext);
  uid := xmlParser.getElementsByTagName('Auth').Item(0).getAttribute('SessionKey');
  token := xmlParser.getElementsByTagName('Auth').Item(0).getAttribute('Uid');

  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('<?xml version=''1.0'' encoding=''UTF-8''?><EnazaGetOrdersList Uid='''+uid+''' SessionKey='''+token+''' UidType=''0''/>'));
  o.setRequestHeader('User-Agent','Downloader/11870');
  o.send('<?xml version=''1.0'' encoding=''UTF-8''?><EnazaGetOrdersList Uid='''+uid+''' SessionKey='''+token+''' UidType=''0''/>');

  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('<?xml version=''1.0'' encoding=''UTF-8''?><AutoLogin ProjectId=''1177'' SubProjectId=''0'' ShardId=''1'' Mpop='''+mpop+'''/>'));
  o.setRequestHeader('User-Agent','Downloader/11870');
  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');

      ShowMessage(uid);
      ShowMessage(token);

      ShellExecute (0, nil,
        PChar('E:\GamesMailRu\Warface\Bin32Release\Game.exe'),
        PChar('--shard_id=0 +online_server '+server+' -uid '+uid+' -token '+token),
      nil, SW_RESTORE);
  end;
end;
с си не особо знаком, точнее даже софта нет нужного. Дак бы может чё нить поковырял.
  Ответить с цитированием
Старый 13.05.2016, 18:25   #23
 Разведчик
Аватар для manx5
 
manx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражания
Регистрация: 02.02.2014
Сообщений: 27
Популярность: 1833
Сказал(а) спасибо: 1
Поблагодарили 9 раз(а) в 8 сообщениях
 
По умолчанию Re: Запуск WarFace без ИЦ

я более получаса писал ответ в тему а оно не сохранилось!!!

game.exe работает соединяясь на порт 5222 tcp выбранного сервера варфейса по протоколу обмена xml сообщениями с элементами джаббера и с заголовком идентификатором (4 байта AD DE ED FD) и длиной посылаемого xml сообщения. однако этот заголовок можно не отсылать и посылать просто xml сообщения.
после получения уида и токена соединяемся на порт 5222 одного из серверов (например телнетом или сокетом вашего любимого языка программирования)

посылаем приветствие
Цитата:
<?xml version='1.0'?><stream:stream to='warface' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' xml:lang='en' version='1.0'>

в ответ получаем
Цитата:
<?xml version='1.0'?><stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='0123456789' from='warface' version='1.0' xml:lang='en'>
<stream:features>
<starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/>
<mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>
<mechanism>WARFACE</mechanism>
</mechanisms>
</stream:features>

это два сообщения ответ на приветствие и описание фич потока xmpp поддержка TLS и механизма авторизации WARFACE.

game.exe после этого начинает TLS (однако можно работать и без TLS)
кому интересно более точно эмулировать game.exe советую почитать про TLS в джабере и найти какой нибудь модуль опенсорсного джабер-клиента под свой язык программирования.

так как можно TLS не использовать то перейдём сразу к авторизации по механизму WARFACE который представляет из себя base64 текстовой строки #00 + токен + #00 + уид
например посылаем
Цитата:
<auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='WARFACE'>AGJiMGRhMGI5Mzc2OTEyYzkyZTE2NW FjMjVjMjhmZmQ3NTNlM2JkNjFlODc2MTBkYzlmNDQ4ZmE3NDQz YWU1MDgAMTIzNDU2Nzg5</auth>

это base64 для строки #00 + bb0da0b9376912c92e165ac25c28ffd753e3bd61e87610dc9f 448fa7443ae508 + #00 + 123456789

#00 это символ ASCII 0 т.е. chr(0) для VBS или "\000" для lua

в случае удачной авторизации получаем
Цитата:
<success xmlns='urn:ietf:params:xml:ns:xmpp-sasl'/>

далее заново приветствие
Цитата:
<?xml version='1.0'?><stream:stream to='warface' xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' xml:lang='en' version='1.0'>

в ответ
Цитата:
<?xml version='1.0'?><stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='1234567890' from='warface' version='1.0' xml:lang='en'>
<stream:features>
<bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'/>
<session xmlns='urn:ietf:params:xml:ns:xmpp-session'/>
</stream:features>

это предложение забиндиться (понятие из джабера привязать ресурс к потоку) и создать сессию

биндимся
Цитата:
<iq id='uid00000001' type='set' from='уид@warface/GameClient' xmlns='jabber:client'><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'><resource>GameClient</resource></bind></iq>

ответ при удачном бинде
Цитата:
<iq id='uid00000001' type='result'><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'><jid>уид@warface/GameClient</jid></bind></iq>

создаём сессию
Цитата:
<iq id='uid00000002' type='set' from='уид@warface/GameClient' xmlns='jabber:client'><session xmlns='urn:ietf:params:xml:ns:xmpp-session'/></iq>

если удано ответ
Цитата:
<iq type='result' to='уид@warface/GameClient' id='uid00000002' xmlns='jabber:client'><session xmlns='urn:ietf:params:xml:ns:xmpp-session'/></iq>

iq это запросы к серверу id в них инкрементируются чтобы различать какой result на какой set.

ещё кудато (!?) логинимся
Цитата:
<iq to='k01.warface' id='uid00000003' type='get' from='уид@warface/GameClient' xmlns='jabber:client'><query xmlns='urn:cryonline:k01'><account login='уид' password='токен'/></query></iq>

в ответ на это получаем свой активный внутренний токен который вроде бы будет использоваться в дальнейшем и список каналов pve и pvp, а сейчас возможно даже спецопераций
Цитата:
<iq from='k01.warface' to='уид@warface/GameClient' id='uid00000003' type='result'><query xmlns='urn:cryonline:k01'><account user='уид' active_token='$WF_уид_20150725164517_odQcBoKpJNyTykaa' survival_lb_enabled='1'><masterservers><server
...
</server></masterservers></account></query></iq>

если кто дойдёт до этого места покажите как там сейчас :-)
  Ответить с цитированием
Пользователь сказал cпасибо:
WarPlayer (17.05.2016)
Старый 17.05.2016, 01:05   #24
 Разведчик
Аватар для WarPlayer
 
WarPlayer лучик света в грозовом небеWarPlayer лучик света в грозовом небеWarPlayer лучик света в грозовом небеWarPlayer лучик света в грозовом небеWarPlayer лучик света в грозовом небеWarPlayer лучик света в грозовом небеWarPlayer лучик света в грозовом небе
Регистрация: 02.01.2013
Сообщений: 11
Популярность: 882
Сказал(а) спасибо: 4
Поблагодарили 15 раз(а) в 4 сообщениях
 
По умолчанию Re: Запуск WarFace без ИЦ

Даже 1 ответа получить не смог..

Мои действие:
1. Открыл соединение на s0.warface.ru с портом 5222
2. Отправил 1 приветствие - получил "*Þíþ¥"

Я бы очень хотел поковырятся. Было бы очень очень круто, если бы бы на любом языке примерчик живой епанул
  Ответить с цитированием
Старый 17.05.2016, 20:01   #25
 Разведчик
Аватар для manx5
 
manx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражания
Регистрация: 02.02.2014
Сообщений: 27
Популярность: 1833
Сказал(а) спасибо: 1
Поблагодарили 9 раз(а) в 8 сообщениях
 
По умолчанию Re: Запуск WarFace без ИЦ

Цитата:
Сообщение от WarPlayerПосмотреть сообщение
Даже 1 ответа получить не смог..

Мои действие:
1. Открыл соединение на s0.warface.ru с портом 5222
2. Отправил 1 приветствие - получил "*Þíþ¥"

ага понятно.
это связано с заголовком. тут зависит от того чем коннектишься и как читаешь полученный буфер.
например если сделать telnet s0.warface.ru 5222 и послать туда 1 "приветсвие" то в ответ можно увидеть
Цитата:
н▐э■е<?xml version='1.0'?><stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='3479969228' from='warface' version='1.0' xml:lang='en'>н▐э<stream:features><starttls xmlns='urn:ietf:params:xml:ns:xmpp-tls'/><mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><mechanism>WARFACE</mechanism></mechanisms></stream:features>

остановлюсь подробнее на заголовке. сервер всегда его присылает. полистал старые скрипты он длинной 12 байт. 4 байта что-то типа идентификатора потом длинна. потом нули. т.е. если ты читал и выводил полученный буфер чем-то вроде pchar (или как там правильно называется строковый тип, ноль в котором считается окончанием его) то неудивительно что он выдал тебе 5 символов.
т.е. на самом деле в цитате выше заголовок н▐э■е #0 #0 #0 #0 #0 #0 #0 просто телнет непечатные символы не показывает.

тут следует поступить так: считать первые 12 байт при событии онресив на сокете (правда не заню на чём ты пишешь и какие компоненты объекты для работы с сокетами используешь но наверняка что-то есть подобное) 4 байта выкинуть а из оставшихся 8 получить длинну хотя думаю врядли сообщение xml будет длинной несколько мегабайт поэтому хватит и первых трёх наверное 1й+2й*256+3й*65536

и в соответствии с длиннной считать нужное количество байт из сокета - это и будет нужное xml сообщение.

кстати обнаружил что буржуи уже год как пишут бота для евро-варфейса с открытыми исходниками. не знаю можно ли тут постить ссылки на такие ресурсы, но если в гугле поискать фразу "<mechanism>WARFACE</mechanism>" (в кавычках) то будет три ссылки одна сюда и две к буржуям на гитхаб к исходникам и на форум где пишут.
  Ответить с цитированием
Старый 10.06.2016, 19:37   #26
 Разведчик
Аватар для wfplayer0
 
wfplayer0 никому не известный тип
Регистрация: 01.11.2015
Сообщений: 7
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Запуск WarFace без ИЦ

Цитата:
Сообщение от WarPlayerПосмотреть сообщение
Лови =)

Код:
function Mail():Integer;
var
  o, o1, 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';

  o:=CreateOleObject('MSXML2.ServerXMLHTTP');
  xmlparser:=CreateOleObject('Msxml2.DOMDocument');

  o.open('POST', 'https://o2.mail.ru/token', False);
  o.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  o.setRequestHeader('Content-Length', Length('client_id=gamecenter.mail.ru&grant_type=password&username='+Form1.Edit1.Text+'&password='));
  o.setRequestHeader('User-Agent','Downloader/11870');
  o.send('client_id=gamecenter.mail.ru&grant_type=password&username='+Form1.Edit1.Text+'&password='+Form1.Edit2.Text);

  xmlParser.loadXML(o.responsetext);
  accesstoken := copy (o.responsetext, (Length(o.responsetext)-49),48 );
  ShowMessage(accesstoken);

  o.open('POST', 'https://o2.mail.ru/userinfo', False);
  o.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  o.setRequestHeader('Content-Length', Length('client_id=gamecenter.mail.ru&access_token='+accesstoken));
  o.setRequestHeader('User-Agent','Downloader/11870');
  o.send('client_id=gamecenter.mail.ru&access_token='+accesstoken);

  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', Length('<?xml version=''1.0'' encoding=''UTF-8''?><MrPage2 SessionKey='''+accesstoken+''' Page=''http://dl.mail.ru/robots.txt''/>'));
  o.setRequestHeader('User-Agent','Downloader/11870');
  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]);

  ShowMessage(location);

  o1:= CreateOleObject('WinHttp.WinHttpRequest.5.1');
  o1.open('GET', location, False);
  o1.setRequestHeader('User-Agent','Downloader/11870');
  o1.Option(6):= False;
  o1.send;

  str:=o1.getResponseHeader ('Set-Cookie');
  a1:= pos('Mpop=',str);
  a2:= Pos('ru:;',str);
  mpop:= copy (str, a1+5, a2-a1-2);

  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', Length('<?xml version=''1.0'' encoding=''UTF-8''?><Auth Cookie='''+mpop+''' ChannelId=''0''/>'));
  o.setRequestHeader('User-Agent','Downloader/11870');
  o.send('<?xml version=''1.0'' encoding=''UTF-8''?><Auth Cookie='''+mpop+''' ChannelId=''0''/>');


  xmlParser.loadXML(o.responsetext);
  uid := xmlParser.getElementsByTagName('Auth').Item(0).getAttribute('SessionKey');
  token := xmlParser.getElementsByTagName('Auth').Item(0).getAttribute('Uid');

  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('<?xml version=''1.0'' encoding=''UTF-8''?><EnazaGetOrdersList Uid='''+uid+''' SessionKey='''+token+''' UidType=''0''/>'));
  o.setRequestHeader('User-Agent','Downloader/11870');
  o.send('<?xml version=''1.0'' encoding=''UTF-8''?><EnazaGetOrdersList Uid='''+uid+''' SessionKey='''+token+''' UidType=''0''/>');

  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('<?xml version=''1.0'' encoding=''UTF-8''?><AutoLogin ProjectId=''1177'' SubProjectId=''0'' ShardId=''1'' Mpop='''+mpop+'''/>'));
  o.setRequestHeader('User-Agent','Downloader/11870');
  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');

      ShowMessage(uid);
      ShowMessage(token);

      ShellExecute (0, nil,
        PChar('E:\GamesMailRu\Warface\Bin32Release\Game.exe'),
        PChar('--shard_id=0 +online_server '+server+' -uid '+uid+' -token '+token),
      nil, SW_RESTORE);
  end;
end;
с си не особо знаком, точнее даже софта нет нужного. Дак бы может чё нить поковырял.

зачем у тебя идет пост запрос по этому адресу "https://authdl.mail.ru/ec.php?hint=EnazaGetOrdersList", у меня сервер возвращает 400-ую ошибку

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

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

Последний раз редактировалось wfplayer0; 10.06.2016 в 20:25.
  Ответить с цитированием
Старый 17.06.2016, 13:51   #27
 Разведчик
Аватар для manx5
 
manx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражания
Регистрация: 02.02.2014
Сообщений: 27
Популярность: 1833
Сказал(а) спасибо: 1
Поблагодарили 9 раз(а) в 8 сообщениях
 
По умолчанию Re: Запуск WarFace без ИЦ

Цитата:
Сообщение от wfplayer0Посмотреть сообщение
И еще, раз пошла такая пляска, можно ли без участия клиента игры имитировать "заход в игру", например, для получения подарка за ежедневный заход

про это собственно я и писал.
  Ответить с цитированием
Старый 25.01.2017, 21:38   #28
 Разведчик
Аватар для vv023
 
vv023 никому не известный тип
Регистрация: 25.01.2017
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Запуск WarFace без ИЦ

Цитата:
если кто дойдёт до этого места покажите как там сейчас :-)

В ответ на это:
Цитата:
<iq to='k01.warface' id='uid00000003' type='get' from='уид@warface/GameClient' xmlns='jabber:client'><query xmlns='urn:cryonline:k01'><account login='уид' password='токен'/></query></iq>

Активный токен не приходит, поле просто пустое
Код:
 active_token=' '
Как можно все-таки его получить?
  Ответить с цитированием
Старый 27.01.2017, 16:59   #29
 Разведчик
Аватар для manx5
 
manx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражанияmanx5 блестящий пример для подражания
Регистрация: 02.02.2014
Сообщений: 27
Популярность: 1833
Сказал(а) спасибо: 1
Поблагодарили 9 раз(а) в 8 сообщениях
 
По умолчанию Re: Запуск WarFace без ИЦ

посмотрел. действительно актив токен не даёт больше. хотя список серваков вроде нормально отдаёт.
  Ответить с цитированием
Старый 02.09.2017, 18:56   #30
 Разведчик
Аватар для jaguar111290
 
jaguar111290 никому не известный тип
Регистрация: 24.07.2012
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Запуск WarFace без ИЦ

А готовый скрипт скиньте и как пользоваться
  Ответить с цитированием
Ответ

Метки
warface

Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Помогите!] Запуск EXE SWATrc Вопросы и ответы, обсуждения 5 12.06.2014 23:34
[Помогите!] запуск из .bat blad56 Вопросы и ответы, обсуждения 5 01.08.2011 16:59
[Помогите!] запуск PWI thomas4792 Общение и обсуждение Perfect World 0 13.03.2011 18:48
Запуск PW kirill=) Общение и обсуждение Perfect World 11 14.12.2010 18:09

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 14:27.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net