我想检查我在两个进程之间使用的命名管道是否安全。尽管许多人说可以嗅探命名管道流量。我没有找到任何具体的方法来捕获命名管道流量。 最佳答案 您可以使用“PipeMonitor”来查看流经Windows命名管道的内容。此外,要限制对命名管道的访问,您可以在调用CreateNamedPipe函数时为命名管道指定安全描述符。安全描述符控制对命名管道的客户端和服务器端的访问。参见MSDNdoc. 关于windows-如何在Windows中捕获命名管道流量,我们在StackOverflow上找到一个
我正在尝试让C++应用程序让C#应用程序知道特定操作何时发生。我尝试这样做的方式是通过命名管道。我已经在C++应用程序上设置了一个命名管道服务器,它似乎正在工作(命名管道已创建-它出现在PipeList检索到的列表中)和C#应用程序上的一个命名管道客户端,失败的地方:C#客户端代码的第一行给出“尚未设置管道句柄。您的PipeStream实现是否调用了InitializeHandle?”错误,第2行抛出“访问路径被拒绝”异常。我哪里错了?C++服务器代码CStringnamedPipeName="\\\\.\\pipe\\TitleChangePipe";HANDLEpipe=Creat
我有两个独立的程序,一个用Java,一个用C++,都在Windows上运行。我们需要在两者之间进行双向进程间通信。到目前为止,我们一直在使用这种笨拙的解决方案,即写入文本文件并在另一端读取它们,其中生产者在写入完成后会生成一个.lock文件,而消费者在完成读取后会删除该文件。..就像我说的,尴尬。如果我们在*nix上,我们将在C++上使用使用popen()的管道,在Java端使用RadomAccessFile。看起来效果不错。我们可以在Windows上做什么?我们可以使用命名管道吗?谢谢。 最佳答案 看看谷歌的ProtocolBuf
我写了两个使用匿名管道进行通信的小程序。父进程通过为子进程设置标准IO句柄来共享管道句柄://--SetSTARTUPINFOforthespawnedprocess-------------------------ZeroMemory(&m_ChildSI,sizeof(STARTUPINFO));GetStartupInfo(&m_ChildSI);m_ChildSI.dwFlags=STARTF_USESTDHANDLES|STARTF_USESHOWWINDOW;m_ChildSI.wShowWindow=SW_HIDE;m_ChildSI.hStdError=m_pipeCh
我尝试:C:\Users\me\Documents\worknotes\performance\tomcatlogs\livesite\learn>sed-e's/"//g'local07.csv>local07nq.csv但不是输出到文件local07nq.csv,而是输出到控制台。怎么了?我正在使用sed/cygwin/windows。 最佳答案 Windows命令提示符中的引号(至少我使用过的风格)经常有问题。将脚本(s/"//g)放在一个文件中并以这种方式运行它可能会更好:sed-fmyscript.sedlocal07.c
我试图通过命名管道发送一个DWORD数组,但我一直在试图弄清楚如何发送单个DWORD。这是我到目前为止所得到的://CreateapipetosenddataHANDLEpipe=CreateNamedPipe(L"\\\\.\\pipe\\my_pipe",PIPE_ACCESS_OUTBOUND,PIPE_TYPE_BYTE,1,0,0,0,NULL);/*Waitingfortheothersidetoconnectandsomeerrorhandlingcutout*///HereItrytosendtheDWORDDWORDmsg=0xDEADBEEF;DWORDnumByt
我有一个作为LocalSystem运行的服务,它在登录用户的session中创建一个进程。然后该服务创建一个命名管道,客户端连接到该管道进行读写。根据https://msdn.microsoft.com/en-us/library/aa365600%28v=vs.85%29.aspx客户端只能从管道中读取(它不是Admin,不是Creator,也不是LocalSystem)。我创建了一个安全描述符来授予用户读写访问权限。但这没有用。所以我尝试为Everyone-Group提供读写访问权限。但这也行不通。我的客户端返回的错误代码始终是ACCESS_DENIED(5)。我很高兴知道我做错了
查看此脚本保存在名为foo.cmd的文件中。@echooffmore+5现在可以以这种方式使用此脚本。dirC:\Windows|foo它从第6行开始显示输出,一次显示一个屏幕(即作为分页器)。在我退出more之前,当前命令提示符一直处于阻塞状态。现在我修改脚本如下,让更多的输出显示在一个单独的窗口中。@echooffstart""more+5现在,如果我运行以下命令,一个新窗口会正常启动,但不会显示任何输出。dirC:\Windows|foostart命令似乎没有接收到我通过管道传输到foo.cmd的dir命令的输出。我该怎么做才能确保通过管道传输到start命令标准输入的任何数据都
我有一个Windows服务,它通过命名管道与一个图形用户界面应用程序通信。因此,我有一个正在运行的线程正在等待应用程序连接,如果我这样做一次,它运行良好。但是,如果线程正在创建命名管道流服务器的新实例,则已经建立的连接将中断,并且我会收到所有实例繁忙的异常。抛出异常的代码片段是这样的:classPipeStreamWriter:TextWriter{staticNamedPipeServerStream_output=null;staticStreamWriter_writer=null;staticThreadmyThread=null;publicPipeStreamWriter(
我有一个在Page_Load上填充GridView的linq查询。我为字母表制作了一个for字符循环。在填充LinkButton的LinkButton的.Command中,我在查询中使用相同的参数运行非常相似的查询并获取低于错误。Thetype'f__AnonymousType2'existsinboth'ConcernContracts.dll'and'System.Web.WebPages.Deployment.dll'voidlnkCharacter_Command(objectsender,CommandEventArgse){try{varlbtn=(LinkButt