显示任何进程加载的DLL文件的代码

代码如下:

#include <windows.h>
#include <iostream.h>
#include <tlhelp32.h>
#include <stdio.h>
int main(int argc, char* argv[])

char exename[500];
printf("[ENTER EXE FILE NAME]\t");
scanf("%s",exename);
printf("\n[YOU ENTER]\t%s\n",exename);
Sleep(3000);
//提升当前进程的权限使其有权限对其他进程进行操作
HANDLE hToken;
LUID sedebugnameValue;
TOKEN_PRIVILEGES tkp;
if ( ! OpenProcessToken( GetCurrentProcess(),
     TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken ) ){
      //WriteToLog("openprocesstoken error");
      return 1;
}
if ( ! LookupPrivilegeValue( NULL, SE_DEBUG_NAME, &sedebugnameValue ) ){
     CloseHandle( hToken );
     //WriteToLog("lookuprivilegevalue error");
     return 1;
}
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Luid = sedebugnameValue;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
if ( ! AdjustTokenPrivileges( hToken, FALSE, &tkp, sizeof tkp, NULL, NULL ) ){
     CloseHandle( hToken );
     return 1;
}
//取得目标进程的PID
DWORD pid;
HANDLE snapshot;
snapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
struct tagPROCESSENTRY32 processsnap;
processsnap.dwSize=sizeof(tagPROCESSENTRY32);
for(Process32First(snapshot,&processsnap);Process32Next(snapshot,&processsnap);){
     if(!stricmp(processsnap.szExeFile,exename))
     {
      pid=processsnap.th32ProcessID;
      break;
     }
}
CloseHandle(snapshot);
////////////////////////////////////////
      MODULEENTRY32 pe32;

// 在使用这个结构之前,先设置它的大小
             pe32.dwSize = sizeof(pe32);

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

if(hProcessSnap == INVALID_HANDLE_VALUE)
             {      
              //建立快照失败
                       return -1; 
        printf("[createtoolhelp32snapshot error]\n");
      }

// 遍历进程快照,轮流显示每个进程的信息
             BOOL bMore = Module32First(hProcessSnap, &pe32);
             while(bMore)
             {      
       printf("\n[DLL NAME]\t%s\n",pe32.szModule);
       printf("[DLL PATH]\t%s\n",pe32.szExePath);

bMore = Module32Next(hProcessSnap, &pe32);
             }
             // 不要忘记清除掉snapshot对象
             CloseHandle(hProcessSnap);

return 0;
}

(0)

相关推荐

  • 显示任何进程加载的DLL文件的代码

    复制代码 代码如下: #include <windows.h>#include <iostream.h>#include <tlhelp32.h>#include <stdio.h>int main(int argc, char* argv[]){  char exename[500]; printf("[ENTER EXE FILE NAME]\t");scanf("%s",exename);printf("

  • 如何使用jquery动态加载js,css文件实现代码

    使用jquery动态加载js,css文件 复制代码 代码如下: $.extend({ includePath: '', include: function(file) { var files = typeof file == "string" ? [file]:file; for (var i = 0; i < files.length; i++) { var name = files[i].replace(/^\s|\s$/g, ""); var att =

  • IOS中使用UIWebView 加载网页、文件、 html的方法

    UIWebView 是用来加载加载网页数据的一个框.UIWebView可以用来加载pdf word doc 等等文件 生成webview 有两种方法: 1.通过storyboard 拖拽 2.通过alloc init 来初始化 创建webview,下列文本中 _webView.dataDetectorTypes = UIDataDetectorTypeAll; 是识别webview中的类型,例如 当webview中有电话号码,点击号码就能直接打电话 - (UIWebView *)webView

  • pygame加载中文名mp3文件出现error

    前言: 今天刚刚做了个音乐列表,但笔者发现在指定目录mp3文件名为中文时,便出现pygame.error,不能正确加载指定mp3文件.写好的代码不想再改了,来个小测试吧 pygame播放mp3文件: 这里笔者只介绍一种好理解的方法,具体请查看pygame.mixer.music官方文档 打开官方文档,笔者发现,像是发现了新大陆一样,这家伙太强大了,而现在我只能用它来播放我的mp3.好吧,剩下的等待以后来发掘吧.干什么讲什么,来个播放mp3 test代码: import pygame path =

  • 无法加载php_curl.dll解决办法

    可是启动Apache的时候还是提示无法加载php_curl.dll这个文件,而且ext这个目录下面也有php_curl.dll这个文件,可是为什么就是找不到呢,真是百思不得其解. 然后就上google上去查,网上的资料都是说extension_dir的路径没有配置或是没有打开extension=php_curl.dll,可问题是我已经把前面的分号给去掉了. 后来看到一篇文章,问题终于解决了:原因是并不是所有的dll文件直接打开就可以了,有的是要依赖一些文件的,比如这个php_curl.dll就依

  • windows服务器下IIS6/7下PHP 无法加载 php_curl.dll 等动态链接库

    问题: PHP 在 IIS6 或 IIS7 中无法加载 php_curl.dll 动态链接库. 解决方法: 在PHP手册中有相关说明:php_curl.dll:CURL,客户端 URL 库函数库:需要:libeay32.dll,ssleay32.dll(已附带) 所以只要将 libeay32.dll,ssleay32.dll 这两个库复制到 %WINDOWS% 目录下即可. PS:网上有很多人说将以上两个库复制到 %SYSTEM32%,而这完全不起作用,文章只会COPY,又不经考证,简直就是误人

  • 使用jQuery动态加载js脚本文件的方法

    它们很强大,但有时候也会得不偿失.如果你使用的是jQuery,它里面有一个内置的方法可以用来加载单个js文件.当你需要延迟加载一些js插件或其它类型的文件时,可以使用这个方法.下面就介绍一下如何使用它! 一.jQuery getScript()方法加载JavaScript jQuery内置了一个方法可以加载单一的js文件:当加载完成后你可以在回调函数里执行后续操作.最基本的使用jQuery.getScript的方法是这样: 复制代码 代码如下: jQuery.getScript("/path/t

  • 如何动态加载外部Javascript文件

    最近在网上找到了一个可以动态加载js文件的js加载器,具体代码如下: JsLoader.js var MiniSite=new Object(); /** * 判断浏览器 */ MiniSite.Browser={ ie:/msie/.test(window.navigator.userAgent.toLowerCase()), moz:/gecko/.test(window.navigator.userAgent.toLowerCase()), opera:/opera/.test(windo

  • PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间

    PHP前言: •动态地创建属性和方法 •对象的复制 •对象的比较 •加载指定的文件 •自动加载类文件 •命名空间 示例 1.类的相关知识点 3(动态地创建属性和方法) class/class3.php <?php /** * 类的相关知识点 3(动态地创建属性和方法) */ // 用于演示如何动态地创建属性(这就是 php 中所谓的重载) class Class1 { // __set 魔术方法,当设置的属性不存在或者不可访问(private)时就会调用此函数 public function _

  • 详解vue 模拟后台数据(加载本地json文件)调试

    本文介绍了vue 模拟后台数据(加载本地json文件)调试,分享给大家,也给自己留个笔记 首先创建一个本地json文件,放在项目中如下 { "runRedLight":{ "CurrentPage": 1, "TotalPages": 0, "TotalItems": 0, "ItemsPerPage": 100, "Items":[ {"DEVICEID":&quo

随机推荐