Page 1 sur 2

[Résolu]Batch avec mot de passe

Posté : 02 avr. 2011 12:54
par erfan88230
Bonjour, j'ai trouver un script que j'ai a moitier créer a moitier modifier pour qu'il marche et se démarre des le démarrage de l'ordinateur pour .Il consiste en:
-vous dire bonjour avec votre vrai nom / Prénom
-vous indique l'heure et la date
-si vous marquer le bon mot de passe l'ordinateur reste allumer et le .bat s'éteint
-si vous mettez le mauvais mot de passe l'ordinateur s'éteint


@echo off
title anti-intrusion!
set /p prenom= Quel et votre prenom?:
set /p nom= Quel est votre nom?:
:DEBUT
set dire=
set etoile=
echo.
:PARLE
cls
echo Bonjour %prenom% %nom%,
echo Tapez le mot de passe pour valider appuyer sur " ! "
echo + pour tout effacer
pause
goto CHOICE
echo.
:CHOICE
cls
echo %etoile%
CHOICE /C:abcdefghijklmnopqrstuvwxyz1234567890+!>nul
If "%ERRORLEVEL%"=="38" goto do
If "%ERRORLEVEL%"=="37" goto DEBUT
If "%ERRORLEVEL%"=="36" set dire=%dire%0
If "%ERRORLEVEL%"=="35" set dire=%dire%9
If "%ERRORLEVEL%"=="34" set dire=%dire%8
If "%ERRORLEVEL%"=="33" set dire=%dire%7
If "%ERRORLEVEL%"=="32" set dire=%dire%6
If "%ERRORLEVEL%"=="31" set dire=%dire%5
If "%ERRORLEVEL%"=="30" set dire=%dire%4
If "%ERRORLEVEL%"=="29" set dire=%dire%3
If "%ERRORLEVEL%"=="28" set dire=%dire%2
If "%ERRORLEVEL%"=="27" set dire=%dire%1
If "%ERRORLEVEL%"=="26" set dire=%dire%z
If "%ERRORLEVEL%"=="25" set dire=%dire%y
If "%ERRORLEVEL%"=="24" set dire=%dire%x
If "%ERRORLEVEL%"=="23" set dire=%dire%w
If "%ERRORLEVEL%"=="22" set dire=%dire%v
If "%ERRORLEVEL%"=="21" set dire=%dire%u
If "%ERRORLEVEL%"=="20" set dire=%dire%t
If "%ERRORLEVEL%"=="19" set dire=%dire%s
If "%ERRORLEVEL%"=="18" set dire=%dire%r
If "%ERRORLEVEL%"=="17" set dire=%dire%q
If "%ERRORLEVEL%"=="16" set dire=%dire%p
If "%ERRORLEVEL%"=="15" set dire=%dire%o
If "%ERRORLEVEL%"=="14" set dire=%dire%n
If "%ERRORLEVEL%"=="13" set dire=%dire%m
If "%ERRORLEVEL%"=="12" set dire=%dire%l
If "%ERRORLEVEL%"=="11" set dire=%dire%k
If "%ERRORLEVEL%"=="10" set dire=%dire%j
If "%ERRORLEVEL%"=="9" set dire=%dire%i
If "%ERRORLEVEL%"=="8" set dire=%dire%h
If "%ERRORLEVEL%"=="7" set dire=%dire%g
If "%ERRORLEVEL%"=="6" set dire=%dire%f
If "%ERRORLEVEL%"=="5" set dire=%dire%e
If "%ERRORLEVEL%"=="4" set dire=%dire%d
If "%ERRORLEVEL%"=="3" set dire=%dire%c
If "%ERRORLEVEL%"=="2" set dire=%dire%b
If "%ERRORLEVEL%"=="1" set dire=%dire%a
set etoile=%etoile%*
set mdp=123456789
REM si vous voulez changer le mdp changer "123456789" en se que vous voulez vous pouvez aussi mettre des chiffre
goto CHOICE
echo.
:do
If %dire%==%mdp% goto done
If not %dire%==%mdp% goto noob
echo.
:done
cls
echo Bienvenue sur l'ordinateur M./Mme %prenom% %nom%
echo le script va se quitter dans 10s. apres la pause
echo Nous somme le %DATE% a %Time%
pause
choice /t:o,10>nul
goto end
echo.
:noob
echo Reassaye =)
echo Aller ne soit pas decu =)
shutdown -s
pause
echo.
:end

voilà,
Merci pour votre aide,
J'ai chercher et j'ai trouver le problème venais des " avant et des " après les %dire% et %mdp%
ps: je suis sous windows XP.

Re: [Résolu]Batch avec mot de passe

Posté : 04 avr. 2011 15:30
par Joe cateline
Salut Erfan,

Ton script est intéressant mais il a une faille, il suffit de fermer la fenêtre dos qui demande le mot de pass pour stopper le script...
Pour contourner le problème, je te fais deux batch légèrement différents que j'utilise déjà moi même et qui fonctionne plutôt bien.

Le premier est celui que tu glissera dans l'onglet "démarrage" :

Code : Tout sélectionner

@echo off
title Authentification
start/min timing.bat
echo Bonjour, etes vous bien %username% ?
echo.
echo Entrez votre identifiant :
set/p "pass=>
if not %pass%=="MDP" goto err
md leurre
goto end
:err
echo Utilisateur inconnu, tentative d'intrusion detectee
echo.
echo Fermeture du systeme...
shutdown -s -t 0 -f
:end
Remplace "MPD" par le mot de passe que tu veux personnaliser.
Ce script fait appel à "timing.bat", le voila :

Code : Tout sélectionner

@echo off
title Timing
set count=20
:bouc
cls
if exist leurre goto end
if %count%==0 goto clo
echo %count%
sleep 1
set/a count=%count% - 1
goto bouc
:clo
shutdown -s -t 0 -f
:end
rmdir leurre
exit
Place ces deux bat au même endroit, peu importe où mais ensemble. Le timing.bat sera en barre de tache, tu as 20 sec pour donner le mot de passe sinon l'ordi s’éteint. Tu es sous xp, tu n'as donc pas la commande "sleep" de base, tu peux télécharger le pack de commande dont "sleep" ici sinon ça ne marchera pas.

Si tu ferme la fenêtre "Authentification", timing reste en barre de tache (c'est plus discret) et à un décompte de 20 sec il éteint tout. Je ne sais pas comment "camoufler" le timing mieux que ça, ça doit être possible et je serais curieux de savoir comment, par exemple que l'on ne puisse voir la fenêtre uniquement dans les processus.

En espérant t'avoir aidé !

Re: [Résolu]Batch avec mot de passe

Posté : 04 avr. 2011 16:45
par rantanplan
Pour cacher la fenêtre sans qu'on ne la voix en tache de fond change

Code : Tout sélectionner

start/min timing.bat

par

Code : Tout sélectionner

start /B timing.bat
info :
B Lance l'application sans créer de fenêtre. L'arrêt
par ^C n'est pas pris en charge dans l'application.
Si l'application n'autorise pas la détection de ^C, ^Pause
est la seule façon d'arrêter l'application

Elle sera en effet visible dans les processus uniquemet (mais pas dans application)
A moins que la personne ne se doute du script il pourra ouvrir la console et chercher la parade
La commande ultime étant de ne pas luis laisser le temps d'ouvrir la console en réduisant le temps de saisie

Re: [Résolu]Batch avec mot de passe

Posté : 04 avr. 2011 22:22
par Joe cateline
Bien joué Tanplan ! Merci de l'info.

Re: [Résolu]Batch avec mot de passe

Posté : 05 avr. 2011 09:24
par erfan88230
Merci a vous deux je cherchai justement comment il faut faire pour que personne ne puisse quitter la console =) merci :!:
Et l'installation pour la commande sleep ne marche pas ou faut-il que je la mette quelque part ?
Sinon je pourrai la remplacer par : choice /t:o,5>nul
qui sert de temporisation sous Windows XP ?

