рд╣рдо рдПрдордПрдордкреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ (Mail.ru рдПрдЬреЗрдВрдЯ) рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдХреНрд▓рд╛рдЗрдВрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВ

рдпрд╣ рдПрдХ рд░рд╣рд╕реНрдп рдирд╣реАрдВ рд╣реИ рдХрд┐ Mail.ru Agent рдПрдХ рдХрд╛рдлреА рд▓реЛрдХрдкреНрд░рд┐рдп IM рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрди рдЧрдпрд╛ рд╣реИред рдпрд╣рд╛рдВ рдЖрдкрдХреЛ ICQ, XMPP, рд╡реЙрдпрд╕ рдХреЙрд▓ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрд╕рдПрдордПрд╕ рднреЗрдЬрдиреЗ рдХрд╛ рднреА рд╕рдорд░реНрдерди рд╣реИ, рдХреЗрд╡рд▓ Mail.ru рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рднреВрд▓ рдЧрдпрд╛ рд╣реИред
Mail.ru рдбреЗрдЯрд╛ рдПрдХреНрд╕рдЪреЗрдВрдЬ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬред рдПрдЬреЗрдВрдЯ 2008 рдореЗрдВ рд▓рд╛рдЧреВ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕рдВрд╕реНрдХрд░рдг 1.7 рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рд░реНрд╡рд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕рдВрд╕реНрдХрд░рдг 1.24 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред

рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рдмрд┐рдЯ


рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдиреЗрдЯрд╡рд░реНрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рд▓рд┐рдЦрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдХрдИ рдиреБрдХрд╕рд╛рди рд╣реИрдВред рдЯреАрд╕реАрдкреА / рдЖрдИрдкреА рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рдмрд┐рдирд╛, рдПрдХ рдкреНрд░рднрд╛рд╡реА рдФрд░ рд╕реНрдерд┐рд░ рдЖрд╡реЗрджрди рд▓рд┐рдЦрдирд╛ рд▓рдЧрднрдЧ рдЕрд╕рдВрднрд╡ рд╣реИред

рдбреЗрдЯрд╛ рдЗрдВрдЯреАрдЧреНрд░рд┐рдЯреА рдЯреНрд░рд╛рдВрд╕рдорд┐рдЯ рдХрд░реЗрдВ

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЯреАрд╕реАрдкреА рдПрдХ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реИ, рдФрд░ рдпрджреНрдпрдкрд┐ рдбреЗрдЯрд╛ рдЖрдИрдкреА рдкреИрдХреЗрдЯ рдореЗрдВ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреИрдХреЗрдЯ рдХрд╛ рдЖрдХрд╛рд░ рд╕реАрдзреЗ рдЯреАрд╕реАрдкреА рджреНрд╡рд╛рд░рд╛ рдкреНрд░реЗрд╖рд┐рдд рдбреЗрдЯрд╛ рдХреА рдорд╛рддреНрд░рд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдирд┐рд╢реНрдЪрд┐рддрддрд╛ рдХреЗ рд╕рд╛рде рдпрд╣ рдХрд╣рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдЬрдм рдЖрд░рдИрд╡реА рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдмрд╛рдЗрдЯреНрд╕ рдХреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред
рджреА рдЧрдИ рд▓рдВрдмрд╛рдИ рдХрд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ,
#define SEND 0 #define RECV 1 int (__stdcall *tcp_func)(SOCKET s,char* buf,int len,int flags); //   /    len int tcp_rs(unsigned char type,SOCKET s, void *buf, int len, int flags) { int total = 0; int n; *(void* *)&tcp_func=(type==SEND)?&send:&recv; while(total < len) { n = tcp_func(s, (char *)buf+total, len-total, flags); if(n>0) { total += n; } else if(n == 0) { closesocket(s); return 0; } else { n=WSAGetLastError(); closesocket(s); return (!n+1); } } return total; } 

рдпрджрд┐, рдпрджрд┐ рд╕рдлрд▓, рдкреНрд░рд╛рдкреНрдд / рдкреНрд░реЗрд╖рд┐рдд рдмрд╛рдЗрдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рд▓реЗрди рдХреЗ рдмрд░рд╛рдмрд░ рджреЗрддрд╛ рд╣реИ, рддреЛ 0 рдпрджрд┐ рдХрдиреЗрдХреНрд╢рди рдХрд╛рдЯ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдпрд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ (рдорд╛рдЗрдирд╕) рддреНрд░реБрдЯрд┐ рд╕рдВрдЦреНрдпрд╛, рдЕрдЧрд░ рдХреЙрд▓ / рд░реАрд╡ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдиреЗрдЯрд╡рд░реНрдХ рдЖрдЙрдЯреЗрдЬ

рдпрд╣ рднреА рдпрд╛рдж рд░рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдЯреАрд╕реАрдкреА рдХрдиреЗрдХреНрд╢рди рдХреЛ рдкреНрд░рджреВрд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рдХреНрд░реИрд╢ (рд╡рд┐рдпреЛрдЧ, рд╡рд┐рдлрд▓рддрд╛) рдХреЗ рджреМрд░рд╛рди рд╕реЙрдХреЗрдЯреНрд╕ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдПрдХ рдЬрд╡рд╛рдм "рд╣рдореЗрд╢рд╛" рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдХрд╛рд░реНрдпрдХреНрд░рдо рдмрд╕ "рдЬрдорд╛ рджреЗрддрд╛ рд╣реИ"ред
рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рдХрд┐рдП рдЧрдП рдХрдиреЗрдХреНрд╢рди рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдПрдХ рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ рдЯрд╛рдЗрдорд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реИред
 #define SIO_KEEPALIVE_VALS _WSAIOW(IOC_VENDOR,4) #pragma pack(push,1) //   typedef struct tcp_keepalive { DWORD onoff; DWORD keepalivetime; DWORD keepaliveinterval; } tcp_keepalive; #pragma pack(pop) //     keep-alive struct tcp_keepalive alive; DWORD dwSize; alive.onoff = 1; alive.keepalivetime = 5000; alive.keepaliveinterval = 1000; WSAIoctl(my_sock, SIO_KEEPALIVE_VALS, &alive, sizeof(alive),NULL, 0, &dwSize, NULL, NULL); 

рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрджрд┐ рдХрдиреЗрдХреНрд╢рди 5 рд╕реЗрдХрдВрдб рдХреЗ рднреАрддрд░ рд╕рдХреНрд░рд┐рдп рдирд╣реАрдВ рд╣реИ, рддреЛ рдПрдХ рд╕реЗрд╡рд╛ рд╕рдВрджреЗрд╢ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛, рдЕрдЧрд░ рдЗрд╕рдХрд╛ рдХреЛрдИ рдЬрд╡рд╛рдм рдирд╣реАрдВ рд╣реИ, рддреЛ рдХрдиреЗрдХреНрд╢рди рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ


рдПрдордПрдордкреА рдмрд╛рдЗрдирд░реА рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ред рдмрд╛рдЗрдирд░реА рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдбреЗрдЯрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдкреИрдХреЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░реЗрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИ:
 //   typedef struct mrim_packet_header_t { unsigned int magic; // Magic unsigned int proto; //   unsigned int seq; // Sequence unsigned int msg; //   unsigned int dlen; //   unsigned int from; //   unsigned int fromport; //   unsigned char reserved[16]; //  } mrim_packet_header_t; //    ,   MFC, Delphi  typedef struct LPS { unsigned int len; unsigned char *str; } LPS; 

рдпрд╣рд╛рдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдЗрд╕ рддрдереНрдп рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░, рд╡рд┐рднрд┐рдиреНрди рд╕рдордп рдЕрдВрддрд░рд╛рд▓ рдкрд░ рдПрдХ рдирд┐рд░рдВрддрд░ рдХрдиреЗрдХреНрд╢рди рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИ, рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдбреЗрдЯрд╛ рдкреИрдХреЗрдЯ рднреЗрдЬрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рдЧреНрд░рд╛рд╣рдХ (рдФрд░ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ) рдХрд╛ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рднреЗрдЬрддрд╛ рд╣реИред

