云南城投集团 规模:制作自己的QQ登陆器的关键代码

来源:百度文库 编辑:偶看新闻 时间:2024/05/02 07:58:58

都说QQ登陆器可以防止QQ密码被盗,网上下的,担心有后门,这里自己写个QQ登陆器,关键代码如下:

// Base64加密

function Base64(Src: string): string;
const
   DataSet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
var
   i, ModLen: integer;
   Current: string;
   Buf: array[1..3] of Byte;
   NewBuf: array[1..4] of Byte;
begin
   result := '';
   if Src = '' then
      exit;
   ModLen := Length(Src) mod 3;
   while Length(Src) > 0 do
   begin
      FillChar(Buf, 3, #0);
      Current := Copy(Src, 1, 3);
      Src := Copy(Src, 4, Length(Src) - 3);
      for i := 1 to 3 do
         Buf[i] := Ord(Current[i]);
      NewBuf[1] := Buf[1] shr 2;
      NewBuf[2] := (Buf[1] shl 6 shr 2 or Buf[2] shr 4) and $3F;
      NewBuf[3] := (Buf[2] shl 4 shr 2 or Buf[3] shr 6) and $3F;
      NewBuf[4] := Buf[3] and $3F;
      for i := 1 to 4 do
         result := result + DataSet[NewBuf[i] + 1];
   end;
   if ModLen >= 1 then
      result[Length(result)] := '=';
   if ModLen = 1 then
      result[Length(result) - 1] := '=';
end;

//得到加密后的密码

function getmpass(qqpws:string):string  ;
type
  md5x = array[0..15] of char;
var
  md5: TIdHashMessageDigest5;
begin
  md5 := TIdHashMessageDigest5.Create;
  result:=Base64(md5x(md5.HashValue(QQPws))) ;
  md5.Free;
end;

//登陆按钮的单击事件

procedure TForm1.Button1Click(Sender: TObject);
  var qqdl,qqdl1:string;
begin
QQNum:=edit2.text;
QQPw:=getmpass(edit3.Text);
qqdl:= ' /START QQUIN:' + edit2.text + ' PWDHASH:' +QQPw + ' /STAT:41';
qqdl1:= ' /START QQUIN:' + edit2.text + ' PWDHASH:' +QQPw + ' /STAT:40';
if checkbox1.Checked then
 Winexec(pchar(edit1.text+qqdl1),5) else
  Winexec(pchar(edit1.text+qqdl),5)

end;