簡體   English   中英

查看傳遞給程序的命令行參數

[英]See command line arguments being passed to a program

你可以跳過這部分

我正在使用我的拇指驅動器中的批處理文件來安裝真正的 crypt 卷。 我在此鏈接的幫助下創建了該批處理文件。 在該批處理文件中,我將用戶名和密碼作為參數傳遞給 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注意什么鞋子:

在此處輸入圖片說明

注意密碼在里面!

所以總而言之,將安全信息作為參數傳遞是不安全的。 如果您關閉接收參數的進程可能是安全的,但我認為意識到這一點很重要......

如果其他具有管理權限或具有相同用戶帳戶的用戶可以執行程序,您可以看到所有命令行

wmic process

從所有進程使用這個單一的命令行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM