怎样在64位系统中,用32位程序枚举出64位进程的所有DLL?

screen12 2014-09-29 05:01:27
我的系统是win7 64位,我自己的程序编译成32位,我在这个程序中,用CreateToolhelp32Snapshot 枚举出所有进程,我发现是可以成功的,它能枚举出32位进程和64位进程。然后我还是用同样这个函数:CreateToolhelp32Snapshot,想枚举出进程中所有模块,结果我发现它能枚举出32位进程中所有模块,却不能枚举出64位进程中所有模块,下面这条语句:

HANDLE hModuleSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pe32.th32ProcessID);

返回-1,也就是失败了,GetLastError()的结果是299,听说是什么32位进程试图访问64位进程的错误代码。

可是我用它枚举系统中所有进程的时候,是成功的,包括64位进程也能找到,但用它枚举64位进程中所有模块的时候,却失败。

有什么办法能解决这个问题?我希望在64位系统中,用32位程序,枚举出64位进程中所有模块。(为什么要这样?因为程序编译成32位是为了32位系统和64位系统通用)。
...全文
394 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
汪宁宇 2016-05-17
  • 打赏
  • 举报
回复
无解的...
用户 昵称 2016-05-15
  • 打赏
  • 举报
回复
一向不研究跟系统相关太深的东西。
Saleayas 2016-05-15
  • 打赏
  • 举报
回复
If the specified process is a 64-bit process and the caller is a 32-bit process, this function fails and the last error code is ERROR_PARTIAL_COPY (299). 64 位有些数据是不能用 32 位来描述的。
Eleven 2016-05-14
  • 打赏
  • 举报
回复
解决了? 对于这种情况,我们一般发布两个版本的exe,一个32位一个64位
screen12 2016-05-14
  • 打赏
  • 举报
回复
来人接分。。
' 增加"内存_多条件搜索类",通过几个数据的偏移位置而找到动态地址. 感谢会员 sttacckz 提供 ' 增加"内存_驱动读写1类",突破某些内存保护读写内存 ' 修正"指针类","写共享",句柄不断增加的BUG 感谢会员 fmaliang 提 ' 修正"全局共享类",句柄不断增加的BUG ' 加强"全局共享类",写共享"不再有写入长度限制. ' 加强"全局共享类","写共享"增加可空参数一个,可指定写入数据的长度 ' 增加"全局共享类","写共享文本" ' 增加"全局共享类","写共享数值" ' 增加"全局共享类","读共享文本" ' 增加"全局共享类","读共享数值" ' 增加"全局共享类","释放共享" ' 增加"全局共享类","_远程创建地址" ' 增加"全局共享类","_远程释放地址" ' 增加"指针类","取地址大小" ' 对进程功能进行整改,一律使用进程ID作为参照.以及某些命令名作以下更改 ' 增加"进程枚举2",支持枚举进程用户名 感谢会员 qmz13579 提供 ' 增加"取进程用户名", ' 增加"进程是否有效",类似于"进程是否存在",参数为进程ID ' 修改"进程取路径"为"取程序路径",增加可空参数,区分进程大小写 ' 修改"进程ID取路径"为"取进程路径" ' 修改"进程取ID",增加可空参数,区分进程大小写,默认为不区分进程大小写 ' 增加"进程取ID数组",取指定进程名称的所有进程进程ID ' 修改"进程取模块"为"取进程模块" ' 修改"进程取路径及命令行参数"为"取进程路径及命令行" ' 修改"取命令行参数"为"取程序命令行",增加可空参数,区分进程大小写 ' 增加"取进程命令行",参数为进程ID ' 增加"腾讯QQ类","密码到MD5_2009",主要用于登陆腾讯网站. ' 增加"爆力取句柄",爆力穷举窗口句柄,终级方案! ' 增加"爆力枚举窗口",爆力穷举窗口句柄 ' 增加"发送字符串",SendKeys 将一个或多个按键消息发送到活动窗口,就如同在键盘上进行输入一样 ' 增加"发送字符串",SendKeys 将一个或多个按键消息发送到指定窗口,就如同在键盘上进行输入一样 ' 增加"取当前窗口" ' 增加"取当前父窗口" ' 增加"窗口激活" ' 修正"加密配置类",用作提供参数数据的子语句未返回数据的BUG 感谢QQ5758536的朋友提问题 ' 修改"创建桌面快捷方式"改为"创建程序快捷方式", 感谢会员 smileeyuyan01 提意见,感觉后者更贴切一些 ' 增加"取进程ID",类似于"进程取ID" ' 增加"以SYSTEM权限运行",以SYSTEM系统权限运行指定程序 ' 增加"取线程窗口",通过窗口线程标识获取窗口句柄,如果参数为空可获取当前线程所在的窗口句柄 ' 增加"文件操作类","创建","运行" ' 修改"软件类","关联后缀","删除后缀关联"使用后自动更新图标显示 ' 删除"线程操作类","退"命令 ' 增加"线程操作类","等待",等待线程到指定时间 ' 增加"线程操作类","取返回值",取线程子程序的返回值 ' 增加"线程操作类","_创建进入许可证" ' 增加"线程操作类","_删除进入许可证" ' 增加"线程操作类","_进入许可区" ' 增加"线程操作类","_退许可区" ' 增加"许可证类",让多线程许可证操作更方便."进入","退" ' 增加"线程钩子类",通常写于DLL注入后使用 ' 增加"线程钩子类","安装键盘钩子" ' 增加"线程钩子类","卸载键盘钩子" ' 增加"线程钩子类","安装鼠标钩子" ' 增加"线程钩子类","卸载鼠标钩子" ' 增加"线程钩子类","等待按键" ' 增加"线程钩子类","等待鼠标" ' 增加"线程钩子类","设置呼窗口" ' 修改"指针类","取地址大小"为"取地址块大小" ' 增加"指针类","取地址尺寸",获取变量地址的数据尺寸 ' 增加"加密配置类","读配置项_逻辑值" ' 增加"加密配置类","写配置项_逻辑值" ' 增加"加密配置类","读配置项_数值" ' 增加"加密配置类","写配置项_数值" ' 增加"加密配置类","读配置项_字节集" ' 增加"加密配置类","写配置项_字节集" ' 增加"系统服务类",可以注册任何EXE或DLL系统服务 ' "系统服务类"命令函数:"注册EXE","注册DLL","启动","停止","删除" ' 修正"识图3类","找颜色"与"高级找颜色",在范围图宽度特殊时,产生坐标偏差的BUG ' 增加"识图3类","找图",在屏幕或窗口找图片,返回找到的图片心坐标 ' 增加"识图3类","高级找图",在位图数据找图片,返回找到的图片所在位图的图片心坐标 ' 增加"识图3类","高级找图2"在位图数据图片所有坐标点,返回找到的图片数目 ' 增加"识图3类","定义文字",使用写字找字命令前必须先定义文字属性 ' 增加"识图3类","写字",写文字,可用作参考 ' 增加"识图3类","找字",在屏幕或窗口寻找指定文字 ' 增加"识图3类","高级找字",在位图数据找文字 ' 增加"识图3类","高级找字2",在位图数据文字所有坐标点

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