この部分はスキップできます
真の暗号化ボリュームをマウントするために、親指ドライブにあるバッチ ファイルを使用しています。このリンクを使用して、そのバッチ ファイルを作成しました 。そのバッチ ファイルには、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 が示すコマンドを実行すると、次のように表示されます。
(出力をメモ帳++に貼り付けました)
画像でははっきりとは見えませんが、引数がそのプロセスに渡されていることがわかりました。次のコマンドを使用して真の暗号ボリュームをマウントするため、これは私にとって非常に重要です。
"C:\Program Files\TrueCrypt\TrueCrypt.exe" /v "a:\volume.tc" /lz /a /pa
a:\volume.tc
これは、ドライブ文字 z にあるボリュームをマウントしたいことを truecrypt に伝え、パスワードは次のとおりです。a
そのコマンドを実行すると、true crypt はそのボリュームをドライブ z にマウントします。
問題は、次にコマンドを実行すると、wmic process
何が発生するかを確認することです。
パスワードがそこにあることに注意してください!
つまり、安全な情報を引数として渡すのは安全ではありません。引数を受け取ったプロセスを閉じると安全かもしれませんが、これを認識することは重要だと思います...