Truecrypt Quote (") Problem

Alter Post
Hallo,


Ich habe (testweise) einen Truecrypt-Container mit dem Password ...
Code:
quo"te\
..erstellt. Und möchte den nun über die cmd unter WIN mounten. (XP/VISTA)

Mounte ich es über das GUI-Frontend gibt es keine Probleme. Aber wie zum Henker kann ich dieses Volumen nun über die CMD mounten?

Code:
truecrypt /v myvolume.tc /lx /a /p quo"te\  /q
...funktioniert nicht.

Die gemerkigen unter euch werden es schon bemerkt haben, das Problem ist die Quote (").

Leider funktionieren folgende Aufrufe ganauso wenig:
Code:
truecrypt /v myvolume.tc /lx /a /p quo\"te\  /q
...oder.. den Backslash auch noch escapen...
Code:
truecrypt /v myvolume.tc /lx /a /p quo\"te\\  /q
...oder alles in quotes:
Code:
truecrypt /v myvolume.tc /lx /a /p "quo\"te\\"  /q


Habe ich da was verbockt oder ist das tatsächlich nicht möglich!?(btw, die pfade usw. stimmen schon, ich habe auch kurz ein anderes Volumen mit pw "test" erstellt, und das ging problemlos über die cmd) Ich habe mir auch kurz ein Test-Programm geschrieben, um das mit den cmd parametern zu testen - wie das mit escapen funzt usw. Und da funktionierts dann eben mit dem Backslash.

Wollte mich eigentlich an das Truecrypt-Forum wenden, nur ist das zur Zeit down :rolleyes:

Danke fürs lesen :)

Im TrueCrypt Forum bin ich soeben auf folgendes gestossen:
Zum Thema Quote Problem meint ein Member:
That is a bug! I checked the sources also in the new 5.0a version. That is a parsing bug!
Truecrypt does not support all ASCII characters! The quote is an ascii character and the command line does not recognize it. you cannot escape the quote. therefore quotes are not allowed when you want to provide your password on the command line.
Look at this code of "cmdline.c"
Code:
      if (lpszCommandLine[i] == '"')
      {
         i++;
         while (i < nLen)
         {
            if (lpszCommandLine[i] == '"')
               break;
            if (k < sizeof (szTmp))
               szTmp[k++] = lpszCommandLine[i++];
            else
            {
               free (*lpszArgs);
               return 0;
            }
         }

         if (lpszCommandLine[i] != '"')
         {
            nValid = FALSE;
            break;
         }
      }
müsste doch eigentlich möglich sein das zu fixen, oder nicht?

Wäre toll wenn sich das ein erfahrener C++ler mal ansehen könnte.
 
Zurück
Oben