使用 IPC 共享内存的应用程序可以访问彼此的代码吗?

Posted

技术标签:

【中文标题】使用 IPC 共享内存的应用程序可以访问彼此的代码吗?【英文标题】:Can applications using IPC shared memory access each other's code? 【发布时间】:2018-04-30 15:32:19 【问题描述】:

我想开发一个应用程序,它从第 3 方应用程序中获取数据,对其进行处理并将结果发送回第 3 方应用程序。它基本上应该是第 3 方应用程序的黑匣子,两者都仅通过应用程序的 API 进行通信。

现在我需要知道,如何让两个独立的应用程序进行通信。我遇到了 IPC 技术,并阅读了有关共享内存 IPC 和消息传递 IPC 的信息。

由于以前的 IPC 使应用程序在同一个地方共享数据,应用程序可以潜在地看到彼此的代码吗?

要采用哪种技术?关于应用到应用的通信,是否还有更多需要考虑的事项?

谢谢。

操作系统:Windows

语言:C++

网络访问:离线

【问题讨论】:

没有直接关系,但是有更多的微调信息here。 【参考方案1】:

不,他们不能访问彼此的代码。唯一共享的内存是使用共享内存系统调用分配的特定页面。内存的其他部分无关。

【讨论】:

以上是关于使用 IPC 共享内存的应用程序可以访问彼此的代码吗?的主要内容,如果未能解决你的问题,请参考以下文章

IPC共享内存和线程内存的性能差异

共享内存是最快的一种IPC方式

尝试从 docker 容器访问共享内存时出现“权限被拒绝”,即使 --ipc 设置为“主机”

Linux中的共享内存(ipc)

IPC 中 LPCRPC 的区别和联系

# 2017-2018-1 20155302 课下实践IPC