⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 recvmessage.pas

📁 这是天翼外挂的源代码
💻 PAS
字号:
unit recvmessage;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,qsocket2,winsock,DePacket,packetstruct,unit2,unit1,queue;
var
  coco:array [0..255] of char;
  M1,M2,M3:string;  //人物名字
  h1,h2,h3:integer;//等级
  procedure into(s:Tsocket);//登陆信息
  procedure recv1(s:Tsocket);//进入游戏的第一个包

implementation

Function get_ID(flag:integer): integer;
var counter:integer;
begin
  counter:=0;
  //flag:=$a8;
  if (flag and 1) <> 0 then  counter:=counter+1;
  if (flag and 2) <> 0 then  counter:=counter+1;
  if (flag and 4) <> 0 then  counter:=counter+1;
  if (flag and 8) <> 0 then  counter:=counter+1;
  if (flag and 16) <> 0 then  counter:=counter+1;
  if (flag and 32) <> 0 then  counter:=counter+1;
  if (flag and 64) <> 0 then  counter:=counter+1;
  if (flag and 8 =8) then counter:=counter+1;
result:=counter;
end;


procedure into(s:Tsocket);//登陆后收到的信息
var
  i,j,g,n,p:integer;
  mess:array [0..30] of char;
begin
  sleep(1);
  fillchar(buff,BUFFERSIZE,$00);
  recv(s,buff,BUFFERSIZE,0);
  decode(2);
  if  (uncode[0]=char($02)) and(uncode[1]=char($00)) then
    begin
      form2.Memo2.Lines.Add('登陆成功');
    end
  else
    begin
      form2.Memo2.Lines.Add('登陆失败,请检查帐号和密码');
      StopNet(s);
    end;

  decode(10);
    if uncode[0]=char($0E) then
        begin
          form2.Memo2.Lines.Add('帐号被使用');
        end;
  j:=0;
  for i:=2 to integer(uncode[1])+1 do
    begin
      mess[j]:=uncode[i];
      j:=j+1;
    end;
    i:=integer(uncode[1])+1;
    i:=i+1;
    j:=integer(uncode[i]);
    if j=1 then
      begin
        fillchar(mess,30,$00);
        j:=0;
        i:=i+9;
        h1:=integer(uncode[i]); //第一个人物的等级
        i:=i+1;
        g:=integer(uncode[i]);
        p:=get_ID(g);
        i:=i+p*4+6;
        g:=integer(uncode[i]);
        for n:=i+1 to i+g do
        begin
          mess[j]:= uncode[n];
          j:=j+1;
        end;
        M1:=format('%s',[mess]);
        form2.bsSkinComboBox2.Items.Add(M1);
      end;
    if j=2 then
      begin
          fillchar(mess,30,$00);
          j:=0;
          i:=i+9;
          h1:=integer(uncode[i]); //第一个人物的等级
          i:=i+1;
          g:=integer(uncode[i]);
          p:=get_ID(g);
          i:=i+p*4+6;
          g:=integer(uncode[i]);
          for n:=i+1 to i+g do
            begin
              mess[j]:= uncode[n];
              j:=j+1;
            end;
         M1:=format('%s',[mess]);
         form2.bsSkinComboBox2.Items.Add(M1);
         fillchar(mess,30,$00);
         j:=0;
         i:=i+g+9;
         h2:=integer(uncode[i]);//第二个人物的等级
         i:=i+1;
         g:=integer(uncode[i]);
          p:=get_ID(g);
          i:=i+p*4+6;
          g:=integer(uncode[i]);
          for n:=i+1 to i+g do
            begin
              mess[j]:= uncode[n];
              j:=j+1;
            end;
         M2:=format('%s',[mess]);
         form2.bsSkinComboBox2.Items.Add(M2);
        end;
    if j=3 then
      begin
        fillchar(mess,30,$00);
          j:=0;
          i:=i+9;
          h1:=integer(uncode[i]); //第一个人物的等级
          i:=i+1;
          g:=integer(uncode[i]);
          p:=get_ID(g);
          i:=i+p*4+6;
          g:=integer(uncode[i]);
          for n:=i+1 to i+g do
            begin
              mess[j]:= uncode[n];
              j:=j+1;
            end;
         M1:=format('%s',[mess]);
         form2.bsSkinComboBox2.Items.Add(M1);
         fillchar(mess,30,$00);
         j:=0;
         i:=i+g+9;
         h2:=integer(uncode[i]);//第二个人物的等级
         i:=i+1;
         g:=integer(uncode[i]);
          p:=get_ID(g);
          i:=i+p*4+6;
          g:=integer(uncode[i]);
          for n:=i+1 to i+g do
            begin
              mess[j]:= uncode[n];
              j:=j+1;
            end;
         M2:=format('%s',[mess]);
         form2.bsSkinComboBox2.Items.Add(M2);
         fillchar(mess,30,$00);
         j:=0;
         i:=i+g+9;
         h3:=integer(uncode[i]);//第三个人物的等级
         i:=i+1;
         g:=integer(uncode[i]);
          p:=get_ID(g);
          i:=i+p*4+6;
          g:=integer(uncode[i]);
          for n:=i+1 to i+g do
            begin
              mess[j]:= uncode[n];
              j:=j+1;
            end;
         M3:=format('%s',[mess]);
         form2.bsSkinComboBox2.Items.Add(M3);
      end;
end;


procedure recv1(s:Tsocket);//进入游戏的第一个包
var
  i,j,n:integer;
begin
  fillchar(buff,BUFFERSIZE,$00);
  recv(s,buff,BUFFERSIZE,0);
  decode(2);
  j:=0;
  n:=strlen(uncode);
  for i:=7 to n do
    begin
      coco[j]:=uncode[i];
      j:=j+1;
    end;
  //coco将被发送出去进行验证,同时利用coco产生新的key_tab作为进入系统以后的加密
  //  ****************重新定义Key_tab
  fillchar(buf_4,5,$00);
  for i:=0 to 3 do  
    begin
      buf_4[i]:=coco[i];
    end;
  get_keytab;
  //  ****************重新定义Key_tab
end;

end.


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -