📄 main.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "clipbrd.hpp"
#include "main.h"
#include "dict.h"
#include "report.h"
#include "function_net.h"
#include "function_1.h"
#include "thread_ping.h"
#include "syncobjs.hpp"
//#include "windows.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
extern unsigned long ping_ip_start;
extern unsigned long ping_ip_stop;//开始,结束的ip
extern int cur_ip,ping_thread_no;//已工作的ip数
extern int share_ip_no,share_thread_no;//已工作的ip数
extern boolean thread_run;//已工作的ip数
extern boolean only_ping;
extern boolean lookup_name;
extern boolean lookup_user;//查找用户信息
extern boolean lookup_system;//查找系统信息
extern boolean lookup_Services;//查找系统信息
extern boolean do_select;//只对选择的工作
extern int pass_no;//生成内定密码的位置
extern TStringList * port_lists;
extern TStringList * main_list;
extern int scan_thread_no;//scan线程数量
extern int scan_port_ip;//scan当前的IP
extern int scan_port_no;//scan当前的端口号
extern int thread_type;//scan线程数量
TCriticalSection *ping_CriticalSection;//全局临界变量
int Version=98;//版本控制
Tmain_f *main_f;
//---------------------------------------------------------------------------
__fastcall Tmain_f::Tmain_f(TComponent* Owner)
: TForm(Owner)
{
}
//-扫描共享资料--------------------------------------------------------------------------
void __fastcall Tmain_f::Button2Click(TObject *Sender)
{
if (!(check_ip(Edit5->Text)&&check_ip(Edit6->Text)))
return;//检查IP是否合法
ping_ip_start=strtoip(Edit5->Text); ping_ip_stop=strtoip(Edit6->Text);
cur_ip=0;
share_ip_no=0;
// main_f->Edit10->Text="0";
Bar->Max=ping_ip_stop-ping_ip_start;
thread_run=true;
if (CheckBox3->Checked)
creat_ping(StrToInt(Edit13->Text)); //建立线程
else
{
tree_ping->Items->Clear();Edit9->Text="0";
creat_ping(StrToInt(Edit13->Text)); //建立线程
}
}
//---------------------------------------------------------------------------
void __fastcall Tmain_f::FormCreate(TObject *Sender)
{
//系统检测
init_main_f();//初始数据
Edit35->Text=IntToStr(this->ComponentCount);
Application->OnException=my_Exception;
OSVERSIONINFOEX osvi;
BOOL bOsVersionInfoEx;
ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
if( !(bOsVersionInfoEx = GetVersionEx ((OSVERSIONINFO *) &osvi)) )
{
osvi.dwOSVersionInfoSize = sizeof (OSVERSIONINFO);
if (! GetVersionEx ( (OSVERSIONINFO *) &osvi) )
return;
}
switch (osvi.dwPlatformId)
{
case VER_PLATFORM_WIN32_NT:
if ( osvi.dwMajorVersion <= 4 ) Version=40;//是nt4.0
if ( osvi.dwMajorVersion == 5 ) Version=2000;//windows2000
break;
case VER_PLATFORM_WIN32_WINDOWS:
if ((osvi.dwMajorVersion > 4) ||
((osvi.dwMajorVersion == 4) && (osvi.dwMinorVersion > 0)))
Version=98;//是widnows98
else Version=95;//是 Windows 95
break;
case VER_PLATFORM_WIN32s:
Version=32;//"Microsoft Win32;
}
ping_CriticalSection=new TCriticalSection();//全局临界变量
WSAData GInitData;
if (WSAStartup(101,&GInitData)!=0)
ShowMessage("初始化SOCKET函数失败!");
port_lists=new TStringList();
main_list=new TStringList();
}
//---------------------------------------------------------------------------
void __fastcall Tmain_f::FormClose(TObject *Sender, TCloseAction &Action)
{
save_main_f();//保存数据
ado_q->Close();ado_pub->Close();
port_lists->Free();
main_list->Free();
ping_CriticalSection->Free();
}
//---------------------------------------------------------------------------
void __fastcall Tmain_f::share_checkClick(TObject *Sender)
{
BitBtn4->Enabled=!share_check->Checked;
main_f->BitBtn5->Enabled=!share_check->Checked;
}
//---------------------------------------------------------------------------
void __fastcall Tmain_f::BitBtn4Click(TObject *Sender)
{
int no=StrToInt(Edit15->Text);
share_ip_no=0;
share_thread_no=0;
Edit10->Text="0";
thread_run=true;
main_f->BitBtn4->Enabled=false;
main_f->BitBtn5->Enabled=false;
if (do_select)//若只对选择工作,则一个线程足已
{
creat_share();
}
else
{ while (no>0)
{
creat_share();
no--;
}
}
}
//---------------------------------------------------------------------------
void __fastcall Tmain_f::N4Click(TObject *Sender)
{
((TMemo *)memo_m->PopupComponent)->Clear();
// tree_share->Items->Clear();
}
//---------------------------------------------------------------------------
void __fastcall Tmain_f::N1Click(TObject *Sender)
{
((TTreeView *)share_tree_m->PopupComponent)->FullExpand();
}
//---------------------------------------------------------------------------
void __fastcall Tmain_f::N2Click(TObject *Sender)
{
((TTreeView *)share_tree_m->PopupComponent)->FullCollapse();
}
//---------------------------------------------------------------------------
//-扫描端口------------------------------------
void __fastcall Tmain_f::Button1Click(TObject *Sender)
{
if (!(check_ip(Edit1->Text)&&check_ip(Edit2->Text)))
return;//检查IP是否合法
ping_ip_start=strtoip(Edit1->Text); ping_ip_stop=strtoip(Edit2->Text);
thread_run=true;
thread_type=10;//1代表是端口扫描的线程
if (!(CheckBox6->Checked))
{scan_ip->Text="";scan_edit2->Text="0";scan_edit3->Text="0";
scan_edit4->Text="0";
Tree_port->Items->Clear();
}
creat_scan_ping(StrToInt(Edit13->Text)); //建立线程
}
//---------------------------------------------------------------------------
void __fastcall Tmain_f::CheckBox1Click(TObject *Sender)
{
only_ping=CheckBox1->Checked;
}
//---------------------------------------------------------------------------
void __fastcall Tmain_f::CheckBox2Click(TObject *Sender)
{
lookup_name=CheckBox2->Checked;
}
//---------------------------------------------------------------------------
void __fastcall Tmain_f::BitBtn1Click(TObject *Sender)
{
int i;
boolean temp;
if (open_port->Execute())
{
port_lists->LoadFromFile(open_port->FileName);
port_list->Items->Clear();
for (i=0;i<port_lists->Count;i++)
{
temp=(port_lists->Strings[i][1]=='+');
port_list->Items->Add(Trim(port_lists->Strings[i].Delete(1,2)));
port_list->Checked[i]=temp;
}
port_lists->Clear();
}
}
//---------------------------------------------------------------------------
void __fastcall Tmain_f::BitBtn3Click(TObject *Sender)
{
int i;
if (save_port->Execute())
{
port_lists->Clear();
for (i=0;i<port_list->Items->Count;i++)
{
if (port_list->Checked[i])
port_lists->Add("+,"+port_list->Items->Strings[i]);
else
port_lists->Add("-,"+port_list->Items->Strings[i]);
}
port_lists->SaveToFile(save_port->FileName);
port_lists->Clear();
}
}
//---------------------------------------------------------------------------
void __fastcall Tmain_f::BitBtn2Click(TObject *Sender)
{
int i;
for (i=0;i<port_list->Items->Count;i++)
{
port_list->Checked[i]=false;
}
}
//---------------------------------------------------------------------------
void __fastcall Tmain_f::BitBtn8Click(TObject *Sender)
{
int i;
for (i=0;i<port_list->Items->Count;i++)
{
port_list->Checked[i]=true;
}
}
//---------------------------------------------------------------------------
void __fastcall Tmain_f::Button18Click(TObject *Sender)
{
if (Button18->Caption=="连接")
{ado_pub->Close();
ado_pub->ConnectionString="Provider=SQLOLEDB;Password="+Edit31->Text
+";Persist Security Info=True;User ID="+Edit30->Text
+";Initial Catalog=master;Data Source="+Edit29->Text;
ado_pub->Open();
}else ado_pub->Close();
}
//---------------------------------------------------------------------------
void __fastcall Tmain_f::ado_qAfterOpen(TDataSet *DataSet)
{
sql_cmd->Lines->Add("shell:\""+Edit32->Text);
DataSet->First();
while (!(DataSet->Eof))
{
sql_cmd->Lines->Add(DataSet->FieldByName("output")->AsString);
DataSet->Next();
}
sql_cmd->Lines->Add("操作完成");
}
//---------------------------------------------------------------------------
void __fastcall Tmain_f::BitBtn9Click(TObject *Sender)
{
ado_q->Close();
ado_q->SQL->Text="exec xp_cmdshell '"+Edit32->Text+"'";
ado_q->Open();
}
//---------------------------------------------------------------------------
void __fastcall Tmain_f::ado_pubAfterConnect(TObject *Sender)
{
sql_cmd->Lines->Add("user:"+Edit30->Text+" Pass:"+Edit31->Text+" ->已连接成功!");
Button18->Caption="断开";
}
//---------------------------------------------------------------------------
void __fastcall Tmain_f::ado_pubBeforeConnect(TObject *Sender)
{
sql_cmd->Lines->Add("正在连接...请稍等!");
}
//---------------------------------------------------------------------------
void __fastcall Tmain_f::ado_pubAfterDisconnect(TObject *Sender)
{
sql_cmd->Lines->Add("连接已断开!");
Button18->Caption="连接";
}
//---------------------------------------------------------------------------
void __fastcall Tmain_f::Edit32KeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if (Key==13)
{
Edit32->Items->Add(Edit32->Text);
BitBtn9Click(NULL);
Edit32->SelectAll();
}
}
//---------------------------------------------------------------------------
//屏蔽错误
void __fastcall Tmain_f::my_Exception(TObject *Sender,Exception *E)
{
// Application->MessageBoxA(E->Message.c_str(),"洗碗虫",0);
}
void __fastcall Tmain_f::Button13Click(TObject *Sender)
{
dict_f->Show();
}
//---------------------------------------------------------------------------
void __fastcall Tmain_f::Button8Click(TObject *Sender)
{
if (!(check_ip(Edit17->Text)&&check_ip(Edit18->Text)))
return;//检查IP是否合法
ping_ip_start=strtoip(Edit17->Text); ping_ip_stop=strtoip(Edit18->Text);
Bar->Max=ping_ip_stop-ping_ip_start;
thread_run=true;
if (CheckBox4->Checked)
creat_sql_ping(StrToInt(Edit26->Text)); //建立线程
else
{
ListBox2->Items->Clear();Edit24->Text="0";Edit21->Text="0";
creat_sql_ping(StrToInt(Edit26->Text)); //建立线程
}
}
//---------------------------------------------------------------------------
void __fastcall Tmain_f::sql_cmdDblClick(TObject *Sender)
{
if (sql_cmd->Left!=3)
{
sql_cmd->Left=3;
sql_cmd->Width=550;
Edit32->Left=3;
Edit32->Width=524;
} else
{
sql_cmd->Left=261;
sql_cmd->Width=292;
Edit32->Left=261;
Edit32->Width=267;
}
}
//---------------------------------------------------------------------------
void __fastcall Tmain_f::ListBox2DblClick(TObject *Sender)
{
Edit29->Text=ListBox2->Items->Strings[ListBox2->ItemIndex];
}
//---------------------------------------------------------------------------
void __fastcall Tmain_f::N9Click(TObject *Sender)
{
if (save_port->Execute())
{
((TMemo *)memo_m->PopupComponent)->Lines->SaveToFile(save_port->FileName);
}
}
//---------------------------------------------------------------------------
void __fastcall Tmain_f::MenuItem5Click(TObject *Sender)
{
if (open_port->Execute())
{
((TTreeView *)share_tree_m->PopupComponent)->LoadFromFile(open_port->FileName);
}
}
//---------------------------------------------------------------------------
void __fastcall Tmain_f::N5Click(TObject *Sender)
{
if (save_port->Execute())
{
((TListBox *)listbox_m->PopupComponent)->Items->SaveToFile(save_port->FileName);
}
}
//---------------------------------------------------------------------------
void __fastcall Tmain_f::N6Click(TObject *Sender)
{
if (open_port->Execute())
{
((TListBox *)listbox_m->PopupComponent)->Items->LoadFromFile(open_port->FileName);
}
}
//---------------------------------------------------------------------------
void __fastcall Tmain_f::MenuItem4Click(TObject *Sender)
{
if (save_port->Execute())
{
((TTreeView *)share_tree_m->PopupComponent)->SaveToFile(save_port->FileName);
}
}
//---------------------------------------------------------------------------
void __fastcall Tmain_f::N10Click(TObject *Sender)
{
if (open_port->Execute())
{
((TMemo *)memo_m->PopupComponent)->Lines->LoadFromFile(open_port->FileName);
}
}
//---------------------------------------------------------------------------
void __fastcall Tmain_f::MenuItem7Click(TObject *Sender)
{
((TTreeView *)share_tree_m->PopupComponent)->Items->Clear();
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -