你可以跳过这部分
我正在使用拇指驱动器中的批处理文件来安装真正的加密卷。我在此链接的帮助下创建了该批处理文件 。在该批处理文件上,我将用户名和密码作为参数传递给 trueCrypt.exe,以便安装它。
无论如何,所以我的问题是:是否有可能看到从第三方进程传递给程序的参数?换句话说,是否可以看到传递给该程序的参数:
using System;
using System.Reflection;
using System.Diagnostics;
class Program
{
static string password = "";
static void Main(string[] args)
{
if (args.Length > 0)
password = args[0];
// get location where this program resides
var locationOfThisExe = Assembly.GetExecutingAssembly().Location;
Console.Write("Press enter to start a new instance of this program.");
Console.Read();
var randomArgument = new Random().NextDouble().ToString();
Process.Start(locationOfThisExe, randomArgument);
// I am passing a random argument to a new process!
// is it possible to see these arguments from another process?
}
}
编辑
我正在创建一个编辑,因为我认为我错误地解释了自己,但这个编辑应该是一个解决方案而不是一个问题
我认为这个问题没有得到足够的重视。执行https://stackoverflow.com/users/235660/alois-kraus显示的命令 显示:
(我将输出粘贴在记事本++上)
在图像上它并没有很清楚地显示,但我能够看到正在传递给该过程的论点。这对我来说很重要,因为我使用以下命令安装了真正的 crypt 卷:
"C:\Program Files\TrueCrypt\TrueCrypt.exe" /v "a:\volume.tc" /lz /a /pa
这告诉 truecrypt 我想挂载位于a:\volume.tc
驱动器号 z 上的卷,密码是a
如果我执行该命令,则 true crypt 会将该卷安装在驱动器 z 上:
问题是,如果我随后执行命令,wmic process
请注意穿什么鞋:
注意密码在里面!
因此,总而言之,将安全信息作为参数传递是不安全的。如果您关闭接收参数的进程可能是安全的,但我认为了解这一点很重要......