Re: [Résolu]Batch avec mot de passe

Posté : 28 avr. 2011 23:07
par Dodoche28
Boujour
Je tiens à préciser quand même que pour toutes les commandes externe, il n'y a pas besoin d'installation, par contre il faut mettre la commande externe dans le même dossier que le batch!
En gros c'est juste un fichier qui, en fonction de ces paramètres va appliquer un programme, c'est comme en batch!

Re: [Résolu]Batch avec mot de passe

Posté : 07 mai 2011 10:17
par WIN32-[GG]
Euh...
Je me disais, j'entre le mauvais mot de passe, la fenêtre "ARRÊT DE L'ORDI" s'ouvre OK
Mais j'ai juste à faire "shutdown -a" dans démarrer > exécuter
Il faudrait peut-être donc penser à arrêter explorer.exe au début et le rallumer à la fin.
Pareille avec le gestionnaire de taches (sinon on peut redémarer explorer.exe)
(explorer.exe: Le processus qui gère le bureau, la barre des taches, les fenetres de l'explorateur etc..)

J'espère que j'ai pu t'aider.

A bientôt

Re: [Résolu]Batch avec mot de passe

Posté : 07 mai 2011 17:41
par Dodoche28
Bonjour :mrgreen:

En conclusion, il y a beaucoup de chose à revoir! :D
:idea: Parce que si on bloque explorer + modifier le registre pour désactiver "TaskMgr", çà fait beaucoup et au moindre problème, s'est la merde!

:arrow: Pour enlever le processus explorer
taskkill /F /IM explorer.exe

:arrow: Pour démarrer le processus explorer
start explorer.exe

:arrow: Pour désactiver/activer "TaskMgr"
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System
puis modifier la valeur DWORD intituler "DisableTaskMgr" (0 pour activer TaskMgr ; 1 pour désactiver TaskMgr)

Voili voilou pour ceux que ça intéresse! :D

Re: [Résolu]Batch avec mot de passe

Posté : 10 juin 2011 14:12
par shunky
Bonjour,

J'ai vu ce topic que je trouvais très intéressant, c'est pourquoi je me suis mis à travailler dessus.
Néanmoins, en reprenant le code donné par rantanplan avec la modification /B au lieu de /min, lorsque je lance mon .bat, l'invite de commande affiche...le comtpe a rebours, qui a donc pris la place de l'autre script... :s

Quelqu'un aurait-il une idée?

Le code, bien que ce soit quasiment le même:
@echo off
taskkill /F /IM explorer.exe
cls
title Authentification
start /B timing.bat
echo Bonjour, etes vous bien %username% ?
echo.
echo Entrez votre identifiant :
set/p "pass=>
if not %pass%==azerty goto err
md leurre
goto end

:err
echo Utilisateur inconnu, tentative d'intrusion detectee
echo.
echo Fermeture du systeme...
sleep 3
shutdown -s -t 0 -f

:end
start explorer.exe
exit
A noter qu'avec /min cela marche parfaitement. Je suis sous Windows 7.
J'ai bien le petit sleep.exe qui sert à faire fonctionner le timing.bat ^^

Merci d'avance!

Re: [Résolu]Batch avec mot de passe

Posté : 10 juin 2011 19:45
par Dodoche28
Bonsoir shunky :mrgreen:

Le paramètre de start n'est pas correcte dans Authentification!
Il faut mettre le paramètre /min et non /B ;)

Code : Tout sélectionner

@echo off
taskkill /F /IM explorer.exe
cls
title Authentification
start /min timing.bat
echo Bonjour, etes vous bien %username% ?
echo.
echo Entrez votre identifiant :
set/p "pass=>
if not %pass%==azerty goto err
md leurre
goto end

:err
echo Utilisateur inconnu, tentative d'intrusion detectee
echo.
echo Fermeture du systeme...
sleep 3
shutdown -s -t 0 -f

:end
start explorer.exe
exit