[XP] Batch verberg keystrokes*

Pagina: 1
Acties:

  • Big-R
  • Registratie: December 2004
  • Laatst online: 13-11-2025
Ey,

Hoe kan je in een batch het zo maken dat als je bv test intypt je niets ziet.

Zoals bij (in command) net user (name) * , als je hier wat typt zie je niets.

Google is m'n vriend hier niet mee, en GoT search ook niet :?

Iemand die weet hoe het moet?

B.v.d!

Greetz Big-R


  • Herby
  • Registratie: Januari 2004
  • Laatst online: 17-01-2022

Herby

Stalknecht

Ik neem aan dat je bedoelt dat je dus je wachtwoord niet ziet? Voor zover ik weet gaat dit niet lukken. Je kunt alle output wel verstoppen met @echo off.

[ Voor 43% gewijzigd door Herby op 15-12-2005 08:46 ]

Compromis? Hoezo heb ik het mis dan?! | Geluk = gelul met een K | з=(•̪●)=ε


  • domi235
  • Registratie: Februari 2003
  • Laatst online: 07-12-2021

domi235

Magic!

Je doelt op
code:
1
@echo off
?

Any sufficiently advanced technology is indistinguishable from magic.


  • DinX
  • Registratie: Februari 2002
  • Laatst online: 21:10

DinX

Motormuis

Er bestaat voor batch scripting niks zoals een paswoord verberg optie voor zover ik weet.
Als je dat wil dan kom je terecht bj vbScript ofzo.

Je kan het wel semi-verbergen.
Dit is wel een Kixtart script.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
; *************** BEGIN KIX SCRIPT ***************
dim $sUserID         ; account name
dim $sPwd            ; password for account in $sUserID

? "Please enter your user name: "
gets $sUserID
? "Please enter your password: "
color n/n
gets $sPwd
color w/n
setl "cmduser=$sUserID"
setl "cmdpwd=$sPwd"
shell "batchfile.cmd"
; *************** END KIX SCRIPT ***************


code:
1
2
3
4
5
6
7
8
9
REM ************* BEGIN BATCHFILE.CMD *************
REM This is only an example. Displaying cmdpwd in plain text doesn't make sense in a real environment...   ;-)
echo You have entered the following data in the previous kix script:
echo User name=[%cmduser%]
echo Password=[%cmdpwd%]
pause
REM In the last line you should overwrite the plaint text password in the variable cmdpwd
set cmdpwd=*******
REM ************* END BATCHFILE.CMD *************


Als je dit wat aanpast naar jouw situatie moet het wel te doen zijn.

[ Voor 111% gewijzigd door DinX op 15-12-2005 08:53 ]

Marokko 2015: Route
Sat Tracker: SpotWalla
Blog: Gone for a ride


  • Herby
  • Registratie: Januari 2004
  • Laatst online: 17-01-2022

Herby

Stalknecht

Misschien kun je beter vertellen waarvoor deze batch is en wat je wilt doen, want dan kunnen we je helpen met alternatieven.

Compromis? Hoezo heb ik het mis dan?! | Geluk = gelul met een K | з=(•̪●)=ε


  • Big-R
  • Registratie: December 2004
  • Laatst online: 13-11-2025
Een simpel login script...

Wat ik heb:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
@echo off
:login

set choice=
set /p choice=Please login:

if '%choice%'=='Big-R' goto user

ECHO.

ECHO "%choice%" Username incorrect.
goto login

:user

set choice=
set /p choice=password:


IF '%choice%'=='test' goto password

Echo.


echo "%choice%" Wrong password.

pause
ECHO.

goto user

:password


Echo Done...
pause


Na "done" kan ik dan een andere goto zetten...

Color 00 werkt ook niet (zwarte achtergrond/tekst)

Greetz Big-R


Verwijderd

/edit
hmm, choice had ik idd nog niet aan gedacht :P

/nog een edit
compile je .bat wel naar .exe omdat het anders totaal geen nut heeft omdat je de bat toch gewoon kan lezen met kladblok.

het moet te doen zijn hoor.

probeer het volgende (kan zo uit mijn hoofd niet de exacte code zeggen maar ff een stappenplan)

@echo off
echo Type je wachtwoord:
pause >NUL


hierna komt het moeilijkere deel. je moet nu met variabelen gaan werken. zodra hij de eerste letter typt laat je hem dat opslaan in een variabele, de 2de letter in de volgende etc.
ik heb dit een keer gedaan (een vergelijkbaar iets) maar ik weet ff niet meer waar ik dat heb opgeslagen dus ik kan je de code niet copy/pasten maar het is iets van
set $1=A
pause >NUL
set $1=B
etc

nu komt er wel een max. aantal tekens aan de lengte van je wachtwoord aangezien na een tijdje je variabele op zijn.
het handigste is dan ook als je iets bijzet van "if <variabele>=# goto EINDE"
en :EINDE dan NA alle variabele zetten
de user zal dan dus nadat hij zijn wachtwoord heeft getypt een # moeten typen

dus stel mijn wachtwoord is ab12 dan moet ik "ab12#" typen.

[ Voor 15% gewijzigd door Verwijderd op 15-12-2005 09:20 ]


  • Rone
  • Registratie: April 2002
  • Niet online

Rone

Moderator Tweaking
Zelf deed ik dit jaren terug met behulp van 4DOS, hetgeen een flink aantal commando's aan DOS toevoegt, waaronder de functie om ingevoerde karakters te vervangen door een asterisk (*).

Met plain batch gaat dit waarschijnlijk niet lukken, of het moet op een dusdanig omslachtige manier dat het simpelweg gebruiken van thirdparty software een betere optie is.

[ Voor 38% gewijzigd door Rone op 15-12-2005 09:18 ]

PC1: 9800X3D + RX 9070 XT
PC2: 5800X3D + RTX 3080


  • frickY
  • Registratie: Juli 2001
  • Laatst online: 19-03 13:30
Denk dat het met wat stoeien wel mogelijk moet zijn.

Sowieso kun je een while-loopje creeren welke loopt zolang de enter key niet is ontvangen. Je vraagt telkens 1 key op, en doet dan een CLS om deze van het scherm te wissen. Als je even de ASCII code voor backspace opzoekt kun je ook alleen dit karakter wissen, en er bijv een sterretje voor in de plaats echoen.

  • Rone
  • Registratie: April 2002
  • Niet online

Rone

Moderator Tweaking
frickY schreef op donderdag 15 december 2005 @ 09:20:
[...]
Als je even de ASCII code voor backspace opzoekt
Dec Hex Oct 
8810
kun je ook alleen dit karakter wissen, en er bijv een sterretje voor in de plaats echoen.
Als je toch al met CLS aan de gang gaat kun je het net zo goed zo doen:

code:
1
2
3
4
5
6
7
echo Enter password: _
<wacht op key invoer>
cls
echo Enter password: *_
<wacht op key invoer>
cls
echo Enter password: **_

Trouwens, als je me even mailt wil ik ook wel een simpele .exe voor je schrijven in Pascal :P

[ Voor 3% gewijzigd door Rone op 15-12-2005 09:29 ]

PC1: 9800X3D + RX 9070 XT
PC2: 5800X3D + RTX 3080


Verwijderd

Als je toch al met CLS aan de gang gaat kun je het net zo goed zo doen:

code:
1
2
3
4
5
6
7
echo Enter password: _
<wacht op key invoer>
cls
echo Enter password: *_
<wacht op key invoer>
cls
echo Enter password: **_
leuk bedacht maar met alleen cmdline niet mogelijk.

set /p test=
echo Enter password: _
cls
echo Enter password: *_
cls

dit geeft op je beeld scherm eerst je pw en dan pas na een enter de rest. Je zal toch echt naar een 3rd party tool toe moeten.

  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Welke Windows versie gaat het hier over? :)

  • Big-R
  • Registratie: December 2004
  • Laatst online: 13-11-2025
@ DinX , ik krijg dat script niet in m'n batch.

@ j0ri , Naar exe doe ik ook. Jou manier werkt inderdaad, maar als ik dan enter, krijg ik of niets te zien of hij stopt.

@ r00n , het is de bedoeling dat het in elk willekeurige XP bak kan runnen.Dus een 3rd party prog is niet de optie , tenzei het werkt.

@ frickY , Dan zie je toch nog (hetzei kort) de tekens op het scherm

@ r00n , zie hier boven. Ik mail je niet, want dan leer ik niets.

@ iis5_rulez , Ook het zelfde, je ziet de tekens toch verschijnen.

@ elevator , Microsoft® Windows® Xp®

Thanks voor de reacties

[ Voor 5% gewijzigd door Big-R op 15-12-2005 14:50 ]

Greetz Big-R


  • Big-R
  • Registratie: December 2004
  • Laatst online: 13-11-2025
Ik kom er echt niet uit...

Als ik bij regel 20 set choice= doe krijg ik "" wordt niet herkend als interne of externe opdracht, programma of batchbestand.

Als ik bij regel 20 set choice=test doe krijg ik met elke willekeurige knop het wel voor elkaar.

Mijn vraag is dan , hoe verander je die willekeurige knop naar bv test?

Misschien staat het hierboven al, maar ik kom er niet uit. :/

:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
@echo off

:login

set choice=
set /p choice=Please login:

if '%choice%'=='Big-R' goto Big-R

ECHO.

ECHO "%choice%" Username incorrect.
goto login


