Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.06.2011, 22:27   #1
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию Авторизация агента mail.ru

Здравствуйте!

Изменяю свой компонент для майл.ру агента, после их недавних изменений.

Не могу понять, как теперь идёт аторизация, в какой кодировке идёт текст, флаги, и.т.д.

Может знает кто?
Код:
0000  00 19 5b 73 89 65 00 50  bf 67 4c a3 08 00 45 00   ..[s.e.P .gL...E.
0010  00 b2 f6 3f 40 00 80 06  27 0e c0 a8 01 41 5e 64   ...?@... '....A^d
0020  bc aa 7e b4 07 f9 eb c4  7c 52 74 f9 0c 54 50 18   ..~..... |Rt..TP.
0030  34 d8 3b 45 00 00 ef be  ad de 15 00 01 00 0b 00   4.;E.... ........
0040  00 00 08 10 00 00 5e 00  00 00 00 00 00 00 00 00   ......^. ........
0050  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ........ ........
0060  00 00 08 00 00 00 0a 00  00 00 75 6e 37 6d 40 62   ........ ..un7m@b
0070  6b 2e 72 75 44 00 00 00  41 67 41 41 41 41 41 41   k.ruD... AgAAAAAA
0080  41 41 41 6d 41 41 41 41  55 41 42 73 41 47 55 41   AAAmAAAA UABsAGUA
0090  59 51 42 7a 41 47 55 41  49 41 42 68 41 48 55 41   YQBzAGUA IABhAHUA
00a0  64 41 42 6f 41 47 38 41  63 67 42 70 41 48 6f 41   dABoAG8A cgBpAHoA
00b0  5a 51 41 67 41 47 30 41  5a 51 41 3d 00 00 00 00   ZQAgAG0A ZQA=....
Это сниф запроса авторизации.

Поверх идет base64, я так понял.

какая кодировка в 0070 строке начинается, и что прячется в строках 0000-0030? (это дополнительный вопрос)
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru

Последний раз редактировалось grominfo; 18.06.2011 в 22:42.
grominfo вне форума Ответить с цитированием
Старый 18.06.2011, 23:11   #2
fenryr
Пользователь
 
Регистрация: 20.05.2010
Сообщений: 28
По умолчанию

это переделанный исходник найденный на этом же форуме

Код:

   procedure TMailClient.Authorize;
var
 Pack: TMRIMPacket;
 Data: Pointer;
begin
 if Connected then
 begin
  MMP_Pack(@Pack, FSeq, MRIM_CS_LOGIN2, FSocket.Port, FSocket.IP);
  MMP_AddLPS(@Pack, Data, Mail);
  MMP_AddLPS(@Pack, Data, PassWord);
  MMP_AddUL(@Pack, Data, STATUS_ONLINE {OnLineDWORD_Status[FStatus]});
  {$ifdef v20}
  MMP_AddLPS(@Pack, Data, 'STATUS_ONLINE');
  MMP_AddLwPS(@Pack, Data, widestring(self.AuthCaption));
  MMP_AddLwPS(@Pack, Data, widestring(self.AuthStatus));
  MMP_Addul(@Pack, Data, $03FF);
  MMP_AddLPS(@Pack, Data, format( 'client="%s" version="%s" ui="%s"' , [self.ClientS , self.VersionS, self.BuildS] ));
  MMP_AddLPS(@Pack, Data, 'ru');
  MMP_AddLPS(@Pack, Data, ' ');
  MMP_Addul(@Pack, Data, 0);
  MMP_Addul(@Pack, Data, 0);
  {$else}
  MMP_AddLPS(@Pack, Data, 'onLine');
  MMP_AddLPS(@Pack, Data, Caption);
  {$endif}
  MMP_SendPack(FSocket.Socket, @Pack, Data);
  FreeMem(Data);
  FSeq:= FSeq + 1;
 end;
end;
процедура добавления юникод строки в пакет

Код:
procedure MMP_AddLWPS(lpPack: PMRIMPacket; var Data: Pointer; Value: WideString);
var
  LenLPS: DWORD;
  LPS: WideString;
  begin
     LPS := Value;
     LenLPS := Length(LPS)*sizeof(widechar);
  if lpPack.dlen = 0 then
    GetMem(Data, SizeOf(LenLPS) + LenLPS)
  else
    ReAllocMem(Data, lpPack.dlen + SizeOf(LenLPS) + LenLPS);

     MoveMemory(Pointer(DWORD(Data) + lpPack.dlen), @LenLPS, SizeOf(LenLPS));
  if LenLPS > 0 then
  MoveMemory(Pointer(DWORD(Data) + lpPack.dlen + SizeOf(LenLPS)), Pbyte(LPS), LenLPS);
  lpPack.dlen := lpPack.dlen + SizeOf(LenLPS) + LenLPS;
  //ansitoutf16
  end;

Последний раз редактировалось fenryr; 18.06.2011 в 23:17.
fenryr вне форума Ответить с цитированием
Старый 18.06.2011, 23:29   #3
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

fenryr, какого года исходник? Что - то она совсем отличается от моей процедуры. Это видно очень новая. А где полный исходник лежит, дай пожалуйста ссылку.
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru
grominfo вне форума Ответить с цитированием
Старый 19.06.2011, 02:17   #4
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

Спасибо за описание нового протокола, которое вы любезно предостваили в личке. Утром будем разбираться. Надеюсь дойдём до истины.
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru

Последний раз редактировалось grominfo; 19.06.2011 в 02:20.
grominfo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование протоколом Mail.ru агента. SanSanblch Работа с сетью в Delphi 1 19.02.2011 19:49
Перехват и обработка сообщений Mail.ru агента NikLik Работа с сетью в Delphi 4 22.07.2008 15:39
Прога для Mail Агента vizor9 Софт 11 20.11.2007 19:59