微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Windows下用C ++在远程计算机上启动一个进程

我在Windows下使用Dev-C ++。 我的问题是我如何启动远程机器上的进程? 我知道PsExec可以做到这一点,但如果可能的话,我想避免使用它。 如果有人可以举一些例子的代码,我将不胜感激:)

提前致谢!

kampi

在Python中发现所有窗口的exepath

以编程方式通过Winapi编辑Windows审核策略时,权限错误

在Windows 10的HTA(HTML应用程序)中可以使用x-ms-webview吗?

窗口8 64位RTM&PHPcurl启用

如何索引malloc'd缓冲区和输出

如何安全地将临时文件存储在Windows中,特别是使用阻止TEMP目录的安全入侵防护应用程序

如何捕捉特殊的关键事件?

钩closures应用程序

通过Python脚本更改提示工作目录

运行应用程序作为系统(没有PSTools)

如果这很容易,黑客会在所有暴露在互联网上的机器上启动恶意软件。

PSExec通过局域网上的服务控制管理器从“here”(即运行它的机器)启动服务EXE。 它需要很多安全特权 – 例如管理员权限。

如果您不想这样做,您可以查看SSH(有开源示例)或远程命令提示符(在Windows资源工具包中)。

你可以使用WMI …(C#示例,所以你必须找到相应的C ++)

Connectionoptions connectOptions = new Connectionoptions(); connectOptions.Username = "Administrator"; connectOptions.Password = "TopSecret"; ManagementScope scope = new ManagementScope( @"\" + machine + @"rootcimv2",connectOptions); scope.Connect(); ManagementPath path = new ManagementPath(@"Win32_Process"); ManagementClass proc = new ManagementClass(scope,path,new ObjectGetoptions()); ManagementBaSEObject args = proc.getmethodParameters("Create"); args["CommandLine"] = "C:\Windows\notepad.exe"; proc.InvokeMethod("Create",args,null);

如果你已经有一个服务运行在远程机器上,你可以要求运行一个程序。 Windows本身并没有提供任何有用的东西, 它附带一个远程外壳服务(通常是停用的或者甚至没有安装)。

IIUC,psexec做的是这样的:

使用管理共享将二进制文件复制到远程计算机上

使用远程注册表操作将二进制文件作为服务远程安装

使用服务控制管理器API远程启动服务。

如果你不想使用psexec,你仍然可以这样做。 请注意,您需要相当的权限来执行此操作。

简单的答案是你不能。 你所能做的就是发送一条消息给远程机器,要求它为你启动进程。 PsExec在远程机器上运行,监听特定的消息并响应这些消息启动进程

你可以使用现有的协议,比如PsExec,或者创建你自己的协议。 创建你自己的需要你可以在远程机器上安装一个服务。 如果远程机器不在您的控制之下,那么这是不可能的。 如果设计自己的系统,那么在设计协议时一定要小心,因为您不希望在系统中无意中打开安全漏洞。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