繁体   English   中英

进程间挂钩

[英]Inter-process Hooking

是否可以使用钩子跳转到另一个进程的运行内存,然后再跳回,而无需注入DLL?

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

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

根据定义,流程是沙盒。 如果您甚至错误地走出了地址空间,它也会被引发并捕获为SIG_USR信号,并报告为分段错误

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

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

Windows中的每个进程(以及Unix中,可能还有其他大多数现代OS中的进程)都具有自己的虚拟内存空间,该空间通常映射到不同的物理地址。 因此,将DLL注入另一个进程的地址空间是钩住该进程中任何内容的唯一方法。 另一方面,一旦您在该进程中拥有DLL,就可以在其中执行许多操作。 产生您自己的线程并使用Windows消息(作为Windows中最简单的通信方法之一)与父进程进行通信。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM