Question

You may skip this part

I am using a batch file that I have in my thumb drive in order to mount a true crypt volume. I created that batch file with the help of this link. on that batch file I have the username and password that I pass as arguments to trueCrypt.exe in order for it to be mounted.


Anyways so my question is: will it be possible to see the arguments being passed to a program from a third party process? In other words, will it be possible to see the arguments being passed to this program:

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?
    }
}

Edit

I am creating an edit cause I think I explained my self incorrectly but this edit should be a solution instead of a question

I think this question has not received enough attention. Executing the command showed by https://stackoverflow.com/users/235660/alois-kraus shows:

(I pasted the output on notepad++)

enter image description here

on the image it does not show very clearly but I was able to see the argument being pass to that process. That matters a lot to me because I mount my true crypt volumes with the command:

"C:\Program Files\TrueCrypt\TrueCrypt.exe" /v "a:\volume.tc" /lz /a /p a

that tells to truecrypt that I want to mount the volume located at a:\volume.tc on drive letter z and the password is a

If I execute that command true crypt will mount that volume on drive z:

enter image description here

the problem is that If I then execute the command wmic process note what shoes up:

enter image description here

Note the password is in there!

So in summary it is not safe to pass secure information as an argument. It may be secure if you close the process that received the arguments but I think it is important to be aware of this...

Was it helpful?

Solution

If other users with administrative rights or with the same user account can execute programs you can see all command lines with

wmic process

from all processes with this single command line.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top