zoukankan      html  css  js  c++  java
  • 服务管理,Dll查看

    //枚举系统进程
    VOID CManageProcessDlg::ShowProcess()
    {
        
         m_ListProcess.DeleteAllItems();
         HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,NULL);
         //...

         PROCESSENTRY32 Pe32 = {0};
         Pe32.dwSize = sizeof(PROCESSENTRY32);
         int bRet = Process32First(hSnap,&Pe32);
         //...
         CString strTemp;
         DWORD dwIndex = 0;
         while(bRet)
         {
              //...
              bRet = Process32Next(hSnap,&Pe32);
              strTemp.Format("%d",Pe32.th32ProcessID);
              m_ListProcess.InsertItem(dwIndex,strTemp);
              m_ListProcess.SetItemText(dwIndex,1,Pe32.szExeFile);
              dwIndex ++;
         }

    }

    //列表控件的初始化
    void CManageProcessDlg::InitList()
    {
         m_ListProcess.SetExtendedStyle(m_ListProcess.GetExtendedStyle() |
              LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);

         m_ListProcess.InsertColumn(0,_T("NO"));
         m_ListProcess.InsertColumn(1,_T("进程名"));

         m_ListProcess.SetColumnWidth(0,LVSCW_AUTOSIZE_USEHEADER);
         m_ListProcess.SetColumnWidth(1,LVSCW_AUTOSIZE_USEHEADER);

         m_ListModule.SetExtendedStyle(m_ListModule.GetExtendedStyle() |
         LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT);

         m_ListModule.InsertColumn(0,_T("NO"));
         m_ListModule.InsertColumn(1,_T("DLL名"));
         m_ListModule.InsertColumn(2,_T("DLL路径"));

         m_ListModule.SetColumnWidth(0,LVSCW_AUTOSIZE_USEHEADER);
         m_ListModule.SetColumnWidth(1,LVSCW_AUTOSIZE_USEHEADER);
         m_ListModule.SetColumnWidth(2,LVSCW_AUTOSIZE_USEHEADER);

    }

    void CManageProcessDlg::ShowModule()
    {
         DWORD  error;
         m_ListModule.DeleteAllItems();
        int nPid = GetSelectPid();
         MODULEENTRY32 Me32 = {0};
         Me32.dwSize = sizeof(MODULEENTRY32);
         HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,nPid);
         //...
         error = GetLastError();

         int bRet = Module32First(hSnap,&Me32);
        
         error = GetLastError();

         CString strTemp;
         DWORD dwIndex = 0;
         while( bRet)
         {
              //...
              bRet = Module32Next(hSnap,&Me32);
              strTemp.Format("%d",Me32.th32ProcessID);
              m_ListModule.InsertItem(dwIndex,strTemp);
              m_ListModule.SetItemText(dwIndex,1,Me32.szModule);
              m_ListModule.SetItemText(dwIndex,2,Me32.szExePath);
              dwIndex ++;
              //MessageBox(Me32.szExePath);
         }
    }

    int CManageProcessDlg::GetSelectPid()
    {
         POSITION pos = m_ListProcess.GetFirstSelectedItemPosition();
         int nSelect = -1;

         while( pos )
         {
              nSelect = m_ListProcess.GetNextSelectedItem(pos);
         }

         if(-1 == nSelect)
         {
              MessageBox("请选择要操作的项");
              return 0;
         }

         //获取选中服务的服务名
         char szServiceName[MAXBYTE] = {0};
         m_ListProcess.GetItemText(nSelect,0,szServiceName,MAXBYTE);    
         int a = atoi(szServiceName);
         return a;
    }
    //查看DLL
    void CManageProcessDlg::OnBtnDll()
    {
         // TODO: Add your control notification handler code here
         DebugPrivilege();
         ShowModule();
    }

    //提升权限
    void CManageProcessDlg::DebugPrivilege()
    {
         HANDLE hToken = NULL;
         //打开当前进程的访问令牌
         int hRet = OpenProcessToken(GetCurrentProcess(),TOKEN_ALL_ACCESS,&hToken);

         if( hRet)
         {
              TOKEN_PRIVILEGES tp;
              tp.PrivilegeCount = 1;
              //取得描述权限的LUID
              LookupPrivilegeValue(NULL,SE_DEBUG_NAME,&tp.Privileges[0].Luid);
              tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
              //调整访问令牌的权限
              AdjustTokenPrivileges(hToken,FALSE,&tp,sizeof(tp),NULL,NULL);

              CloseHandle(hToken);
         }
    }
  • 相关阅读:
    第05组 Alpha冲刺(2/4)
    Alpha冲刺(1/4)
    第04组 Beta冲刺(4/4)
    第04组 Beta冲刺(3/4)
    第04组 Beta冲刺(2/4)
    第04组 Beta冲刺(1)
    第04组 Alpha事后诸葛亮
    第04组 Alpha冲刺(4/4)
    第04组 Alpha冲刺(3/4)
    第04组 Alpha冲刺(2/4)
  • 原文地址:https://www.cnblogs.com/mynona/p/3162640.html
Copyright © 2011-2022 走看看