欧美性猛交黑人xxxx,成人毛片一区二区三区,久久综合九色综合精品,男的把j放进女人下面视频免费

木馬中如何編程實現遠程關機

  • 發布于:2023-11-01
  • 196 人圍觀

  遠程控制中,有一個重要的部份就是如何實現遠程關機,如在各種黑客入侵中,我們到處可以見到木馬的身影,木馬它作為一種遠程控制軟件,它一般是實現了遠程關機功能的。如我國大名鼎鼎的木馬“冰河”等,都是有這個功能的,只是它是各種功能的集合罷了,今天我們就來看看這個重要的關機部分是如何編程實現的,在這里我就用眼下流行的VC6.0來編寫,同時用VC也大大減少了我們的一些設計工作,讓我們的菜鳥也來動手寫一下自己的入侵工具。

  在木馬中,我們是采用的讓客戶端Socket給服務端的Socket發送相關的指令,同時當服務端收到相應的指令后,就執行相對應的操作指令,這些操作當然是在服務端的計算機上所進行的。而這個操作實質就是調用相應的函數來處理,這個函數及其參數說明就是如下:

  BOOL ExitWindowsEx(UINT uFlags,DWORD dwReserved);

  在其中uFlags可以有的取值:

  EWX_LOGOFF:注消; EWX_POWEROFF:強制關機; EWX_REBOOT:重啟;

  EWX_SHUTDOWN:先保存再關機; EWX_FORCE:不保存就關機; 

  EWX_FORCEIFHUNG:不保存就關機(WIN2K以上版本);

  好了,接下來我們就在VC中來用這個函數實現我們所要的功能。

  首先,由VC中的向導生成一個對話框,注意在生成向導中要選擇成靜態聯編,由于我們在木馬中一般是常用的是重啟,那么我們就把這個程序取名為reboot吧!去掉它默認生成的靜態文本,然后添加了三個單選項。并把其它主要的項設定如下:

控件 ID 屬性
Button1 OnOK “確定”
Button2 OnCancel “取消”
Radio1 IDC_LOGOFF “注消計算機”
Radio2 IDC_REBOOT “重啟計算機”
Radio3 IDC_SHUTDOWN “關閉計算機”

  第二,打開MFC ClassWizard進行消息的映射處理,五個主要的控件都是用單擊這個消息處理,從而為為每個控件進行了消息映射。

  第三、在rebootDlg.h中為三個單選按鈕添加一個標志成員整形變量m_mark。并且在三個單選項按鈕的函數體分別加入m_mark=0, m_mark=1, m_mark=2,如:(另兩個也同理)

void CRebootDlg::OnLogoff()
{
 // TODO: Add your control notification handler code here
 m_mark=0;
}

  第四、在雙擊“確定”的按鈕,去掉它原來默認調用的ONOK(),并且加入以下的代碼為:

void CRebootDlg::OnCok()
{
 // TODO: Add your control notification handler code here
 HANDLE hToken;
 TOKEN_PRIVILEGES tkp;
 DWORD dwVersion; //版本號

 dwVersion = GetVersion(); //得到WINDOWS NT或Win32的版本號

 switch(m_mark)//由接收單選項值進行相關操作
 {
  case 0:
   ExitWindowsEx(EWX_LOGOFF,0);
   break; //注消操作
  case 1:
   if(dwVersion < 0x80000000)
   {
    OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken);
    LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);
    tkp.PrivilegeCount = 1; //設置權限
    tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
    AdjustTokenPrivileges(hToken,FALSE,&tkp,0,(PTOKEN_PRIVILEGES)NULL,0);
    ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE,0);
   }
   else //WIN系列其它系統
   {
    ExitWindowsEx(EWX_FORCE | EWX_REBOOT,0);
   }
   break; //重啟操作
  case 2:
   if(dwVersion < 0x80000000)//用于判斷WIN系列,從而設置相應的權限
   {
    OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES |TOKEN_QUERY,&hToken);
    LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);
    tkp.PrivilegeCount = 1;
    tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
    AdjustTokenPrivileges(hToken,FALSE,&tkp,0,(PTOKEN_PRIVILEGES)NULL,0);
    ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE,0);
   }
   else
   {
    ExitWindowsEx(EWX_FORCE | EWX_SHUTDOWN ,0);
   }
   break;//關閉計算機
  }
 }

  第五、“取消”可以不做處理,采用默認的就可了,然后編譯運行完成,這樣你就為你的木馬編寫了遠程關機部分。最后要是你有什么問題討論請聯系:anmeihong@sina.com

萬企互聯
標簽: