Gå til innhold

Hvordan skjule det du skriver? Batch-script


Anbefalte innlegg

Hei! Driver å lager et batch-script, også lurer jeg på hvordan jeg kan gjøre sånn at når jeg starter fila, også skal skrive inn noe (i dette tilfellet et passord), så viser ikke cmd hva jeg skriver...

Sånn som du gjør når du f.eks. skal endre passord på en bruker med "net-user"-kommandoen (kommer ikke på noe bedre eksempel i farta).

 

Jeg kan ikke så mye om batch-scripting enda, og jeg har lett via google, men har ikke funnet noe så langt. Noen som vet hvordan koden vil se ut? Her er koden jeg har lagd for passordet:

SET /p Password=
SET /a Password=%Password%
cls
IF %Password% EQU whatever GOTO :pass
IF %Password% LSS whatever GOTO :denied
IF %Password% GTR whatever GOTO :denied

 

Så greia er at det jeg skriver inn i %Password% ikke skal vises når jeg skriver det..

 

Takk for svar :)

Lenke til kommentar
Videoannonse
Annonse

Her ville jeg anbefale samme approach som enkle webdesign benytter seg av MD5-hash.

 

Nå er det veeeeeldig lenge siden jeg har batch programmert men here we go:

1. Last ned md5deep.exe fra her http://md5deep.sourceforge.net/ (evnt kan du bruke microsoft sin versjon http://support.microsoft.com/kb/841290)

2. Lag et passord mha md5deep.exe slik: "echo passordetmitt|md5deep.exe"

3. Hashen fra passordet lagrer du: c21aed7792c25619dd9ab7b1534f528f

4. Sjekk script:

@ECHO OFF

 

SET Password=c21aed7792c25619dd9ab7b1534f528f

 

FOR /F "usebackq" %%A IN (`echo %1^| md5deep.exe`) DO set md5hash=%%A

echo debug: md5hash input: %md5hash%

echo debug: md5hash comp: %Password%

 

IF %Password% EQU %md5hash% GOTO :pass

IF %Password% LSS %md5hash% GOTO :denied

IF %Password% GTR %md5hash% GOTO :denied

 

:pass

echo Passord ok

goto end

 

:denied

echo Passord er feil

goto end

 

:end

5. Lagre scriptet som f.eks passcheck.bat, kjør den med "passcheck.bat <passordetditt>"

 

Passordet vil ikke kunne bli lest ut direkte, men hvis du f.eks skulle ha brukt den i en "net use" kommando kommer du til kort.

Lenke til kommentar
Her ville jeg anbefale samme approach som enkle webdesign benytter seg av MD5-hash.

 

Nå er det veeeeeldig lenge siden jeg har batch programmert men here we go:

1. Last ned md5deep.exe fra her http://md5deep.sourceforge.net/ (evnt kan du bruke microsoft sin versjon http://support.microsoft.com/kb/841290)

2. Lag et passord mha md5deep.exe slik: "echo passordetmitt|md5deep.exe"

3. Hashen fra passordet lagrer du: c21aed7792c25619dd9ab7b1534f528f

4. Sjekk script:

@ECHO OFF

 

SET Password=c21aed7792c25619dd9ab7b1534f528f

 

FOR /F "usebackq" %%A IN (`echo %1^| md5deep.exe`) DO set md5hash=%%A

echo debug: md5hash input: %md5hash%

echo debug: md5hash comp: %Password%

 

IF %Password% EQU %md5hash% GOTO :pass

IF %Password% LSS %md5hash% GOTO :denied

IF %Password% GTR %md5hash% GOTO :denied

 

:pass

echo Passord ok

goto end

 

:denied

echo Passord er feil

goto end

 

:end

5. Lagre scriptet som f.eks passcheck.bat, kjør den med "passcheck.bat <passordetditt>"

 

Passordet vil ikke kunne bli lest ut direkte, men hvis du f.eks skulle ha brukt den i en "net use" kommando kommer du til kort.

 

