📄 scanlinks.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 + -