首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >进程间挂钩

进程间挂钩
EN

Stack Overflow用户
提问于 2012-05-19 18:05:37
回答 2查看 563关注 0票数 0

有没有可能使用钩子跳转到另一个进程的运行内存,然后跳回,而不需要任何DLL注入?

例如,如果进程A有一个过程foo,而进程B有一个过程bar,其原型与foo相同(用于挂钩),那么假设两个进程都在运行,是否可以将foo挂接到jmp再挂接到bar

编辑:这需要在Windows上完成。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-19 18:09:20

根据定义,进程是一个沙箱。如果您甚至错误地跨出了地址空间,它就会被抛出并捕获为SIG_USR信号,并报告为分段错误

话虽如此,您可以使用共享内存-shmem、管道和套接字等进程间通信机制来跨进程进行通信。

编辑: RPC (远程过程调用)机制也是可用的,比如提供远程方法调用的CORBA。

票数 2
EN

Stack Overflow用户

发布于 2012-05-19 19:08:57

Windows中的每个进程(以及Unix中的进程,可能还有绝大多数其他现代操作系统中的进程)都有自己的虚拟内存空间,通常映射到不同的物理地址。因此,将DLL注入另一个进程的地址空间是挂接该进程中任何内容的唯一方法。另一方面,一旦你在这个过程中有了DLL,你就可以在那里做很多事情,例如。生成您自己的线程,并使用Windows消息与父进程通信(作为Windows中最简单的通信方法之一)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10664194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档