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

📄 try4view.cpp

📁 几年前用vc6写的漏洞扫描器
💻 CPP
📖 第 1 页 / 共 2 页
字号:
			tp2.hTI        = hCh2;

			for(int i=1;i<=nMaxThread;i++)
		    	AfxBeginThread(ScanPort,&tp2,THREAD_PRIORITY_IDLE);

			while(1)
			{
			    if(NowWhere>=gnEndPort)
				{

					AddToEdit(threadparam1->hWnd,"开放端口扫描完成",strStartIPAddr);

	
					nCount++;
					break;
				}
			}
		}
		else
			nCount++;

		if(gnScanOptions[2]==1)
		{
			AddToEdit(threadparam1->hWnd,"正在检测NetBios信息...",strStartIPAddr);
			
			HTREEITEM hCh3=(threadparam1->pTC)->InsertItem("NetBios信息",1,1,hRoot,TVI_LAST);
			
			if(!bStoped)
				GetNetBios(threadparam1->hWnd,strStartIPAddr,threadparam1->pTC,hCh3);

			AddToEdit(threadparam1->hWnd,"NetBios信息扫描完成",strStartIPAddr);

			nCount++;
		}
		else
			nCount++;

		if(gnScanOptions[3]==1)
		{
			AddToEdit(threadparam1->hWnd,"正在检测NT Server 弱口令...",strStartIPAddr);
			HTREEITEM hCh4=(threadparam1->pTC)->InsertItem("NT Server 弱口令",1,1,hRoot,TVI_LAST);

			if(!bStoped)
			    GetNTWkPass(threadparam1->hWnd,strStartIPAddr,threadparam1->pTC,hCh4);
									
			AddToEdit(threadparam1->hWnd,"NT Server弱口令扫描完成",strStartIPAddr);

			nCount++;
		}
		else
			nCount++;

		if(gnScanOptions[4]==1)
		{
			AddToEdit(threadparam1->hWnd,"正在检测CGI漏洞...",strStartIPAddr);

			HTREEITEM hCh5=(threadparam1->pTC)->InsertItem("CGI漏洞",1,1,hRoot,TVI_LAST);
	        
			if(!bStoped)
			    CGIScan(threadparam1->hWnd,strStartIPAddr,threadparam1->pTC,hCh5);
									
			AddToEdit(threadparam1->hWnd,"CGI漏洞扫描完成",strStartIPAddr);
					
			nCount++;
		}	
		else
			nCount++;
	}
	else
	{
		bStoped=true;
		AddToEdit(threadparam1->hWnd,"主机没有响应",strStartIPAddr);

	    gMessage+="\r\n\r\n扫描全部完成.";

	    ::SetWindowText(threadparam1->hWnd,gMessage);
	    ::UpdateWindow(threadparam1->hWnd);

		return 0;
	}



	while(1){
	
	if(nCount>=5)
	{
		bStoped = true;
	    gMessage+="\r\n\r\n扫描全部完成.";

	    ::SetWindowText(threadparam1->hWnd,gMessage);
        ::UpdateWindow(threadparam1->hWnd);

		CFile fileResult("ScanResult.txt",CFile::modeWrite|CFile::modeCreate);

		fileResult.Write(gMessage,gMessage.GetLength());
		fileResult.Close();

		break;
	}


	}

	return 0;
}


//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^END








/////////////////////////////////////////////////////////////////////////////
// CTry4View

IMPLEMENT_DYNCREATE(CTry4View, CFormView)

