S.l.e!ep.¢%

像打了激速一样,以四倍的速度运转,开心的工作
简单、开放、平等的公司文化;尊重个性、自由与个人价值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

显示某进程里所有模块信息

Posted on 2010-02-02 22:39 S.l.e!ep.¢% 阅读(308) 评论(0)  编辑 收藏 引用 所属分类: RootKit

#include <windows.h>
#include <iostream.h>
#include <tlhelp32.h>

int main(int argc, char* argv[])

{       
       MODULEENTRY32 pe32;

          // 在使用这个结构之前,先设置它的大小

          pe32.dwSize = sizeof(pe32);

          // 给进程内所有模块拍一个快照
          //276为某进程的ID
          HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, 276);

          if(hProcessSnap == INVALID_HANDLE_VALUE)

          {       
           //建立快照失败

                    return -1;    
    }

          // 遍历进程快照,轮流显示每个进程的信息

          BOOL bMore = Module32First(hProcessSnap, &pe32);

          while(bMore)

          {       
              cout<<"模块名:"<<pe32.szModule<<endl;
     cout<<"模块路:"<<pe32.szExePath<<endl;
    
              bMore = Module32Next(hProcessSnap, &pe32);

          }

          // 不要忘记清除掉snapshot对象

          CloseHandle(hProcessSnap);

          return 0;

}


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理