gpt4 book ai didi

c++ - 我想隐藏从 system() 发出的系统命令

转载 作者:太空狗 更新时间:2023-10-29 19:55:51 24 4
gpt4 key购买 nike

用 C++ 编写程序,我想从 system() 函数发出系统命令,但我不希望用户在可执行窗口中看到该命令(因为该命令包含密码)。我需要将文件从用户目录复制到服务器上,但不允许用户访问服务器或显示密码。认为拥有执行此操作的 .exe 是最简单的方法。

例如:

system("FILETRANSFER_SW.exe -pw helloWORLD11!@ C:/temp.txt F:/tempfolder/")

但是可执行窗口正在显示这个命令,因此破坏了试图隐藏密码的目的。

我试过发布系统(“@回声关闭”)在程序的开头,但不会抑制以下命令,它们仍然显示在可执行窗口中。

有什么建议吗?

谢谢...

最佳答案

运行进程的命令行在大多数操作系统中被认为是公共(public)信息。

因此,在命令行上传递密码是一个非常糟糕的主意。

这个问题有两种常见的解决方法,这两种方法都需要被调用的可执行文件的支持:

  • 不是在命令行上传递用户名/密码,而是传递包含用户名/密码的文件名
  • 从调用的可执行文件中重新设置正在运行的进程的命令行。

第一个解决方案很简单并且普遍可行,第二个解决方案存在竞争条件并且更难实现,因为没有跨平台的方法(在某些操作系统上,更改 argv 会有所帮助)。

关于c++ - 我想隐藏从 system() 发出的系统命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/586290/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com