Kan du forklare litt nærmere hvordan man bruker md5deep? Det eneste jeg får opp når jeg kjører md5deep.exe er et komandovidu, og uansett hva jeg skriver der, så skjer det ingenting... :p

Lenke til kommentar

Skriv: md5deep.exe -h

See the man page or README.txt file for the full list of options

-p - piecewise mode. Files are broken into blocks for hashing

-r - recursive mode. All subdirectories are traversed

-e - compute estimated time remaining for each file

-s - silent mode. Suppress all error messages

-S - Displays warnings on bad hashes only

-z - display file size before hash

-m <file> - enables matching mode. See README/man page

-x <file> - enables negative matching mode. See README/man page

-M and -X are the same as -m and -x but also print hashes of each file

-w - displays which known file generated a match

-n - displays known hashes that did not match any input files

-a and -A add a single hash to the positive or negative matching set

-b - prints only the bare name of files; all path information is omitted

-l - print relative paths for filenames

-k - print asterisk before filename

-o - Only process certain types of files. See README/manpage

-v - display version number and exit

 

Den er egentlig laget for å lage en md5-hash av filer. Men du kan benytte den til annet også. Grunnen er at den bruker STDIN delen av DOS til å rute saker, dermed kan du få resultat med å kjøre en echo først og deretter programmet.

 

Prøv f.eks: echo mittpassord|md5deep.exe

Den returnerer 2027d58d3695a2f8979cb0e48c9df9cd med engang siden echo "skriver" først, deretter kjøres md5deep

 

Håper du var med på den :) Funka scriptet el?

Lenke til kommentar

Åkei... Jeg veit egentlig ikke om det fungerte... Slit du hadde skrevet det, så skjedde det ingenting. Rakk ikke engang å se hva som stod før vinduet ble borte :p

Så gjorde jeg litt om på scriptet:

@ECHO OFF

SET Password=c21aed7792c25619dd9ab7b1534f528f
FOR /F "usebackq" %%A IN (`echo %1^| md5deep.exe`) DO set md5hash=%%A
echo debug: md5hash input: %md5hash%
echo debug: md5hash comp: %Password%
SET /p Password=
SET /a Password=%Password%

IF %Password% EQU %md5hash% GOTO :pass
IF %Password% LSS %md5hash% GOTO :denied
IF %Password% GTR %md5hash% GOTO :denied

:pass
echo Passord ok
PAUSE
goto :end

:denied
echo Passord er feil
PAUSE

 

Men jeg veit egentlig ikke åssen kommandoene du hadde skrevet fungerer, for har ikke kommet så langt enda, så jeg har ikke peiling om det ble riktig... I hvertfall. Når jeg nå starter batch-fila kommer dette opp:

debug: md5hash input: 2419afda06820e1a585bcb7d5eca5d8e

debug: md5hash comp: c21aed7792c25619dd9ab7b1534f528f

Også kan jeg skrive passordet under. Men hvordan setter jeg passordet? Jeg prøvde mittpassord, men det fungerte ikke. Så veit ikke om jeg har kommet noe lenger egentlig? :p

Lenke til kommentar

Når du jobber med batchscript er det greit å bruke commandprompten da. Start -> Kjør, skriv "cmd" også trykk enter.

 

%1 parameteren er først parameteren ETTER scriptet. F.eks;

dittscript.bat param1 param2 param3 ...

Disse kan du hente ut igjen i programmet med %1, %2, %3 variablene

%1 = param1

%2 = param2

%3 = param3

 

Ut fra scriptet jeg har laga kjøres en "forløkke" for å sette variabelen som kjøres:

FOR /F "usebackq" %%A IN (`echo %1^| md5deep.exe`) DO set md5hash=%%A

Der %1 er først param. %%A er min variabel for resultatet

Lenke til kommentar
  • 1 år senere...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...