1

你可以跳过这部分

我正在使用拇指驱动器中的批处理文件来安装真正的加密卷。我在此链接的帮助下创建了该批处理文件 。在该批处理文件上,我将用户名和密码作为参数传递给 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请注意穿什么鞋:

在此处输入图像描述

注意密码在里面!

因此,总而言之,将安全信息作为参数传递是不安全的。如果您关闭接收参数的进程可能是安全的,但我认为了解这一点很重要......

4

1 回答 1

2

如果其他具有管理权限或具有相同用户帐户的用户可以执行程序,您可以看到所有命令行

wmic process

使用这个单一命令行的所有进程。

于 2012-11-07T22:42:49.137 回答