草庐IT

端口安全

全部标签

c++ - 如果未使用 CloseHandle 正确关闭,则重新打开串行端口会失败

我在Windows上使用被视为虚拟串行端口的USB设备。我可以使用CreateFile和ReadFile函数与设备通信,但在某些情况下,我的应用程序不会调用CloseHandle(当我的开发应用程序崩溃时)。之后所有对CreateFile的调用都失败(ERROR_ACCESS_DENIED),唯一的解决办法是重新登录我的电脑。有没有办法以编程方式强制关闭打开的句柄(或重新打开)? 最佳答案 这当然不正常。Windows会在进程终止后自动关闭所有保持打开状态的句柄。这一定是您的USB设备驱动程序中的一个缺陷,尽管很难看出它是如何搞砸的

windows - 我可以安全地重命名/移动一个已经被进程加载的 dll 吗?

我有一个由进程加载和文件锁定的dll,我想用更新的版本更新它。我正在寻找一种替代方法来终止进程以在更新dll之前释放文件锁。现有的事件进程仍然使用旧版本是可以的,只要新实例化的进程采用新逻辑即可。似乎我可以简单地重命名/移动dll,并且实时进程似乎仍然运行良好。这样做安全吗?如果dll的代码已经加载到进程中,为什么还需要锁定dll? 最佳答案 移动任何随机应用程序使用的所有dll并不总是可以的。某些应用程序,如asp.net,使用影子副本概念,它们实际复制dll并使用副本让您可以自由修改原始文件。在asp.net的情况下,如果您修改

c++ - 如何安全地从 DLL 连接到消息泵?

我正在尝试从加载我的DLL的进程中获取消息。我试过:SetWindowsHookEx(WH_CALLWNDPROC,(HOOKPROC)WndProc,hInstance,0);这给了我关于“程序X无法启动,因为系统中缺少Y.dll”的错误弹出窗口。这就是我在标题中加上“安全”的原因。我也试过:SetWindowsHookEx(WH_CALLWNDPROC,(HOOKPROC)WndProc,hInstance,threadId);threadId是我的DLLMain中GetCurrentThreadId()的结果。这个有效,但我没有收到任何窗口消息(只有一堆512和1025)。

windows - IPC 端口范围

IPC可以通过TCP/IP套接字完成。windows下程序间的本地IPC应该使用哪个端口范围?我使用的是哪个Windows版本重要吗?如果我想跨平台兼容,在Linux下有什么不同吗?我用什么语言写有关系吗?IPC是否在本地有关系吗? 最佳答案 原则上,如果您的程序要被广泛使用,您应该根据RFC6335获得IANA分配给您的端口号。.如果您不符合分配条件,您的程序应该在运行时在49152-65535范围内选择一个未使用的端口,并通过其他方式将此端口号传递给其他进程。在实践中,您通常可以使用1024-49151范围内任何不常用的端口,但

c++ - 等待 COM 端口上的数据?

我正在寻找一种方法让Windows串行端口在接收到数据之前超时。如果有某种事件触发或函数完全按照我的意愿行事,那就太好了。这是我当前的实现。voidwaitforCom(unsingedcharbyte){while(true){ClearCommError(serial_handle,&errors,&status);if(status.cbInQue>0){//checkifcorrectbytebreak;}}} 最佳答案 您可以使用的另一个API调用是WaitCommEvent()。http://msdn.microsoft

c# - 如何更改现有命名管道的安全性?

我在Windows8上使用HyperV,并希望能够通过命名管道与虚拟串行端口通信。我给管道选择了一个名称,它可以很好地与虚拟操作系统(在我的例子中是XP)串行端口通信,但由于PipeSecurity设置,只能在管理员用户下进行通信。现在我希望能够在由Hyper-V创建的命名管道上为每个人提供完全控制权。以编程方式或可能使用某些HyperV设置。我需要能够作为普通用户与虚拟操作系统进行通信。我知道如何在我自己使用NamedPipeServerStream和PipeSecurity对象创建的命名管道上设置特定的安全性。我主要使用C#,但我看到有像SetSecurityInfo这样的C++A

python - 端口 8000,PID 4,无法终止,taskill/f/pid 4,拒绝访问

我无法终止绑定(bind)到8000端口的进程,因此我无法启动HTTP服务器。这是关于问题的引用StartHTTP/HTTPSserver,python-mSimpleHTTPServerC:\>taskkill/f/pid4ERROR:TheprocesswithPID4couldnotbeterminated.Reason:Accessisdenied.我在某处发现,即使在下方杀死也不起作用。C:\>taskkill/f/slocalhost/pid4ERROR:TheprocesswithPID4couldnotbeterminated.Reason:AccessDenied.P

c++ - 假定 Windows 伪句柄的值是否安全/已定义?

我正在为Windows编写一段C++代码,需要查询进程及其每个单独线程的计时。为了进行必要的系统调用,我需要进程及其每个线程的句柄。我正在使用getCurrentProcess和getCurrentThread函数,它们都返回一个伪句柄。经过进一步检查,我注意到所有线程的伪句柄共享相同的值。在互联网上简单搜索后,我发现以下文章报告了与我得到的进程和线程伪句柄相同的值:https://weseetips.wordpress.com/2008/03/26/getcurrentthread-returns-pseudo-handle-not-the-real-handle/我的问题:从一个线

c++ - 默认安全描述符

我的应用程序有2个进程,一个需要提升,另一个不需要,但是它们在同一桌面上的同一用户帐户下运行。我需要在从文件读取的提升进程中创建一个文件(不在磁盘上,其他类型的文件),但让我的非提升进程对该文件具有写访问权限。使用nullptrSECURITY_ATTRIBUTES,非提升进程无法打开文件,CreateFile失败并显示拒绝访问代码。这是预期的,SetSecurityDescriptorDacl解决方法类似于thisanswer工作正常。但是,我不喜欢这种解决方法。我不想将对该文件的写入权限授予所有人。我只想授予当前用户访问权限。这有点敏感,提升的读取器进程将运行数小时,我不希望每个人

.NET 3.5 安全问题

我在windows2003系统上安装了.net3.5。我注意到除了最新的.net3.5级别之外,还会自动安装以前的.net级别,例如1.0和2.0。这些旧版本存在安全问题,我认为这些问题已在.net3.5中得到纠正。这是正确的还是必须为这些旧的.net版本安装相关的安全补丁来加固系统?谢谢 最佳答案 .Net3.5SP1包含自为.Net2.0、3.0和3.5打包之日起所有汇总的安全补丁。.Net3.5与3.0一样,是.Net2.0的超集。这意味着它基本上是.Net2.0的附加组件。 关于