jjzjj

windows - 如何在 Windows 中的进程之间传输敏感数据?

我想将用户名和密码信息从一个进程传输到在Windows中同一服务器上运行的另一个进程。以安全方式实现此传输的最佳方法是什么?一种简单的方法是将密码复制到一个文件,然后让另一个进程从文件中读取,然后在读取后删除该文件。虽然这很简单,但我担心它是否安全,因为即使它只存在很短的时间,某人仍然有可能获得对该文件的访问权限,并且如果另一个文件也有可能被遗漏处理错误或崩溃。像套接字和命名管道这样的IPC似乎是解决这个问题的过度杀伤力。我更倾向于使用内存映射文件,如以下链接中所述,该链接讨论了跨进程共享内存。这是正确的方法吗?此外,在释放/删除之前用虚拟数据填充内存以防止恶意进程从该内存位置清除数据

Windows 上的 JAVA IPC

我想使用Java打开命名管道并将该存档的内容(rar/zip/etc..)提取到命名管道,然后使用该管道的位置运行Mplayer并播放电影。我尝试使用这个项目在Java中打开IPCCLIPC但是,我的代码在fifo.openWriter()中卡住了;行FIFOfifo=newFIFO("jtpc_fifo");fifo.create();fifo.openWriter();我尝试在Java中创建一个等待连接的小型服务器套接字并将视频文件内容作为原始数据发送,但我不知道如何告诉mplayer通过网络获取原始数据。我想使用管道,因为我认为这是最好的解决方案没有物理和大文件需要处理,它易变且

c - 使用 C 的 Windows 进程间通信 (IPC)

我有一个用C语言和MicrosoftVisualC++编写的旧程序,我需要实现某种“保持事件”,因此我能够将进程间通信接收到一个新程序中,该程序将终止并重新启动如果在过去5秒内没有收到消息,则第一个。问题是我一直在寻找任何C语言的WindowsIPC教程或示例,但我找到的几乎所有内容都是针对C++的。任何帮助或资源?编辑:正如@Adriano在回答中所建议的那样,我正在尝试使用共享内存。但是由于我无法捕获的某种异常,启动程序正在被Windows终止。调用CopyMemory时发生。代码如下:#include"stdafx.h"#include"windows.h"#include"io

windows - Windows 上的安全命名共享内存,因此只有特定进程可以打开

有没有办法在Windows中使用命名共享内存设置权限,以便由进程而不是用户完成访问控制?我想让一个程序创建内存,传递句柄或传回PID,以便客户端进程可以访问内存。应拒绝所有其他进程访问。谢谢 最佳答案 访问控制仅由安全主体进行,安全主体可以是用户、组、计算机等。如果你有一个你想与另一个进程共享的对象,你可以使用DuplicateHandle. 关于windows-Windows上的安全命名共享内存,因此只有特定进程可以打开,我们在StackOverflow上找到一个类似的问题:

c++ - 什么是 C/C++ for Windows 中基于共享内存的轻量级 IPC 机制?

我现在一直在从事一些C++项目,这些项目涉及使用窗口消息进行一些简单的IPC。在许多情况下,通过将数据放入共享内存段然后将指针传递到带有SendMessage的共享内存,一些额外的数据随窗口消息一起传递。称呼。一直重复这个很烦人,但在通过发明另一个IPC系统来解决这种沉闷的重复之前,我想问:是否有满足标准的现有框架?:用C或C++编写(我们在这里使用MSVC)尽可能少的依赖;在最好的情况下,它只是一些使用纯C++和Windows标准库的源文件,可以直接编译到应用程序/库中。适用于WindowsXP及更新版本基于窗口消息和共享内存段构建非常需要正确的错误报告(远程进程消失、远程进程不理解

c++ - IPC的实现方式

在Windows上实现IPC的首选方法是什么?我知道几个类似的:命名管道、共享内存、信号量?,也许是COM(虽然我不确定如何)...我想知道什么是最健壮、最快速、最不容易出错且易于维护/理解的。 最佳答案 几年前,我们针对客户端/服务器情况研究了这个特定问题,客户端和服务器都在同一台机器上运行。当时,即使客户端和服务器位于同一台机器上,我们也使用套接字(UDP)。对我们来说,“最好”原来是共享内存与命名信号量来同步它。当时,我主要研究管道与原始共享内存实现的对比。我测试了具有重叠I/O和I/O完成端口的管道。我测试了多种数据大小。在

windows - 如何在 Windows 上模拟 shm_open?

我的服务需要存储一些信息(至少,至少20位左右,但我可以很容易地使用更多信息)这样即使服务崩溃或异常终止,它也会在服务重启后持续存在它不会在重启后持续存在可以用很少的开销读取和更新如果我将此信息存储在注册表或文件中,系统重启时它不会自动清空。现在,如果我在现代POSIX系统上,我会使用shm_open,这将创建一个共享内存段,该段在进程重新启动但系统重新启动时持续存在,我可以使用shm_unlink如果持久数据不知何故被破坏,清理它。我找到了MSDN:CreatingNamedSharedMemory并开始在我的服务中重新实现它的一部分;这基本上使用CreateFileMapping(

java - Windows 中 Java 和 C 之间的任何 IPC 机制——不需要套接字

我的要求是使用JSON字符串在Windows上的C客户端和Java服务器之间进行IPC。刚刚意识到我不能在Windows中通过java使用命名管道("\.\pipe\filename")。我不太热衷于使用任何基于网络的架构,因为它会变得更加复杂以确保安全性和速度。请推荐您碰巧知道的任何共享内存/快速解决方案?提前致谢:) 最佳答案 您可以在Windows上使用命名管道;thisquestion和thisquestion的答案给出了不同的解决方案。除此之外,通过使用llvm(在您的情况下为clang),然后使用LLJVMTransla

windows - 我可以使用什么来代替 Unix 管道在 Windows 上进行进程间通信?

我有一个启动子进程的应用程序。子进程从标准输入读取要操作的文件。对于某些操作,它需要一个输入文件,其中包含有关如何处理它所操作的文件的信息——我们称之为“控制文件”。控制文件的名称也从标准输入中读取。父应用程序可以使用临时文件作为控制文件,但我更愿意避免使用真正的磁盘备份文件。在Linux上,这很简单:我可以创建一个Unix管道,fork,在启动子进程之前关闭管道的各个端点,然后使用/dev/fd/3(或任何文件描述符)作为控制文件名,然后将控制数据写入父应用程序中的管道。或者,我可以在/tmp(或其他任何内容)中使用命名管道。我怎样才能在Windows上实现类似的功能?Windows

windows - Windows 与 Linux/UNIX 中 Perl 的 waitpid() 和 IPC::Open2

下面的代码在Linux上运行完美,但是当我把它放在Windows机器上时,一切都乱套了:$pid=open2($my_reader,$my_writer,"$JAVACALL$PARSER_CP$PARSER_CMD-");$my_reader->autoflush(1);$my_writer->autoflush(1);print$my_writer"$line\n";close($my_writer);my$tree=;chomp($tree);push@parse_trees,$tree;close($my_reader);waitpid($pid,0);在Windows中,它只