msn协议登陆SSL验证 DELPHI

来源:互联网 发布:java io编程题 编辑:程序博客网 时间:2024/06/03 22:40

      昨天想写个MSN机器人用于集成到自己应用软件中,收发消息。(不需要服务器了哦)

收集了不少资料,缺SSL登陆部分为难了半天。资料在附中。

需要:IdSSLIOHandlerSocket1,IdTCPClient1,IdTCPClient2

IdTCPClient2.IOHandler:=IdSSLIOHandlerSocket1;

IdSSLIOHandlerSocket1默认属性

SSL需要libeay32.dll(672K);ssleay32.dll(152K);目前发现这两个DLL能正常使用。

正题:

 
  IdTCPClient1.Disconnect;
  IdTCPClient1.Host := host_;
  IdTCPClient1.Port := prot_;
  IdTCPClient1.Connect(10000);
  IdTCPClient1.Write('VER 15 MSNP8 CVR0/r/n');(注意#13#10和'/r/n')
  s := IdTCPClient1.ReadLn;
  P_log_(s);
(>>>VER 15 MSNP8)
  IdTCPClient1.Write('CVR 16 0x0804 winnt 5.0 i386 MSNMSGR 6.1.0203 MSMSGS xxxxxx@QQ.com/r/n');
  s := IdTCPClient1.ReadLn;
  P_log_(s);
(>>>CVR 16 7.0.0816 7.0.0816 6.2.0208 http://msgr.dlservice.microsoft.com/download/7/9/9/79940907-8fbc-4eb1-a9bb-eee592a966b4/Install_MSN_Messenger_DL.EXE http://messenger.msn.com/cn)

  IdTCPClient1.Write('USR 17 TWN I xxxxxx@QQ.com/r/n');
  s := IdTCPClient1.ReadLn;
(>>>XFR 17 NS 207.46.109.20:1863 0 207.46.96.153:1863)

(连接207.46.109.20:1863重复上面步骤)
>>>VER 15 MSNP8

>>>CVR 16 7.0.0816 7.0.0816 6.2.0208 http://msgr.dlservice.microsoft.com/download/7/9/9/79940907-8fbc-4eb1-a9bb-eee592a966b4/Install_MSN_Messenger_DL.EXE http://messenger.msn.com/cn

>>>USR 17 TWN S lc=1033,id=507,tw=40,ru=http%3A%2F%2Fmessenger%2Emsn%2Ecom,ct=1186891781,kpp=1,kv=9,ver=2.1.6000.1,rn=GWM19*yB,tpf=53f3aea06989a2f32051f2d8c453e2a0

OK拷贝文本(lc=1033,id=507,tw=40,ru=http%3A%2F%2Fmessenger%2Emsn%2Ecom,ct=1186891781,kpp=1,kv=9,ver=2.1.6000.1,rn=GWM19*yB,tpf=53f3aea06989a2f32051f2d8c453e2a0)

  s := 'GET /rdr/pprdr.asp HTTP/1.0' + #13#10 + #13#10;(注意#13#10和'/r/n'是一样)
  IdTCPClient2.Disconnect;
  IdTCPClient2.Host := 'nexus.passport.com';
  IdTCPClient2.Port := 443;
  IdTCPClient2.Connect;
  IdTCPClient2.Write(s);
  s := IdTCPClient2.ReadLn(#13#10#13#10);
  p_log_(s);

>>>HTTP/1.1 200 OK
Connection: close
Date: Sun, 12 Aug 2007 04:09:43 GMT
Server: Microsoft-IIS/6.0
PPServer: PPV: 30 H: BAYPPPRTS2A01 V: 0
P3P:CP="BUS CUR CONo FIN IVDo ONL OUR PHY SAMo TELo"
X-Powered-By: ASP.NET
PassportURLs: DARealm=Passport.Net,DALogin=login.live.com/login2.srf,DAReg=https://accountservices.passport.net/UIXPWiz.srf,Properties=https://accountservices.msn.com/editprof.srf,Privacy=https://accountservices.passport.net/PPPrivacyStatement.srf,GeneralRedir=http://nexusrdr.passport.com/redir.asp,Help=https://accountservices.passport.net,ConfigVersion=14
Content-Length: 0
Content-Type: text/html
Cache-control: private
(DALogin=login.live.com/login2.srf是登陆地址,每次都一样,可以不获取。)
  s := 'GET /login2.srf HTTP/1.1' + #13#10
    + 'Authorization: Passport1.4 OrgVerb=GET,OrgURL=http%3A%2F%2Fmessenger%2Emsn%2Ecom,'
    + 'sign-in=xxxxxx%40QQ.com,pwd=xxxxxx,'
    + (拷贝的文本)+ #13#10
    + 'Host: login.passport.com' + #13#10 + #13#10;
  p_log_(s);
  IdTCPClient2.Disconnect;
  IdTCPClient2.Host := 'loginnet.passport.com';
  IdTCPClient2.Port := 443;
  IdTCPClient2.Connect;
  IdTCPClient2.Write(s);
  s := IdTCPClient2.ReadLn(#13#10#13#10);
  p_log_(s);
  IdTCPClient2.Disconnect;

>>>HTTP/1.1 200 OK(200 OK是正确,其他状态异常)
Connection: close
Date: Sun, 12 Aug 2007 04:09:46 GMT
Server: Microsoft-IIS/6.0
PPServer: PPV: 30 H: BAYPPLOGN2B31 V: 0
P3P:CP="BUS CUR CONo FIN IVDo ONL OUR PHY SAMo TELo"
X-Powered-By: ASP.NET
Content-Type: text/html; charset=iso-8859-1
Expires: Sun, 12 Aug 2007 04:08:46 GMT
Cache-Control: no-cache
Pragma: no-cache
P3P: CP="DSP CUR OTPi IND OTRi ONL FIN"
Set-Cookie: PPAuth=ASZXGJCDvR4VtcpdRKM2YnSdsSoHVB*WWzOASS9rlSZeBCcDbIjaQmy*6Pi9k41GpVV1aEoUMBquzstjMxoduIYWKzbCI2CYNTPJvWlbqEk7HrsgG9JO71DyMmcGLW!r6nfcV7ESI4fByXbsVyxa8J7oB9HiH!wzpDHoOGsOvyBk2ujnjnFTfJ13sI1ddX9AfWMqvrqKpaiCaMKFIMbsxaK7aOmK; domain=.passport.com;secure= ;path=/;HTTPOnly= ;version=1
Set-Cookie: PPLState=1; domain=.passport.com;path=/;version=1
Set-Cookie: MSPVis=507;domain=.passport.com;path=/
Authentication-Info: Passport1.4 da-status=success,from-PP='t=93wKtnsdYGf1O!tan81KA9sqJzUnKpC282K5fS9hXV01E*s36GCE9s3zDkGiSHhs*LJ8rdFiq35wgT60LkLbkcOfvFn!rACRTaA5ClsxYfFettzJK6edvfvDvJipVFS1n6Kd63ANiKV3A$&p=9IvCgVgptBTG7oLUKNn6ALrMlvMpl1NrJD5lfcXHPIRltjkT7nGYkJgu9SQFGjUDB8kstI3wh0lLoj5dBIdxZD28EnJtPKH6Egxxgbk6DDHKRECk3VwtjlSeTP5lGqXwO98HMMpYL8G6H!S3aEh8lug!afLeMSy0w1',ru=http://messenger.msn.com
Content-Length: 0

[from-PP]部分得到OK

附:资料地址

MSN Messenger协议 原作:bhw98 (简洁)

 MSNP8 原文翻译 (Zz) (详细完整) 

原创粉丝点击