[200]32位程序向64位程序注入64位DLL的问题

Waiting4you 2010-10-25 05:21:40
如题,好像有点绕~!@#$%
情况是这样的,我原来有个程序是Hook Explorer.exe的CreateFileW来工作的,原先在32位的winXP下工作的很好.但是最近有客户反映这个程序不能在64位系统下工作.
google之后发现要Hook 64系统的Explorer.exe必须用64位的DLL才行,而且Hook代码也要改改. 不过这都不是问题.
关键问题是我的主程序是用BCB编写的,目前还木有64支持,所以我想确定一下32位的程序能不能用OpenProcess来打开64位的Explorer.exe,然后WriteProcessMemory&CreateRemoteThread?(也就是注入前面说的64位dll)
我现在没有64位的系统,所以先来问一下知道的弟兄,谢谢大家
...全文
353 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
aday 2011-04-19
  • 打赏
  • 举报
回复
难道真的要等Delphi 64啊!!!
jamseyang 2010-10-28
  • 打赏
  • 举报
回复
顶下。。。
Waiting4you 2010-10-27
  • 打赏
  • 举报
回复
回提拉米苏和hztj2005
我已经把DLL改成64位了,只是主程序没法改(除非用VC重写,大工程啊~~). 我就是想知道32位的程序能不能OpenProcess 64位的explorer.exe,然后把我的这个64位的DLL给注入进去,可行吗? 我的主程序和DLL之间用FileMapping来通信的.
郁闷的是偶现在还没有64位的操作系统,不然试一试就知道了:-P.所以想问问知道的弟兄, 如果可行的话我就先准备一下,到时在64位系统下调试一下就可以了,不行的话我就不钻这个牛角尖了.
hztj2005 2010-10-26
  • 打赏
  • 举报
回复
32位的程序可以在64位系统下运行,但涉及到Hook,我就不知道了。
32位的Dll不可以在64位的代码下使用。
我是这样的,用64位编程,启动一个后台程序运行32位的程序,该程序使用32位的程序的Dll,中间用管道通信,但是都没有使用Hook。
Waiting4you 2010-10-26
  • 打赏
  • 举报
回复
顶一下,64位编程搞的人不多?
oyljerry 2010-10-26
  • 打赏
  • 举报
回复
64位进程必须64位DLL,才能加载,所以就需要一个64位DLL,然后一个32位程序来跟64位DLL进行通信等交换数据
Waiting4you 2010-10-26
  • 打赏
  • 举报
回复
再顶,Help!
Waiting4you 2010-10-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 tiger9991 的回复:]

还有个办法:
帮客户拖下时间,拖到到2011年,borland貌似会出64位的编译器
[/Quote]
好办法!!!
傻X 2010-10-25
  • 打赏
  • 举报
回复
还有个办法:
帮客户拖下时间,拖到到2011年,borland貌似会出64位的编译器
Waiting4you 2010-10-25
  • 打赏
  • 举报
回复
哦,那完了,有得搞了~~
再写个64位的程序做中间人,由它来做注入dll的工作,原32位的主程序用shellexecute启动它,晕了~~
有没有更好的方法呀?
sunlin7 2010-10-25
  • 打赏
  • 举报
回复
不可以。
在 Microsoft Windows 64 位技术白皮书 里面有明确说明,win64上面的win32是严格隔离的。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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