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

📄 scanlinks.pas

📁 明小子旁注Domain3.0和Domain2.2两个版本源码
💻 PAS
字号:
{##########################################
         旁注入侵专用程序 3.0升级版
 ----------------------------------------
  模块:网页扫描 - 扫描注入点
  描述:该单元主要是扫描注入点的线程单元
  作者:2005.3.20日下午  明小子
##########################################}

unit ScanLinks;

interface

uses
  Classes, Windows, SysUtils, StdCtrls, Wininet, GetHtmlCode,
  RzLstBox, GetLinks, CheckUrlAddr;

type
  ScanUrlLinks = class(TThread)
  private
   { Th_Lsb: TRZListBox;
    Th_Memo2: TMemo;
    ifor: integer;
    HTMLCode: string;
    Num: integer;   }
    Th_ReadLst, Th_SaveToLsb: TRZListBox;
    HTMLCode: string;
    Th_Num: integer;
    procedure UPDataMemo;
  protected
    procedure Execute; override;
  public
   // constructor Create(SaveMemo: TMemo; TempList: TRZListBox; TempNum: integer);
    constructor Create(ReadLst, SaveToLsb: TRzListBox; TempNum: integer);
  end;

implementation

uses MainUnit;

{constructor Th_GetURL.Create(SaveMemo: TMemo; TempList: TRZListBox; TempNum: integer);
begin
  Th_Lsb := TempList;
  Th_Memo2 := SaveMemo;
  Num := TempNum;
  FreeOnTerminate := True;
  inherited Create(False);
end; }

constructor ScanUrlLinks.Create(ReadLst, SaveToLsb: TRzListBox; TempNum: integer);
begin
  Th_ReadLst := ReadLst;
  Th_SaveToLsb := SaveToLsb;
  Th_Num := TempNum;
  FreeOnTerminate := True;
  inherited Create(False);
end;

{procedure Th_GetURL.UPDataMemo; //同步过程
var
  j, j2: integer;
begin
  MainForm.Gauge1.Progress := ifor;

  if CheckUrl(Th_Lsb.Items[ifor]) then
  begin
    HTMLCode := UrlGetStr(Th_Lsb.Items[ifor]);
    Th_Memo2.Lines.Add(CutStr(Th_Lsb.Items[ifor], HTMLCode));
    Th_Memo2.Lines.Delete(Th_Memo2.Lines.Count - 1);
  end;

  if ifor = Th_Lsb.Items.Count - 1 then //如果连接地址读取完毕,那么创建扫描注入点的线程
  begin
    if Th_Memo2.Lines.Count = 0 then
    begin
      MainForm.RzGroupBox15.Caption := '连接地址:没有发现任何地址,程序只读取存在".asp?"的连接地址进行检测!';
      MainForm.RzGroupBox6.Caption := '检测:检测完毕!';
      Exit;
    end;
    j2 := 0;
    MainForm.Pane1.Caption := '连接地址读取完毕,程序创建了' + inttostr(MainForm.TrackBar1.Position) + '个检测线程,正在检测中...';
    MainForm.Gauge1.MaxValue := 100;
    MainForm.Timer1.Enabled := True;
    sleep(50);
    SetLength(Scan_Inject, MainForm.TrackBar1.Position); //动态设置线程的数量
    MainForm.Scan_inject_Count := MainForm.TrackBar1.Position;
    for j := 0 to MainForm.TrackBar1.Position - 1 do
    begin
      inc(j2);
      Scan_Inject[j] := Thject.Create(MainForm.LinksMemo, MainForm.sqlListView, j2, MainForm.TrackBar1.Position);
      sleep(40);
    end;
    MainForm.Gauge1.Progress := 0;
    MainForm.RzGroupBox6.Caption := '检测:正在检测注入点...';
  end;
end;  }

procedure ScanUrlLinks.UPDataMemo;
begin
  Th_SaveToLsb.Items.Text := Th_SaveToLsb.Items.Text + CutStr(Th_ReadLst.Items[Th_Num], HTMLCode, MainForm.SpinEdit1.Value);
end;

procedure ScanUrlLinks.Execute;
var
 { P: integer;
  Url: string;
  i, j: integer;
  AVG, LinkCount, ThreadCount: integer;  }

  P: integer;
  Url: string;
begin

 // LinkCount := Th_Lsb.Items.Count; {网址的数量}
 //  ThreadCount := 10; {线程的数量}

  {两数相除,得到他们的平均值}

 { if (LinkCount mod ThreadCount) > 0 then
    AVG := (LinkCount div ThreadCount) + 1
  else
    AVG := LinkCount div ThreadCount;

  for i := ((Num * AVG) - AVG) to ((Num * AVG) - 1) do
  begin
    if Terminated then Exit;
    if i >= linkCount then Exit;
    ifor := i;
    Synchronize(UpdataMemo);
    sleep(100);
  end;   }

  try
    HTMLCode := UrlGetStr(Trim(Th_ReadLst.Items[Th_Num]));
    Synchronize(UPDataMemo);
    sleep(100);
  except
  end;

end;

end.

⌨️ 快捷键说明

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