:Big-R

@echo off

set choice=

:p
cls
echo Enter password: _
pause
cls
goto ps


:ps
echo Enter password: *_
pause
cls
goto ps2


:ps2
echo Enter password: **_
pause
cls
goto ps3


:ps3
echo Enter password: ***_
pause
cls
goto ps4


:ps4
echo Enter password: ****_
pause
cls

IF '%choice%'=='test' goto password


Echo.


echo "%choice%" Wrong password.

pause
ECHO.

goto Big-R

:password

cls
Echo Done...
pause
cls


//edit: echo bijgevoegd @ regel 62

[ Voor 18% gewijzigd door Big-R op 15-12-2005 20:38 ]

Greetz Big-R


  • TheBorg
  • Registratie: November 2002
  • Laatst online: 17-03 11:38

TheBorg

Resistance is futile.

Om kleuren te gebruiken moet je eerst ansi.sys laden.

  • Big-R
  • Registratie: December 2004
  • Laatst online: 13-11-2025
Maar TheBorg, het is de bedoeling dat dit op elke willekeurige XP bak draait.

En asci wordt niet gezien als een interne of externe opdracht , programma of batchbestand. (?)

Misschien doe ik het fout?

Greetz Big-R


  • DanielG
  • Registratie: Oktober 2005
  • Laatst online: 08-09-2025

DanielG

i = 0x5f3759df - (i>>1); ☠₧ℳ🀪❣

"%choice%" Wrong password. moet een echo voor, daarom krijg je die "" wordt niet herkend als interne of externe opdracht

die "" slaat ook op dat er niets in de variabele %choice% zit, dit waarschijnlijk omdat de input wordt opgeslokt door de pause command iederekeer.

/edit: even wat info over de pause
ABOUT PAUSE

The pause command is used within a computer batch file and allows the computer to pause the currently running batch file until the user presses any key.

[ Voor 42% gewijzigd door DanielG op 15-12-2005 20:25 . Reden: info over pause ]

http://xyproblem.info/


  • Big-R
  • Registratie: December 2004
  • Laatst online: 13-11-2025
Ja daar zat ik ook aan te denken, dat die pause de toets inneemt...

Edit gelezen, ja precies, hij vult dus niets in...

Hoe krijg ik 'm dan wel dat ik iets kan invullen?

met
code:
1
2
3
set $1=[t]
set $2=[e]
set $3=[s]

?

Greetz Big-R


  • DanielG
  • Registratie: Oktober 2005
  • Laatst online: 08-09-2025

DanielG

i = 0x5f3759df - (i>>1); ☠₧ℳ🀪❣

personelijk zou ik geen batch hiervoor gebruiken als je toch een exe maakt ("@ j0ri , Naar exe doe ik ook.") schrijf het dan meteen in een programeer taal die dit 'makkelijker' kan.

http://xyproblem.info/


  • Big-R
  • Registratie: December 2004
  • Laatst online: 13-11-2025
Ok schrijf ik even... :P

Nee, ben blij dat ik dit een klein beetje begin te snappen...
En als hij klaar met inloggen is, moet hij verdergaan met een batch file.

Greetz Big-R


Verwijderd

Neem iets als Basic en een goeie compiler (bv QuickBasic 4.5 of hoger).

Hier maak ik programma's mee als ik iets niet voor elkaar krijg zonder veel moeite. DOS is eigenlijk niet hier voor gebouwd, en als je het toch gaat omzetten dan kan je beter Basic gebruiken, of Pascal.

Maargoed daarvoor kan ik je het beste verwijzen naar de o-zo-bekende http://www.qbasic.com
Zie de "old site - mirror", daar staan veel files, oa password checks. Vrij simpel iig.

[ Voor 13% gewijzigd door Verwijderd op 15-12-2005 21:04 ]


  • Big-R
  • Registratie: December 2004
  • Laatst online: 13-11-2025
GoT it!

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
@echo off

Title Login
:login

set choice=
set /p choice=Please login:

if '%choice%'=='Big-R' goto Big-R
ECHO.

ECHO "%choice%" Username incorrect.
goto login


:Big-R


SET   REAL_PASS=test        
SET REAL_LENGTH=****      <---- moeten evenlang

echo e100 B4 00 CD 16 88 E0 B4 4C CD 21> %temp%.\scan.com
for %%? in (rcx A w q) do echo %%?>> %temp%.\scan.com
type %temp%.\scan.com |DEBUG %temp%.\scan.com > nul

:pre
for %%? in (pass length) do set user_%%?=

:loop
set input=
cls
echo Type password: %user_length%
if "%user_pass%"=="%real_pass%" goto granted
if "%user_length%"=="%real_length%" goto denied
call %temp%.\scan.com
if errorlevel=2 if not errorlevel=3 set input=1
if errorlevel=3 if not errorlevel=4 set input=2
if errorlevel=4 if not errorlevel=5 set input=3
if errorlevel=5 if not errorlevel=6 set input=4
if errorlevel=6 if not errorlevel=7 set input=5
if errorlevel=7 if not errorlevel=8 set input=6
if errorlevel=8 if not errorlevel=9 set input=7
if errorlevel=9 if not errorlevel=10 set input=8
if errorlevel=10 if not errorlevel=11 set input=9
if errorlevel=11 if not errorlevel=12 set input=0
if errorlevel=30 if not errorlevel=31 set input=a
if errorlevel=48 if not errorlevel=49 set input=b
if errorlevel=46 if not errorlevel=47 set input=c
if errorlevel=32 if not errorlevel=33 set input=d
if errorlevel=18 if not errorlevel=19 set input=e
if errorlevel=33 if not errorlevel=34 set input=f
if errorlevel=34 if not errorlevel=35 set input=g
if errorlevel=35 if not errorlevel=36 set input=h
if errorlevel=23 if not errorlevel=24 set input=i
if errorlevel=36 if not errorlevel=37 set input=j
if errorlevel=37 if not errorlevel=38 set input=k
if errorlevel=38 if not errorlevel=39 set input=l
if errorlevel=50 if not errorlevel=51 set input=m
if errorlevel=49 if not errorlevel=50 set input=n
if errorlevel=24 if not errorlevel=25 set input=o
if errorlevel=25 if not errorlevel=26 set input=p
if errorlevel=16 if not errorlevel=17 set input=q
if errorlevel=19 if not errorlevel=20 set input=r
if errorlevel=31 if not errorlevel=32 set input=s
if errorlevel=20 if not errorlevel=21 set input=t
if errorlevel=22 if not errorlevel=23 set input=u
if errorlevel=47 if not errorlevel=48 set input=v
if errorlevel=17 if not errorlevel=18 set input=w
if errorlevel=45 if not errorlevel=46 set input=x
if errorlevel=21 if not errorlevel=22 set input=y
if errorlevel=44 if not errorlevel=45 set input=z
if errorlevel=71 if not errorlevel=72 set input=7
if errorlevel=72 if not errorlevel=73 set input=8
if errorlevel=73 if not errorlevel=74 set input=9
if errorlevel=75 if not errorlevel=76 set input=4
if errorlevel=76 if not errorlevel=77 set input=5
if errorlevel=77 if not errorlevel=78 set input=6
if errorlevel=79 if not errorlevel=80 set input=1
if errorlevel=80 if not errorlevel=81 set input=2
if errorlevel=81 if not errorlevel=82 set input=3
if errorlevel=82 if not errorlevel=83 set input=0
if "%input%"=="" goto loop
set user_length=*%user_length%
set user_pass=%user_pass%%input%
goto loop

:granted
echo Access granted.
goto pass_end

:denied
echo Access denied.
goto pass_end2

:pass_end
for %%? in (pass length) do set user_%%?=
for %%? in (pass length) do set real_%%?=
del %temp%.\scan.com
goto start     <--- is de start van de volgende batch. Staat er niet bij...

:pass_end2
for %%? in (pass length) do set user_%%?=
for %%? in (pass length) do set real_%%?=
del %temp%.\scan.com
echo Wrong password!
pause
exit


Voor de mensen die het ook zoeken!

Allemaal bedankt voor jullie moeite! _/-\o_ _/-\o_

Greetz Big-R


Verwijderd

al die moeite om je pw op het scherm te verbergen, maar het cmd-tje openen en eerst ff de pass lezen is wel gewoon mogelijk :). wel cool dat het kan, maar van weinig praktische waarde imho...

[ Voor 22% gewijzigd door Verwijderd op 16-12-2005 10:41 ]


  • Big-R
  • Registratie: December 2004
  • Laatst online: 13-11-2025
Verwijderd schreef op vrijdag 16 december 2005 @ 10:38:
al die moeite om je pw op het scherm te verbergen, maar het cmd-tje openen en eerst ff de pass lezen is wel gewoon mogelijk :). wel cool dat het kan, maar van weinig praktische waarde imho...
Er wordt een .EXE van gemaakt wat het (bijna) onmogelijk maakt de "bron" te lezen. of bedoel je dat niet?

//Edit: (bijna toegevoed) :P

[ Voor 7% gewijzigd door Big-R op 16-12-2005 15:51 ]

Greetz Big-R


  • DanielG
  • Registratie: Oktober 2005
  • Laatst online: 08-09-2025

DanielG

i = 0x5f3759df - (i>>1); ☠₧ℳ🀪❣

niks is onmogelijk ;)

http://xyproblem.info/

Pagina: 1