BEGIN_MESSAGE_MAP(CTry4View, CFormView)
	//{{AFX_MSG_MAP(CTry4View)
	ON_COMMAND(IDM_PARAM, OnParam)
	ON_COMMAND(IDM_MODULE, OnModule)
	ON_COMMAND(IDM_START, OnStart)
	ON_COMMAND(IDM_HOSTNAME, OnHostname)
	ON_COMMAND(IDM_IPADDR, OnIpaddr)
	ON_COMMAND(IDM_NETTOIP, OnNettoip)
	ON_WM_SIZE()
	ON_NOTIFY(NM_DBLCLK, IDC_TREE, OnDblclkTree)
	ON_COMMAND(IDM_VIEWRESULT, OnViewresult)
	ON_COMMAND(IDM_STOP, OnStop)
	ON_UPDATE_COMMAND_UI(IDM_START, OnUpdateStart)
	ON_UPDATE_COMMAND_UI(IDM_STOP, OnUpdateStop)
	ON_UPDATE_COMMAND_UI(IDM_PARAM, OnUpdateParam)
	ON_UPDATE_COMMAND_UI(IDM_MODULE, OnUpdateModule)
	ON_UPDATE_COMMAND_UI(IDM_VIEWRESULT, OnUpdateViewresult)
	ON_COMMAND(IDM_EXIT, OnExit)
	ON_NOTIFY(TVN_SELCHANGED, IDC_TREE, OnSelchangedTree)
	ON_COMMAND(IDM_HELP, OnHelp)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CFormView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CFormView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CFormView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTry4View construction/destruction

CTry4View::CTry4View()
	: CFormView(CTry4View::IDD)
{
	//{{AFX_DATA_INIT(CTry4View)
	m_strEdit = _T("");
	m_sEdit = _T("");
	//}}AFX_DATA_INIT
	// TODO: add construction code here
	
  
}

CTry4View::~CTry4View()
{
}

void CTry4View::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CTry4View)
	DDX_Control(pDX, IDC_TREE, m_tree);
	DDX_Control(pDX, IDC_EDIT2, m_edit2);
	DDX_Control(pDX, IDC_EDIT1, m_edit1);
	DDX_Text(pDX, IDC_EDIT1, m_strEdit);
	DDX_Text(pDX, IDC_EDIT2, m_sEdit);
	//}}AFX_DATA_MAP
}

BOOL CTry4View::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CFormView::PreCreateWindow(cs);
}

void CTry4View::OnInitialUpdate()
{
	CFormView::OnInitialUpdate();
	GetParentFrame()->RecalcLayout();
	ResizeParentToFit();

	m_edit1.ShowWindow(SW_HIDE);
	m_tree.ShowWindow(SW_HIDE);

	
    m_edit2.SetFocus();   

    UINT BytesRead;
    char Data[20000];    
	CFile helpFile("使用说明.txt",CFile::modeRead);    
    	  
    BytesRead = helpFile.Read(Data, 15000 ) ;        
    Data[BytesRead]= '\0' ;

    m_sEdit = _T(Data) ;	
	UpdateData(FALSE);

	helpFile.Close();
 




}

/////////////////////////////////////////////////////////////////////////////
// CTry4View printing

BOOL CTry4View::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CTry4View::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CTry4View::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

void CTry4View::OnPrint(CDC* pDC, CPrintInfo* /*pInfo*/)
{
	// TODO: add customized printing code here
}

/////////////////////////////////////////////////////////////////////////////
// CTry4View diagnostics

#ifdef _DEBUG
void CTry4View::AssertValid() const
{
	CFormView::AssertValid();
}

void CTry4View::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}

