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

复制代码 代码如下:

#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;
}

时间: 2024-10-26 19:07:30

显示任何进程加载的DLL文件的代码_C 语言的相关文章

按键-java 键盘钩子 进程 客户端 进程加载HOOK DLL

问题描述 java 键盘钩子 进程 客户端 进程加载HOOK DLL java web程序在客户端获取键盘按键 这个要怎么写?要有实例 没写过这样的程序 不知道从哪里下手 解决方案 需要本地做插件(用Activex或者JavaBean),直接用web程序实现不了 解决方案二: 监听程序可参考 http://mzhx-com.iteye.com/blog/733704 解决方案三: 插件是用什么做的 ?

锁定ctrl+alt+delete程序,运行时出错。显示:无法加载“native.dll”:找不到指定的模块(异常来自HRESULT:0x8007007E)

问题描述 usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Runtime.InteropServices;usingMicrosoft.Win32;usingSystem.Diagnostics;namespaceWorkHelper{classSysHook{[DllImport("user32")]publicstaticexternboolBlock

解决修改sql server 2008服务器属性时出现的无法加载xplog70.dll文件的问题

sql server 2008 无法加载xplog70.dll 在对象资源管理器里右击服务器名,选择属性 发现弹出了一个错误提示,如下所示: 我的最终解决办法是:在别人的有安装好sql server 2008的电脑里的"安装目录Microsoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLBinn"路径下复制了xplog70.dll文件到我电脑的该目录下 需要提醒的是,我在百度和google上搜索到了几个不同的xplog70.dll文件,发现都是不能解决

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

使用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 =

加载XX.dll时出错的一般解决方法

你有遇到开机时提示加载某某dll文件出错的情况么,来看看如何解决这个问题吧 一.关闭启动程序法 开始菜单→运行→输入"msconfig"→确定→打开系统配置实用程序→启动选择卡→在命令里找到含该某某dll的那一项,把前边的勾去掉,然后确定就可以了. 二.注册表法 开始→运行→输入"regedit"→确定→打开注册表编辑器.找到以下的位置 ,删除含某某dll的相应键值: HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentV

如何最快的加载外部JavaScript文件

    当<script>标签位于html文档流中的时候,位于<script>后面的html会被阻止渲染,必须等到该script加载完以后才会后面的html才会渲染,通过JavaScript动态的生成一个script标签,可以避免上面你的这个问题,因为这个会是外部加载的script的文件位于html文档流以外.因此动态的加载外部的JavaScript文件可以提高页面的渲染速度,提高用户体验.   最佳实践 Steve Souders关于外部的JavaScript文件不阻碍html文

javascript include/import 动态加载js/css文件方法总结

第一种:一般用在外部CSS文件中加载必须的文件  程序代码  代码如下 复制代码 @import url(style.css); /*只能用在CSS文件中或者style标签中*/ 第二种:简单的在页面中加载一个外部CSS文件  程序代码  代码如下 复制代码 document.createStyleSheet(cssFile); 第三种:用createElement方法创建CSS的Link标签  程序代码  代码如下 复制代码 var head = document.getElementsByT

visual studio 2010-如果加载了aa.lib文件,为什么还需要加载aa.dll

问题描述 如果加载了aa.lib文件,为什么还需要加载aa.dll 在一个vs2010开发的工程的"附加依赖项"中加载了一个静态链接库,aa.lib 可是运行时提示找到不到aa.dll 然后又在c盘的system32中拷入了aa.dll运行正常了. 我不明白的地方是:程序不是已经加载了aa.lib 了吗 为什么还需要aa.dll? 生成的aa.lib和aa.dll是有区别的吗? 解决方案 lib文件通过编译才可以使用,编译分静态与动态之分. 静态编译 静态lib将导出声明和实现都放在l

visual studio-用vs打开sln文件 显示未能正确加载Microsoft....

问题描述 用vs打开sln文件 显示未能正确加载Microsoft.... 解决方案 缺少两个文件,重新安装下,建议使用英文版的windows 10. 解决方案二: don't care about it