注入x64-process的x64-DLL挂钩x86-DLL,无法使用C和EasyHook
注入x64-process的x64-DLL挂钩x86-DLL,无法使用C和EasyHook.
如果Loader,InjectionLibrary和InjectionTarget(它在两个版本中都可用,我需要两个都被挂钩)都是x86. 获取导出过程的地址(GetProcAddress本身)在x64上不是问题. InjectionTarget还有HookTarget(Kernel32.dll)作为x64的依赖项. LhInstallHook(…)返回STATUS_NOT_SUPPORTED,其中源注释表示在以下情况发生: “目标入口点包含不受支持的说明.” 由于x86版本的源代码很好,我决定不添加它. 我抓了一个小图 解决方法
你不能在64位进程中使用32位DLL,事实上,这概括 – 你不能混合和匹配x86和x64代码,单个进程要么完全是x64,要么完全是x86.这是x86-64的基础,你无能为力.在
Windows控制台中,它们构成64位进程和32位进程,并使用IPC控制32位进程以加载和处理所有32位shell扩展.如果你勇敢和/或绝望,你可以尝试类似的东西.
编辑:等一下,等一下.当x86模式下一切正常时,您能否在基础知识中更多地描述这个过程?就像,X从Y加载一个函数,我正在做Z,因为看起来我不明白你在做什么. 您有一个注入目标和一个注入的DLL,您尝试在第三方x86-only DLL中调用该过程.因此,正常的呼叫流程来自InjectionTarget – > InjectionLibrary – > HookTarget – > ExportedProcedure.这对你不起作用,因为HookTarget只是x86而且你不能改变它,所以当你为x64版本的InjectionTarget重新编译用于x64的InjectionLibrary时,它不再起作用,因为你的x64 InjectionLibrary试图加载一个x86 HookTarget. 解决此问题的唯一方法是创建一个x86进程并使用进程间通信来调用HookTarget中要调用的过程.如果你不能为x64重新编译HookTarget,那么这是唯一的方法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- iis – 此时服务无法接受控制消息
- windows – 神秘的git行为
- windows-7 – 是否有cmd / certutils将证书从一个商店复制到
- windows-phone-7 – Uri.IsWellFormedUriString的WP 7实现中
- windows下安装tesserocr
- windows-server-2003 – “作为服务登录”权限(W2K,W2K3)的
- windows-server-2008 – 为RDP访问创建白名单
- Windows批处理文件脚本从文件夹中选择随机文件并将其移动到
- windows – PE格式,IAT目录有什么用
- windows – 从同一个文件夹中调用另一个.bat文件?