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) (详细完整)
- msn协议登陆SSL验证 DELPHI
- msn协议登陆SSL验证 DELPHI
- C#POP3协议实现SSL验证登陆GMAIL
- MSN协议分析以及Java实现MSN登陆
- MSN Protocol Version 13 Passport 3.0 SSL协议
- MSN登陆后无响应的解决方法(已验证)
- MSN协议
- msn协议
- MSN协议
- MSN协议
- MSN协议
- MSN协议
- MSN协议
- MSN协议
- MSN协议
- 【协议分析】Web QQ登陆验证分析
- Vsftp搭建(一)与PAM验证 SSL加密 登陆
- 老陈---谈Delphi中SSL协议的应用
- ORACLE的隔离级别
- ClistCtrl
- PHP名词库
- WCF中的Stream操作
- WCF中的Stream操作
- msn协议登陆SSL验证 DELPHI
- Petshop4.0之“反射注入”技术
- SEO搜索引擎优化设计开发的经验简述
- 可能影响2008的搜索趋势(1)
- 人生的15条建议
- Sseq the Enhanced Version of Seq
- COM+,组件配置,实现,VB
- 在Delphi中接受文件拖放
- 可能影响2008的搜索趋势(2)