рдХреНрд▓рд╛рдЗрдВрдЯ рдХрдиреЗрдХреНрд╢рди рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдЖрдИрдкреА рдореЗрдВ "рдореБрдлреНрдд" рдПрдордПрдордкреА рд╕рд░реНрд╡рд░ рдХрд╛ рдкрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ : рдкреЛрд░реНрдЯ рдЯреЗрдХреНрд╕реНрдЯ рдкреНрд░рд╛рд░реВрдк, рдмрд╕ mrim.mail.ru рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдХреЗред рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рдВрд╕реНрдХрд░рдг 5.9 рдХрдиреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреЛрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ: 2024, 80, 5190, 1863, 25, 110, 443ред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, рдЕрдиреБрд╢рдВрд╕рд┐рдд рдкрддреЗ рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдкреИрдХреЗрдЬ MRIM_CS_HELLO рднреЗрдЬрдирд╛ рд╣реЛрдЧрд╛, MRIM_CS_HELLO_ACK рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреИрдХреЗрдЬ рднреЗрдЬреЗрдВ, рдлрд┐рд░ рдордЬрд╝рд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ

рд╕рдВрд╕реНрдХрд░рдг 1.22 (Mail.ru рдПрдЬреЗрдВрдЯ 5.7) рд╕реЗ рд╢реБрд░реВ, рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╡рд┐рдзрд┐ рдмрджрд▓ рдЧрдИ рд╣реИред рдЕрдм рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рд▓рд┐рдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдкреИрдХреЗрдЯ 0x1078 (MRIM_CS_LOGIN3) рднреЗрдЬрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ

рдЕрдзрд┐рдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ LPS ## рд▓реЙрдЧрд┐рди ## рдИрдореЗрд▓
LPS ## md5 рдкрд╛рд╕рд╡рд░реНрдб ## рдкрд╛рд╕рд╡рд░реНрдб md5 рдореЗрдВ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛
FFFFFFFF
рдФрд░ Mail91 рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ 1391 рдмрд╛рдЗрдЯреНрд╕

рд╡рд░реНрддрдорд╛рди рдореЗрдВ (рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕рдВрд╕реНрдХрд░рдг 1.24), рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЕрдирд┐рд╡рд╛рд░реНрдп рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред MRIM_CS_HELLO_ACK рдкреИрдХреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЧреНрд░рд╛рд╣рдХ 0x1086 рдкреИрдХреЗрдЯ рднреЗрдЬрддрд╛ рд╣реИ рдФрд░ 0x1087 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж SSL рдХрдиреЗрдХреНрд╢рди рдХреЛ рдкреНрд░рд╛рд░рдВрдн рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ, рдХрд┐рд╕реА рдиреЗ рд╣рдореЗрдВ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдордирд╛ рдХрд┐рдпрд╛ рд╣реИред

рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рдХрд╛рдо рдХреА рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд░реНрд╡рд░ рд╕реЗ рдкреИрдХреЗрдЯ MRIM_CS_CONTACT_LIST2 рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рдЕрдкрдиреЗ рдЕрдиреБрд░реЛрдз рднреЗрдЬ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рд╕рдлрд▓ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреЗ рдмрд╛рдж рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ


рдкреВрд░реЗ рдПрдордПрдордкреА рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрдЧрд╣ рд╣реЛрдЧреА, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЖрдкрдХреЛ рдЦреБрдж рдЗрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдЗрд╕рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВред MMPclient_sample.25.04.2011.rar рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ C рд╕реНрд░реЛрдд рдХреЛрдб рдФрд░ рдПрдХ Visual Studio рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╣реИред
рдпреВрдкреАрдбреА: рдЬреАрдереБрдм рд╕реНрд░реЛрдд

рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЫреЛрдЯрд╛ SOCKS 5 рд╕рд░реНрд╡рд░ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдЖрдкрдХреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рд╕реНрд░реЛрддреЛрдВ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдпрд╣рд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдФрд░ рдпрд╣ рднреА:

рд╕рдВрджрд░реНрдн


Mail.ru Agent рдХреЗ рд╕рднреА рд╕рдВрд╕реНрдХрд░рдг
рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ

рдЬреАрдд рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓
рдПрдХ рдЯреАрд╕реАрдкреА рдХрдиреЗрдХреНрд╢рди рдмреНрд░реЗрдХ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛
рдкреНрд░рднрд╛рд╡реА рдЯреАрд╕реАрдкреА / рдЖрдИрдкреА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ

Source: https://habr.com/ru/post/In136041/


All Articles