HTTPS的POST登录数据包方式

[作者]
网名:猪头三
网站:http://www.x86asm.com

[序言]
一次偶然的机会,有人让我分析扫号器的原理。其实扫号器不是什么高深东西,说白了就是帐号验证合法性。为什么说是“扫“,因为有几千个帐号要验证,所以要批处理一下.

[原理分析]
要验证一个帐号是否合法,那么用登录方式来验证就OK了.如果能登录成功就表示帐号合法,失败就表示无效帐号.

[技术分析]
当前有几千个帐号需要处理,对方的登录网站没有验证码,所以比较好做.但要考虑一个问题,同一个IP登录多次,那么对方网站会暂时封锁你的IP.
还有一个问题对方的网站是HTTPS方式的,所以又需要一点技巧.

[技术透露]
1>我选择用DELPHI来开发,应为DELPHI有IDHTTP控件和SSL控件
2>使用HTTP Analyzer工具分析登录数据包并找到POST登录数据包


[开发片段记录]
1> DELPHI控件: TiDHTTP控件 TIdSSLIOHandlerSocketOpenSSL控件
2> libeay32.dll 和 ssleay32.dll文件
3> 使用 sslvSSLv3

[POST代码片段]
procedure TForm1.ButtonPostClick(Sender: TObject);
var
  str_Cookie : string ;
  stream_HttpResponse   : TStringStream ;
  stream_PostData       : TStringStream ;
begin

  stream_HttpResponse := TStringStream.Create() ;
  stream_PostData     := TStringStream.Create('');

  // 我们需要POST的登录数据包,用HTTP Analyzer工具分析
  stream_PostData.WriteString('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
  // 设置超时
  IdHTTP1.ReadTimeout := 10000 ;
 
  // 使用POST原理机制
  try
    IdHTTP1.Post('https://secure.xxxxxxxxxxx.com/m=weblogin/login.xxx',
               stream_PostData,
               stream_HttpResponse) ;
  except
    on ERROR : Exception do
    begin
      if ERROR is EIdHTTPProtocolException then
      begin
        ShowMessage((ERROR as EIdHTTPProtocolException).ToString);
      end;
    end;

  end;
  // 断开链接
  IdHTTP1.Disconnect ;
  // 保存POST请求之后的反馈信息
  stream_HttpResponse.SaveToFile(ExtractFilePath(Application.ExeName)+'rp.txt') ;

  // 释放资源
  stream_HttpResponse.Free() ;
  stream_PostData.Free() ;

end;


评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我不是代码教父

我的创作动力离不开你的真诚激励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值