nicoles21
Goto Top

Passwörter mit Asterisk in einer CMD berücksichtigen

Hallo zusammen,

ich habe eine Batch die diverse Passwörter durchgeht. Das funktioniert auch soweit. Allerdings werden Passwörter mit einem * übersprungen.

Gibt es eine Möglichkeit, dass auch die Passwörter mit * berücksichtigt werden?

LG
Nicole

Content-Key: 581192

Url: https://administrator.de/contentid/581192

Printed on: May 15, 2024 at 00:05 o'clock

Member: GrueneSosseMitSpeck
GrueneSosseMitSpeck Jun 22, 2020 at 07:41:41 (UTC)
Goto Top
base64 verschlüsseln... unter Windows allerdings nur indirekt über certutil, oder im Powershell mit den Credential Objekten arbeiten.

Powershell und Kennwörter
Member: NicoleS21
NicoleS21 Jun 22, 2020 at 13:19:38 (UTC)
Goto Top
Kann man Sonderzeichen nicht irgendwie "maskieren" oder so?

In den PWs kommt nicht nur das * vor, sondern auch mal ein #! oder sonst etwas.
Member: rubberman
rubberman Jun 22, 2020 at 13:55:52 (UTC)
Goto Top
ich habe eine Batch
… von der wir keine Zeile Code kennen und somit nicht sagen können wo das Problem liegen könnte. Per se wird so etwas nicht "übersprungen". Es mag vielleicht so aussehen, wenn du Strings mit Asterisks oder Fragezeichen in einem Kontext verwendest, wo Globbing aktiv ist. Ohne deinen Code ist das aber alles rein spekulativ.

Steffen
Member: NicoleS21
NicoleS21 Jun 22, 2020 at 14:27:12 (UTC)
Goto Top
@echo off
setlocal

rem Change me
set myPasswords=test test1 test2 *test																																																																																																																																																																																						

set myContainer="C:\Test\Volumen.tc"  
set myKeyFile="C:\Test\keyfile.dat"  
set myTruecrypt="C:\Program Files\TrueCrypt\TrueCrypt.exe"  
set myDrive=D

rem Unmount existing TrueCrypt volume on target drive
%myTruecrypt% /q /s /d%myDrive%

rem Run through password list
for %%a in (%myPasswords%) do (
   %myTruecrypt% /v %myContainer% /k %myKeyFile% /letter %myDrive% /a /p "%%a" /s /q  
   set PW=%%a
   IF EXIST "%myDrive%:\" GOTO SUCCESS  
)

:SUCCESS
echo.
echo DONE
GOTO END 
:END
Pause

Das ist der entsprechende Code. Dieser funktioniert, auch mit PWs ohne * problemlos. Sobald die mit ins Spiel kommen, werden dieser in der Ausgabe/Schleife kommentarlos übersprungen.
Member: rubberman
rubberman Jun 22, 2020 updated at 16:40:00 (UTC)
Goto Top
Aus der Hilfe zu FOR:
FOR %Variable IN (Satz) DO Befehl [Parameter]

  %Variable   Ein ersetzbarer Parameter bestehend aus einem einzelnen
              Buchstaben.
  (Satz)      Ein Satz von mindestens einer Datei. Platzhalter sind zulässig.
  Befehl      Befehl, der für jede Datei ausgeführt werden soll.
  Parameter   Parameter und Optionen für den angegebenen Befehl.
"Satz" ist also als eine Liste von Dateien zu verstehen. Asterisks gelten als Platzhalter und es kommt Globbing ins Spiel, bei dem eine Datei gesucht wird, die dem Pattern entspricht. In deinem Fall ohne Erfolg, somit gibt es keine Ausgabe.

Du kannst die interne Rekursion abgreifen, die bei Stringersetzungen abläuft, um mit Batch aus der Affäre zu kommen, à la
@echo off &setlocal DisableDelayedExpansion
set "myPasswords=test test1 test2 *test ?test !test <test &test ^test"  

set "pw=%myPasswords: =" & call :pwsubroutine & set "pw=%"  
call :pwsubroutine

pause
exit /b

:pwsubroutine
setlocal EnableDelayedExpansion
echo mach hier was mit !pw!
endlocal
exit /b
... oder du nutzt eine Sprache bei der es solche Probleme nicht gibt.

Steffen