удалили оттуда куда ей место было при демократии у власти демократы они и правят бал. unit mail_web; interface Uses classes, Sysutils,httpsend,blcksock,ssl_openssl; Type TMailClient=Class(TObject) private {здесь описываются только внутренние переменные и процедуры - "для служебного пользования"} y,z:integer; httpsend: THTTPSend; jimserver,total_acc,sess,page_uniq,tck:string; FContactList:Tstrings; procedure MyFilter(Sender: TObject; var Value: AnsiString); {функция - будет использоваться только внутри класса, "снаружи" напрямую не доступна} public {Описанное здесь доступно для пользователя класса {Конструктор - метод создания класса, имеет смысл его описывать только если он делает ?то-то специфи?еское - например нам надо будет создать переменную FList. В противном слу?ае его описание можно опустить - будет работать конструктор родительского класса} Function Login(login,dom,pass:string; proxy:string=''):string; Function SendMessage(mail,text:string):boolean; Function SendSMS(number,text:string):boolean; Function TypeMessage(mail,text:string):boolean; Function Get_Contacts():boolean; Procedure Logout; property ContactList:TStrings read FContactList; Function Tick():string; Constructor Create; {Деструктор - метод разрушения класса} Destructor Destroy; override; {Описание методов - собственно методы мало ?ем отли?аются от процедур} end; implementation { TStatistic } procedure TMailClient.MyFilter(Sender: TObject; var Value: AnsiString); begin inc(y); if y>z then TBlockSocket(Sender).CloseSocket; end; constructor TMailClient.Create; begin inherited; {Вна?але надо вызвать конструктор класса-родителя} httpsend:=THTTPSend.Create; httpsend.Timeout:=10000; // httpsend.Sock.OnReadFilter:=MyFilter; RAndomize; sess:=inttostr(random(99999)); page_uniq:=inttostr(random(9999)); tck:='0'; z:=25; FContactList:=TStringList.Create; end; destructor TMailClient.Destroy; begin FContactList.Free; httpsend.Free; inherited;{в последнюю о?ередь вызываем деструктор клсса-родителя} end; Procedure TMailClient.Logout; var x:string; Data:TStringStream; begin y:=0; Data:=TStringStream.Create(''); Data.WriteString('domain=webagent.mail.ru&x-email='+total_acc); HTTPSend.Document.LoadFromStream(Data); httpsend.MimeType:='application/x-www-form-urlencoded'; HTTPsend.Headers.Add( 'Accept: text/html' ); httpsend.Headers.Add('DNT: 1'); // httpsend.Headers.Add('Referer: http://webagent.mail.ru/r/webagent/popup.html'); httpsend.Headers.Add('Referer: http://'+jimserver+'/communicate.html?usedBranch=master&path=u%2Fwebagent%2Frelease%2F274&xdm_e=http%3A%2F%2Fwebagent.mail.ru&xdm_c=default3&xdm_p=1'); httpsend.Headers.Add('X-Requested-With: XMLHttpRequest'); HTTPSend.HTTPMethod('POST','http://'+jimserver+'/logout?session='+sess+'&r='+inttostr(random(999))); Data.Free; Data:=TStringStream.Create(''); httpsend.Document.SaveToStream(data); x:=Data.DataString; Data.Free; httpsend.Clear; httpsend.Cookies.Clear; httpsend.Headers.Clear; end; Function TMailClient.Tick():string; var Data:TStringStream; x,x2,x3:string; begin y:=0; {Data:=TStringStream.Create(''); Data.WriteString('domain=webagent.mail.ru&x-email='+total_acc); HTTPSend.Document.LoadFromStream(Data); httpsend.MimeType:='application/x-www-form-urlencoded'; HTTPsend.Headers.Add( 'Accept: text/html' ); httpsend.Headers.Add('DNT: 1'); httpsend.Headers.Add('Referer: http://webagent.mail.ru/r/webagent/popup.html'); httpsend.Headers.Add('X-Requested-With: XMLHttpRequest'); HTTPSend.HTTPMethod('POST','http://'+jimserver+'/helper?session='+sess+'&r='+inttostr(random(999))); Data.Free; httpsend.Clear; } httpsend.Headers.Add('DNT: 1'); httpsend.Headers.Add('Referer: http://'+jimserver+'/communicate.html?usedBranch=master&path=u%2Fwebagent%2Frelease%2F274&xdm_e=http%3A%2F%2Fwebagent.mail.ru&xdm_c=default3&xdm_p=1'); httpsend.Headers.Add('X-Requested-With: XMLHttpRequest'); httpsend.HTTPMethod('GET','http://'+jimserver+'/connect?session='+sess+'&r='+inttostr(random(999))+'&stream_segment_ack='+tck+'&page_uniq='+page_uniq+'&realm=webagent.mail.ru&x-email='+total_acc); Data:=TStringStream.Create(''); httpsend.Document.SaveToStream(data); x:=httpsend.Headers.Text; x:=x+Data.DataString; Data.Free; httpsend.Clear; x2:=x; x3:=x; if pos('{"segment": ',x2)<>0 then begin delete(x2,1,pos('{"segment": ',x2)+11); tck:=copy(x2,1,pos('}',x2)-1); end; x2:=''; //if pos('["helper", {"mask":',x)<>0 then delete(x,1,pos('["helper", {"mask":',x)+10); if pos('"text": "',x)<>0 then begin while pos('"text": "',x)<>0 do begin //delete(x,1,pos('"title": "',x)+6); delete(x,1,pos('"nickname": "',x)+12); x2:=x2+copy(x,1,pos('"',x)-1)+#13#10; delete(x,1,pos('"text": "',x)+8); x2:=x2+copy(x,1,pos('",',x)-1)+#13#10; end; x2:=StringReplace(x2, '\\\', '\',[rfReplaceAll, rfIgnoreCase]); x2:=StringReplace(x2, '\n', #13#10,[rfReplaceAll, rfIgnoreCase]); end; if (pos('"composing": true',x)<>0) and (pos('"text": "',x)=0) then x2:='"composing": true'; if pos('"contactList"',x)=0 then x:=x2; result:=x; end; Function TMailClient.Login(login,dom,pass:string; proxy:string=''):string; var Data:TStringStream; x,p,p2:string; begin y:=0; result:='ERROR'; if pos(':',proxy)<>0 then begin x:=proxy; p:=copy(x,1,pos(':',x)-1); delete(x,1,pos(':',x)); p2:=x; httpsend.ProxyHost:=p; httpsend.ProxyPort:=p2; end; httpsend.Headers.Add('DNT: 1'); httpsend.HTTPMethod('GET','http://win.mail.ru/cgi-bin/auth?Page=http%3A%2F%2Fwebagent.mail.ru%2Fr%2Fwebagent%2Fbuild%2Fpopup.html&FailPage=http%3A%2F%2Fwebagent.mail.ru%2Fauth&Login='+login+'&Domain='+dom+'&Password='+pass+'&level=1'); Data:=TStringStream.Create(''); httpsend.Document.SaveToStream(data); x:=httpsend.Headers.Text; x:=x+Data.DataString; Data.Free; httpsend.Clear; if pos('mail.ru',x)=0 then begin result:='ERROR PROXY'; exit; end; if pos('Location: http://webagent.mail.ru/r/webagent/build/popup.html',x)<>0 then begin total_acc:=login+'%40'+dom; httpsend.Headers.Add('DNT: 1'); httpsend.Headers.Add('X-Requested-With: XMLHttpRequest'); httpsend.Headers.Add('Referer: http://'+jimserver+'/communicate.html?usedBranch=master&path=u%2Fwebagent%2Frelease%2F274&xdm_e=http%3A%2F%2Fwebagent.mail.ru&xdm_c=default3&xdm_p=1'); httpsend.HTTPMethod('GET','http://jiml.mail.ru/user/status?x-email='+total_acc); Data:=TStringStream.Create(''); httpsend.Document.SaveToStream(data); x:=httpsend.Headers.Text; x:=x+Data.DataString; Data.Free; httpsend.Clear; delete(x,1,pos('"jimServer": "',x)+13); jimserver:=copy(x,1,pos('"',x)-1); httpsend.Headers.Add('DNT: 1'); httpsend.Headers.Add('Referer: http://'+jimserver+'/communicate.html?usedBranch=master&path=u%2Fwebagent%2Frelease%2F274&xdm_e=http%3A%2F%2Fwebagent.mail.ru&xdm_c=default3&xdm_p=1'); httpsend.Headers.Add('X-Requested-With: XMLHttpRequest'); httpsend.HTTPMethod('GET','http://'+jimserver+'/connect?session='+sess+'&with_login=1&with_calls=0&status=online&show_xstatus=1&page_uniq='+page_uniq+'&realm=webagent.mail.ru&x-email='+total_acc); Data:=TStringStream.Create(''); httpsend.Document.SaveToStream(data); x:=httpsend.Headers.Text; x:=x+Data.DataString; Data.Free; httpsend.Clear; REsult:=Httpsend.Cookies.Text+'#13#10'+sess+#13#10+jimserver+#13#10+page_uniq; end; end; Function TMailClient.Get_Contacts():boolean; var x,x2,x3:string; Data:TStringStream; begin y:=0; Data:=TStringStream.Create(''); Data.WriteString('domain=webagent.mail.ru&x-email='+total_acc); HTTPSend.Document.LoadFromStream(Data); httpsend.MimeType:='application/x-www-form-urlencoded'; HTTPsend.Headers.Add( 'Accept: text/html' ); httpsend.Headers.Add('DNT: 1'); httpsend.Headers.Add('Referer: http://'+jimserver+'/communicate.html?usedBranch=master&path=u%2Fwebagent%2Frelease%2F274&xdm_e=http%3A%2F%2Fwebagent.mail.ru&xdm_c=default3&xdm_p=1'); httpsend.Headers.Add('X-Requested-With: XMLHttpRequest'); HTTPSend.HTTPMethod('POST','http://'+jimserver+'/contactlist?session='+sess+'&r='+inttostr(random(999))); Data.Free; httpsend.Clear; x:=Tick; {delete(x,1,pos('"contactList"',x)+14); delete(x,pos('["stream",',x),length(x)); while pos('["',x)<>0 do begin delete(x,1,pos('["',x)+1); FContactList.Add(copy(x,1,pos('"',x)-1)); end; } x2:=x; if pos('"contactList"',x2)<>0 then begin FContactList.Clear; delete(x,1,pos('"contactList"',x)+14); delete(x,pos(']],',x),length(x)); while pos('["',x)<>0 do begin delete(x,1,pos('["',x)+1); x3:=copy(x,1,pos('"',x)-1); delete(x,1,pos('"',x)); delete(x,1,pos('"',x)); x3:=x3+'%'+copy(x,1,pos('"',x)-1); delete(x,1,pos('"',x)); delete(x,1,pos('"',x)); x3:=x3+'%%'+copy(x,1,pos('"',x)-1); FContactList.Add(x3); delete(x,1,pos(']',x)); end; //Repeat_Contakt; end; Result:=true; end; function UrlEncode(Str: string): string; function CharToHex(Ch: Char): Integer; asm and eax, 0FFh mov ah, al shr al, 4 and ah, 00fh cmp al, 00ah jl @@10 sub al, 00ah add al, 041h jmp @@20 @@10: add al, 030h @@20: cmp ah, 00ah jl @@30 sub ah, 00ah add ah, 041h jmp @@40 @@30: add ah, 030h @@40: shl eax, 8 mov al, '%' end; var i, Len: Integer; Ch: Char; N: Integer; P: PChar; begin Result := ''; Len := Length(Str); P := PChar(@N); for i := 1 to Len do begin Ch := Str; if Ch in ['0'..'9', 'A'..'Z', 'a'..'z', '_'] then Result := Result + Ch else begin if Ch = ' ' then Result := Result + '+' else begin N := CharToHex(Ch); Result := Result + P; end; end; end; end; Function TMailClient.SendMessage(mail,text:string):boolean; var x,mail2:string; Data:TStringStream; begin y:=0; mail2:=StringReplace(mail, '@', '%40',[rfReplaceAll, rfIgnoreCase]); {Data:=TStringStream.Create(''); Data.WriteString('to='+mail2+'&composing=1&domain=webagent.mail.ru&x-email=ky.kask%40mail.ru'); HTTPSend.Document.LoadFromStream(Data); httpsend.MimeType:='application/x-www-form-urlencoded'; HTTPsend.Headers.Add( 'Accept: text/html' ); httpsend.Headers.Add('DNT: 1'); httpsend.Headers.Add('Referer: http://webagent.mail.ru/r/webagent/popup.html'); httpsend.Headers.Add('X-Requested-With: XMLHttpRequest'); HTTPSend.HTTPMethod('POST','http://'+jimserver+'/message?session='+sess+'&r='+inttostr(random(999))); Data.Free; Data:=TStringStream.Create(''); httpsend.Document.SaveToStream(data); x:=Data.DataString; Data.Free; httpsend.Clear; } //Tick; Data:=TStringStream.Create(''); Data.WriteString('to='+mail2+'&message_id='+inttostr(random(99999))+'&text='+UTF8encode(text)+'&domain=webagent.mail.ru&x-email='+total_acc); HTTPSend.Document.LoadFromStream(Data); httpsend.MimeType:='application/x-www-form-urlencoded'; HTTPsend.Headers.Add( 'Accept: text/html' ); httpsend.Headers.Add('DNT: 1'); httpsend.Headers.Add('Referer: http://'+jimserver+'/communicate.html?usedBranch=master&path=u%2Fwebagent%2Frelease%2F274&xdm_e=http%3A%2F%2Fwebagent.mail.ru&xdm_c=default3&xdm_p=1'); httpsend.Headers.Add('X-Requested-With: XMLHttpRequest'); HTTPSend.HTTPMethod('POST','http://'+jimserver+'/message?session='+sess+'&r='+inttostr(random(999))); Data.Free; Data:=TStringStream.Create(''); httpsend.Document.SaveToStream(data); x:=Data.DataString; Data.Free; httpsend.Clear; Result:=true; if pos('<HTML><BODY>Gone</BODY></HTML>',x)<>0 then result:=false; end; Function TMailClient.TypeMessage(mail,text:string):boolean; var x,mail2:string; Data:TStringStream; begin y:=0; mail2:=StringReplace(mail, '@', '%40',[rfReplaceAll, rfIgnoreCase]); Data:=TStringStream.Create(''); Data.WriteString('to='+mail2+'&composing=1&domain=webagent.mail.ru&x-email=ky.kask%40mail.ru'); HTTPSend.Document.LoadFromStream(Data); httpsend.MimeType:='application/x-www-form-urlencoded'; HTTPsend.Headers.Add( 'Accept: text/html' ); httpsend.Headers.Add('DNT: 1'); httpsend.Headers.Add('Referer: http://'+jimserver+'/communicate.html?usedBranch=master&path=u%2Fwebagent%2Frelease%2F274&xdm_e=http%3A%2F%2Fwebagent.mail.ru&xdm_c=default3&xdm_p=1'); httpsend.Headers.Add('X-Requested-With: XMLHttpRequest'); HTTPSend.HTTPMethod('POST','http://'+jimserver+'/message?session='+sess+'&r='+inttostr(random(999))); Data.Free; Data:=TStringStream.Create(''); httpsend.Document.SaveToStream(data); x:=Data.DataString; Data.Free; httpsend.Clear; end; Function TMailClient.SendSMS(Number,text:string):boolean; var x,mail2:string; Data:TStringStream; begin y:=0; //mail2:=StringReplace(mail, '@', '%40',[rfReplaceAll, rfIgnoreCase]); {Data:=TStringStream.Create(''); Data.WriteString('to='+mail2+'&composing=1&domain=webagent.mail.ru&x-email=ky.kask%40mail.ru'); HTTPSend.Document.LoadFromStream(Data); httpsend.MimeType:='application/x-www-form-urlencoded'; HTTPsend.Headers.Add( 'Accept: text/html' ); httpsend.Headers.Add('DNT: 1'); httpsend.Headers.Add('Referer: http://webagent.mail.ru/r/webagent/popup.html'); httpsend.Headers.Add('X-Requested-With: XMLHttpRequest'); HTTPSend.HTTPMethod('POST','http://'+jimserver+'/message?session='+sess+'&r='+inttostr(random(999))); Data.Free; Data:=TStringStream.Create(''); httpsend.Document.SaveToStream(data); x:=Data.DataString; Data.Free; httpsend.Clear; } //Tick; Data:=TStringStream.Create(''); Data.WriteString('tel='+number+'&text='+UTF8encode(text)+'&domain=webagent.mail.ru&x-email='+total_acc); HTTPSend.Document.LoadFromStream(Data); httpsend.MimeType:='application/x-www-form-urlencoded'; HTTPsend.Headers.Add( 'Accept: text/html' ); httpsend.Headers.Add('DNT: 1'); //httpsend.Headers.Add('Referer: http://webagent.mail.ru/r/webagent/popup.html'); httpsend.Headers.Add('Referer: http://'+jimserver+'/communicate.html?usedBranch=master&path=u%2Fwebagent%2Frelease%2F274&xdm_e=http%3A%2F%2Fwebagent.mail.ru&xdm_c=default3&xdm_p=1'); httpsend.Headers.Add('X-Requested-With: XMLHttpRequest'); HTTPSend.HTTPMethod('POST','http://'+jimserver+'/sms?session='+sess+'&r='+inttostr(random(999))); Data.Free; Data:=TStringStream.Create(''); httpsend.Document.SaveToStream(data); x:=Data.DataString; Data.Free; httpsend.Clear; Tick(); Data:=TStringStream.Create(''); Data.WriteString('operation=remove&tel='+number+'&domain=webagent.mail.ru&x-email='+total_acc); HTTPSend.Document.LoadFromStream(Data); httpsend.MimeType:='application/x-www-form-urlencoded'; HTTPsend.Headers.Add( 'Accept: text/html' ); httpsend.Headers.Add('DNT: 1'); //httpsend.Headers.Add('Referer: http://webagent.mail.ru/r/webagent/popup.html'); httpsend.Headers.Add('Referer: http://'+jimserver+'/communicate.html?usedBranch=master&path=u%2Fwebagent%2Frelease%2F274&xdm_e=http%3A%2F%2Fwebagent.mail.ru&xdm_c=default3&xdm_p=1'); httpsend.Headers.Add('X-Requested-With: XMLHttpRequest'); HTTPSend.HTTPMethod('POST','http://'+jimserver+'/contact?session='+sess+'&r='+inttostr(random(999))); Data.Free; Data:=TStringStream.Create(''); httpsend.Document.SaveToStream(data); x:=Data.DataString; Data.Free; httpsend.Clear; Tick(); Result:=true; end; end.
Это сырая альтернатива обычному MRA. Кому надо - те разберутся и в коде, и в принципе. Это гораздо проще чем снифать голыми руками бинарный протокол.
хватило на 4 стоки, не пойму, к чему ты это выложил? причем без описания о сути кода?! не правильный маркетинг, если ты хочешь привлечь внимание к своему коду, как минимум должен дать мини описание, зачем и почему. У меня лично не так много времени чтобы перечитывать миллиарды строк кода, которые мне вообще никаким боком.
а удалили скорее всего из-за того что ты выложил его в таком же виде как и сюды? во первых везде написано что коды в Code: во вторых немного форматируй свои строки, в третьих описание)))
Зарегился на этом форуме для того чтоб решить свою проблему,так как купил софт у ресселера ТС,оплатил 150$ вперёд ,150 должен после теста,протестировав софт пришёл к выводу что он неработает вообще как договорено при покупке,3 недели его ресселер компосирует мозги, не может решить проблему и я вижу не хочет,логи разговоров скину кому надо.Помогите решить вопрос.