CTry4Doc* CTry4View::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CTry4Doc)));
	return (CTry4Doc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CTry4View message handlers



void CTry4View::OnParam() 
{
	// TODO: Add your command handler code here
	CParamDlg pDlg;
	pDlg.DoModal();
	
}


void CTry4View::OnModule() 
{
	// TODO: Add your command handler code here
	CModuleDlg mDlg;
	mDlg.DoModal();
	
}

void CTry4View::OnStart() 
{ 

	m_edit2.ShowWindow(SW_HIDE);
    m_edit1.ShowWindow(SW_SHOW);
	m_edit1.UpdateWindow();
	m_tree.ShowWindow(SW_SHOW);
	m_tree.UpdateWindow();

	bStoped = false;

	m_tree.DeleteAllItems();
	m_strEdit=_T("");


	// TODO: Add your command handler code here

/*
	CString strOpt[5]={"Route Info","Open Port","Netbios Info","CGI","Nt Server"};


	CString p;
	p.Format("Scan From %d To %d ...",gnStartPort,gnEndPort);

	CString h;
	h.Format("Scan From %d To %d...",gdwStartIPAddr,gdwEndIPAddr);

	AfxMessageBox(p);
	AfxMessageBox(h);
	
	for(int i=0;i<5;i++)
	{

		if(gnScanOptions[i]==1)
			AfxMessageBox("Is Scanning "+strOpt[i]);
	}
	*/


  // CWinThread *pThread=
	
	tp1.hWnd=GetDlgItem(IDC_EDIT1)->GetSafeHwnd();
	tp1.hwnd=GetDlgItem(IDC_TREE)->GetSafeHwnd();
	tp1.pTC=&m_tree;

	AfxBeginThread(StartScan,&tp1,THREAD_PRIORITY_IDLE);
	
}

void CTry4View::OnHostname() 
{
	// TODO: Add your command handler code here
	CHostName HostNameDlg;
	HostNameDlg.DoModal();
}

void CTry4View::OnIpaddr() 
{
	// TODO: Add your command handler code here
	CIPAddr IPAddrDlg;
	IPAddrDlg.DoModal();
	
}



void CTry4View::OnNettoip() 
{
	// TODO: Add your command handler code here
	CNETTOIP netToIP;
	netToIP.DoModal();
	
}


void CTry4View::OnSize(UINT nType, int cx, int cy) 
{
	CFormView::OnSize(nType, cx, cy);
	
	// TODO: Add your message handler code here
    

	
}

void CTry4View::OnDblclkTree(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here

	if(strTreeCurrent=="用户列表")
		::ShellExecute(NULL,_T("Open"),_T("UserInfo.txt"),NULL,NULL,TRUE);

    if(strTreeCurrent=="共享列表")
		::ShellExecute(NULL,_T("open"),_T("ShareInfo.txt"),NULL,NULL,TRUE);

	if(strTreeCurrent=="远程操作系统信息")
		::ShellExecute(NULL,_T("open"),"ServerInfo.txt",NULL,NULL,TRUE);

		*pResult = 0;
}

void CTry4View::OnViewresult() 
{
	// TODO: Add your command handler code here
	::ShellExecute(NULL,_T("open"),"ScanResult.txt",NULL,NULL,TRUE);
	
}

void CTry4View::OnStop() 
{
	// TODO: Add your command handler code here
	
	int i=::MessageBox(NULL,"扫描正在进行,要强行终止吗?","终止扫描",MB_OKCANCEL);
	if(i==IDOK)	
	{
		bStoped = true;

		gMessage+="\r\n\r\n正在结束线程...\r\n\r\n扫描全部完成.";

		HWND hWnd=GetDlgItem(IDC_EDIT1)->GetSafeHwnd();

	    ::SetWindowText(hWnd,gMessage);
        ::UpdateWindow(hWnd);

	    CFile fileResult("ScanResult.txt",CFile::modeWrite|CFile::modeCreate);

		fileResult.Write(gMessage,gMessage.GetLength());
		fileResult.Close();
	}

}


void CTry4View::OnUpdateStart(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here

	if(!bStoped)
		pCmdUI->Enable(false);
	
}

void CTry4View::OnUpdateStop(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	if(bStoped)
		pCmdUI->Enable(false);
}

void CTry4View::OnUpdateParam(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
		if(!bStoped)
		pCmdUI->Enable(false);

	
}

void CTry4View::OnUpdateModule(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	if(!bStoped)
		pCmdUI->Enable(false);
	
}

void CTry4View::OnUpdateViewresult(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
		if(!bStoped)
		pCmdUI->Enable(false);
	
}


void CTry4View::OnExit() 
{
	// TODO: Add your command handler code here

	
	if(!bStoped)
	{
		int i=::MessageBox(NULL,"扫描正在进行,真要强行退出吗?","退出",MB_OKCANCEL);
        if(i==IDCANCEL)
			return;
		else
			bStoped=true;		

	}
}

void CTry4View::OnSelchangedTree(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
	// TODO: Add your control notification handler code here
	hTreeCurrent=m_tree.GetSelectedItem ();
	strTreeCurrent=m_tree.GetItemText(hTreeCurrent);

	*pResult = 0;
}
 
void CTry4View::OnHelp() 
{
	// TODO: Add your command handler code here

    ::ShellExecute(NULL,_T("open"),"使用说明.txt",NULL,NULL,TRUE);

	
}

⌨️ 快捷键说明

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