-------[  RtC Mag, At the end of the universe  ]

--------------[  Batched and Protected  ]
---------[ in RtC mag 3 ]
----[  by SnEaKie <sneakie-rtc@fr.st>  ]


-------[  Introduction

    Le but de mon article cette fois-ci, c d'initier certains  la logique Batch, cad comment placer certaines fonctions sans pour autant qu'elles interfrent et de faire un exemple d'antivirus non pas trs puissant, lkin de l, ms pour montrer que faire un virus c pas si dur que a et que qd on a capt comment marche un virus, on peut le contrer par une technique inverse : ne me faites ps dire ce que je n'ai ps dit,  savoir que je sais faire des antivirus car je connais tous les virus, loin de moi cette ide...!!!...!!!...!!!    
    Aprs un pb dans le prcdent article, je m'efforcerais cette fois-ci de faire de mon mieux et de proposer un article sans erreurs de code... Aprs un virus, je propose un anti-virus, quoique trs simple, il n'en ai pas moins utile. Cet av est un av pour les virus Batchs qui sont trs peu reconnaissables par les av classiques : ceci n'tant pas forcment la priorit de ces av...(ce serait plutt le bnfice! :)
    Tout d'abord rflchissons quelques secondes sur les fonctions que doit remplir un av pour qu'il opre directement et efficacement. Ensuite nous verrons le code source et ses diffrentes fonctionnalits qui peuvent tre rajoutes. 
 * Un av doit tre capable de reconnatre les virus : premire de ses fonctions. En effet, si un av veut pouvoir protger le systme d'ventuels virus provocants des pbs il doit tre capable de reprer ceux qui seraient susceptibles de provoquer des erreurs... Ce n'est pas une mince affaire, croyez-moi, comment faire pour qu'un antivirus batch sache que tel ou tel fichier contient des commandes qui pourraient endommager le systme ou crer d'ventuels conflits avec des applications ? Il faut donc implmenter dans l'av des routines de reconnaissances... Pas facile...
 * Ce mme av doit aussi tre capable de rsoudre le pb qu'il aura trouver : il doit pouvoir dcontaminer le systme une fois celui-ci infect, tout cela sans dtruire des donnes soit en tant le plus prcautionneux possible.


-------[  Solutions

 * Pas fado : pour la premire chose il va falloir que tous les fichiers avec l'extension *.bat; *.txt; et tous ceux qui peuvent tre ouvert un diteur de texte classique ds un 1er tmps, contiennent certains caractres qui permettront  l'av de reconnatre les fichiers non-infects : ces caractres dans le cas prsent seront: " %anti% ".
Ces quelques caractres seront utiliss par l'av pr qu'il soit dans la mesure de distinguer les lignes de codes normales de celles qui seront scurises.
 * Il faudrait que le virus possde une marque diffrente de celle de l'av: " %anti% " et donc par exemple " %SnEaKie% ", dans ce cas le travail serait plus simple, dans un autre cas de figure, on peut supposer que si le virus ne possde pas de marque (de signature) car les lignes rajoutes l'ont t plus ou moins  la hte ou sans perspective de signature, le virus n'est donc pas sign et le travail sera effectu de la mme faon, tant donn que l'antivirus ne retient dans un fichier que ce qui est fini par %anti% et qu'il dtruit le reste.


Passons maintenant  un petit passage de code: 


--- anti ----------------------------------------------------------------------

@echo off  %anti%                                                                   
cls        %anti%                                                                        

:type      %anti%                                                                                                      
cls        %anti%
echo   /-----------------------------------------------------\ %anti% 
echo   /    ANTI v2.5 Detecteur de signature de virus BAT    \ %anti% 
echo   /  Outil RTC de dtection et de suppression de virus  \ %anti% 
echo   /                    au format *.bat.                 \ %anti% 
echo   /                                                     \ %anti%
echo   /                       (1') @Copyright 2000: SnEaKie \ %anti% 
echo   /-----------------------------------------------------\ %anti% 
echo   /                   1: Depistage                      \ %anti% 
echo   /                                                     \ %anti% 
echo   /                   2: Tentative de destruction       \ %anti% 
echo   /                                                     \ %anti% 
echo   /                   3: Verification de protection     \ %anti%
echo   /                                                     \ %anti%                                   
echo   /                   4: Quitter                        \ %anti%
echo   /                                                     \ %anti%
echo   /-----------------------------------------------------\ %anti% 
echo.  %anti%
choice /c:1234  %anti%                                                          
if errorlevel 4 goto Exit %anti%
if errorlevel 3 goto Verifi  %anti%                                                            
if errorlevel 2 goto destruction %anti%                                                        
if errorlevel 1 goto Depistage %anti%                                                          

:Depistage  %anti%                                                                             
If exist %1 goto existe
Else goto existepas
:existepas 
goto endexistepas
:existe
type %1 | find "%2"  %anti%                          (1)                                                         
if errorlevel goto echo  %anti%                                                             

:echo'  %anti%                                                                                 
echo   /----------------------------------------------------\  %anti%         
echo   /     Attention virus dtect sur votre systeme      \  %anti%        
echo   /                                                    \  %anti%         
echo   /     Voulez-vous qu'Antivir 1.0 s'occupe de la      \  %anti%
echo   /            destruction par isolement               \  %anti%       
echo   / de la signature du virus precedemment signalee ?   \  %anti%       
echo   / Ceci semble necessaire car votre systeme semble    \  %anti% 
echo   /                    tres affecte.                   \  %anti%       
echo   /----------------------------------------------------\  %anti%        
echo   /                        1:Oui                       \  %anti%                                                            
echo   /                        2:Non                       \  %anti%                                                          
echo   /----------------------------------------------------\  %anti% 
echo. %anti%
choice /c:12 %anti%
if errorlevel 2 goto type   %anti%                   (2)                                          
if errorlevel 1 goto destruction  %anti%                                                        

:echo %anti%                                                                                    
cls %anti%
echo   /----------------------------------------------------\ %anti% 
echo   /                                    \ %anti%       
echo   /        Aucun virus detecte sur votre systeme       \ %anti%
echo   /                                    \ %anti%         
echo   /----------------------------------------------------\ %anti%         
pause %anti%
goto type  %anti%                                                                                

:destruction  %anti%                                                                           
cls   %anti%                                                                                    
echo  /-----------------------------------------------------\ %anti%          
echo  /                    Please Wait...                   \ %anti%
echo  /                                                     \ %anti%
echo  /           L'outil Antivir 1.0 se charge de          \ %anti% 
echo  /               la destruction du virus.              \ %anti%
echo  /                                       \
echo  /-----------------------------------------------------\ %anti%          
call Antivir %1 %anti%                                  (3)                                       
pause %anti%
goto type   %anti%                                                                               

:Verifi %anti%                                                                                  
type %1 | find "anti" %anti%                            (4)                                       
if errorlevel 1 goto nonpro %anti%                                                              

:pro %anti%                                                                                     
cls %anti%
echo  /------------------------------------------------------\ %anti%          
echo  /                                                      \ %anti%
echo  /      Votre fichier est dsormais protg contre      \ %anti%
echo  /          toute(s) intrusion(s) virale(s)             \ %anti%
echo  /                                                      \ %anti%         
echo  /------------------------------------------------------\ %anti%          
pause
goto type  %anti%                                                                                

:nonpro   %anti%                                                                                
cls %anti%
echo  /-----------------------------------------------------\  %anti%         
echo  /    Vous n'avez pas suivi les instructions donnees   \  %anti%
echo  /              dans le fichier Readme                 \  %anti%         
echo  /              au chapitre Protection                 \  %anti%         
echo  /                                         \  %anti%
echo  /               Fichier non protg...                \  %anti%         
echo  /-----------------------------------------------------\  %anti%         
pause %anti%
goto type %anti%                                                                                                                                                                         

:Exit    %anti%
goto fin  %anti%

:fin     %anti%                                                                                 

--- anti ----------------------------------------------------------------------


    Pour une explication plus simple selon moi, j'ai mis des numros pr annoter et pr viter qu'on s'y perde! Comme vous l'avez vu, le code n'est pas trs long (c ps le ProjetK-OS!), mais dans le mme esprit, on pourra faire voluer la reconnaissance de virus et leurs destructions tout en gardant la structure du prog bien distincte. De nombreuses fonctionnalits pourront tre rajoutes: cf Fin de L'Article...
    Mais tout d'abord voyons quelques passages d'explications:
    
    (1') Soyez sympa et laissez mon nom  ct du copyright, je me suis bien amus mais bon, on est pas des lamers... Le but de l'article , c ps qu'un blaireau tombe dessus, le compile en faisant un copier-coller et remplace mon nom par le sien en disant que c lui qui l'a fait!........ (Je ne vise PerSonnE...) 

    (1) Ici, je vous renvoie  un petit explicatif sur les paramtres pouvant tre grs par la prog Batch;
Ainsi, qd au shell on a :
    Anti %1 %2 %3 %4 %5 %6 %7 %8 %9 %0
Tous les %1  %0 (de 1  10) sont de paramtres pouvant tre requis par le programme pour un bon fonctionnement. Par exemple, lorsque vous crez un fichier .BAT et qu'il ncessite des paramtres, du genre o copier ceci ou cela, ou encore qu'il touche deux fois de suite  un fichier dont le nom peut changer : il est plus utile de dfinir un paramtre %1 qui prendra n'importe quelle valeur.
Donc, dans le cas prsent:
    type %1 | find "%2"
Signifie quelque chose de trs simple, la commande type ouvre un fichier spcifi par l'utilisateur, la barre entre les deux signifie que les deux commandes seront faites simultanment, find signifie qu'il doit trouver quelque chose. Donc en gros, cette ligne signifie que l'av ouvre un fichier (quelque soit son nom, c'est un paramtre), et qu'il cherche dans ce fichier l'ventuelle signature d'un virus : %2 est alors une option qui sert  dfinir le nom de la signature du virus.     


    (2) Ici, le tableau affichera quelque chose comme ceci:

Car la commande echo permet de faire des sorties cran, et %anti% n'est qu'une signature qui n'est en aucun cas prise en compte par l'interprteur de commandes DOS.

/----------------------------------------------------\          
/     Attention virus dtect sur votre systeme      \      
/                                                    \          
/     Voulez-vous qu'Antivir 1.0 s'occupe de la      \ 
/            destruction par isolement               \       
/ de la signature du virus precedemment signalee ?   \        
/ Ceci semble necessaire car votre systeme semble    \  
/                    tres affecte.                   \        
/----------------------------------------------------\         
/                        1:Oui                       \                                                             
/                        2:Non                       \                                                          
/----------------------------------------------------\

Un choix s'offre alors  nous, que faire? :)
Pour que nous puissions choisir, la commande choice est indispensable, petite explication:
choice /c:12 ; signifie que nous avons deux choix 1 et 2 donc qu'en appuyant sur la touche 1 ou 2 le choix sera diffrent.
En ce qui concerne la suite : if errorlevel 2 goto GOO
                              if errorlevel 1 goto GII
Cela veut dire que si on appui sur 2, il y a un renvoi  la sous routine GOO; et que si on appui sur 1, il y a un autre renvoi  la sous routine GII. En fait errorlevel est une variable et si elle prend la valeur 2 et qu'on lui demande si elle est gale  1, elle rpondra oui, car 2=1+1 donc il faut rentrer ses choix par ordre dcroissant, si vous aviez 9 choix, il y aurait aprs 
choice /c:123456789, 
if errorlevel 9 goto ...     
........................
if errorlevel 1 goto ...
Bon , j'espre que c clair!


    (3) Bon l trenquil! Le passage est des plus con: la commande call permet de faire appel  un programme externe sans pour autant devoir fermer celui en excution. Il y a donc un appel ici  un fichier dnomm Antivir.bat, cependant  titre de remarque je voudrais prciser que le chemin entier du fichier sur votre HD, ou ailleurs devra tre spcifi dans le cas o ce fichier ne se trouverait pas dans le mme rpertoire que le fichier lanc principalement : ici Anti.bat.
Comme prcis prcdemment, %1 est un paramtre dfini depuis le dbut de l'excution de Anti, %1 est donc utile aux deux : Anti et Antivir (==> D'o l'astuce d'utiliser la commande call car le %1 garde sa valeur et peut tre exploit sans avoir a tre rinitialis par le second prog lanc).

    (4) Si vous tes pas trop cons, vous aurez remarqu que cette partie est la mme que (1) avec une seule modification,  la suite de l'ouverture et de la commande find "anti", se trouve une ligne du type: 
    if errorlevel 1 goto nonpro
Cette ligne signifie que si aprs ouverture du fichier, l'ordinateur ne trouve pas la signature %anti%, alors il y a une erreur (il n'y a pas d'erreur si il trouve la signature anti), il y a un renvoi  la routine nonpro - qui signifie non-protg - qui affiche un message.
   

Et maintenant, un passage qui est appel dans le fichier ci-dessus: Antivir 1.0 (joli nom!!)

--- antivir -------------------------------------------------------------------

@echo off %anti%
type %1 | find "anti" > prot.bat %anti%          (5)
copy prot.bat %1 %anti%
echo /------------------------------------------------------\ %anti%
echo /                   Please wait ...                    \ %anti%
echo /                                                      \ %anti% 
echo /     Signature du virus dtruite, virus maintenant    \ %anti%
echo /            inoprant et totalement supprim          \ %anti%
echo /                                                      \ %anti%
echo /------------------------------------------------------\ %anti%

--- antivir -------------------------------------------------------------------

Toujours dans le mme esprit: 
    type %1 | find "anti" > prot.bat
Ceci n'a qu'une nuance en plus de celle vue prcdemment: > prot.bat.
Si on rsume clairement ce que l'ordinateur va faire lorsqu'il trouvera cette ligne de code, on aura ceci: 

1- L'ordi. ouvre (comme  l'accoutum, comment savoir s'il y a un virus sans voir le contenu d'un fichier?!...) le fichier entr en premier paramtre puis,
2- Il cherche les caractres suivants: "anti",
3- S'il trouve, il se charge de copier toutes les lignes de code qui contiennent ces caractres, dans un fichier qu'il appellera prot.bat. 
De ce fait les lignes de codes qui taient finies par %anti% seront toutes sauvegardes : on obtient donc un fichier final du nom de prot.bat qui ne contient que les lignes de code utiles et non viroles!
4- On aurait pu arrter le travail en 3- mais on fini en beaut: 
    copy prot.bat %1
On copie le fichier qui ne contient maintenant que les lignes valides sous le nom du fichier d'origine qui tait virol... 
... DU GRAND ART :) ...
     
Aller, une dernire partie pour le fun et puis aprs je m'arrte, c Par4noID qui va gueul, je vais lui prendre 20Ko sur le mag...


-------[  Fonctionnalits supplmentaires

Comme promis, quelques Fonctionnalits supplmentaires:

     Note sur la prsence ou non de fichiers  tester plutt qu'utiliser le process MSDOS... C ps clair? Comment a? Bon c vrai que l je me suis exprim comme un pied, bon en clair mon truc c de faire que qd l'av veut tester un fichier qui n'existe pas - faute de frappe, fichier rellement non-existant, etc - plutt que d'utiliser le process MsDos qui nous marque: Commande ou nom de fichier incorrect
                     0 fichier(s) supprim(s)
On peut nous mme, faire un truc qui marquerait un message d'erreur propre  notre anti-virus. Pour ceci, il faudra tester l'existence ou non du fichier qu'il faudra tester, on utilisera la fonction:
If exist %1 goto EXISTE
If not exist %1 goto EXISTEPAS ==> Facultative.

   La premire ligne fait le test de savoir si %1 (qui est le nom du fichier  tester) existe, si la condition est vrifi, cad si il existe alors va voir  EXISTE.
   La deuxime ligne est optionnelle; If not exist ralise l'inverse de if exist donc, si %1 n'existe pas va  EXISTEPAS. On peut l'omettre et faire comme suit:
If exist %1 goto EXISTE
Else goto EXISTEPAS ==> cette ligne rend le code plus clair!
:EXISTEPAS
Echo ce fichier n'existe pas!!!
goto end ==> A ne ps omettre sinon, l'interprteur ne s'arrte ps avant la fin du prog et il lit tout jusqu' ce qu'il y ait un renvoi.
:EXISTE
Echo ce fichier existe bien!! ==> Ps besoin ici de placer le goto car l'interprteur n'a plus qu' descendre et il y ait!
:end     
(Vous pouvez ne rien mettre dans cette routine et votre prog restera plus ou moins en attente, si vous le lancez sous les commandes MsDos W9X alors il marquera : Termin c:\[nom du fichier]

    Voil, il ne reste plus qu' l'incorporer au code de l'antivirus, le plus dur est de ne pas le mettre dans un endroit o il ne devrait pas tre...Voyons cela:

:Depistage  %anti%                                                                             
If exist %1 goto existe
Else goto existepas
:existepas 
echo Votre fichier n'existe pas, impossible de l'analyser.
echo Fichier(s) analys(s) 0. 
goto exit
:existe
echo Vrification de l'existence du fichier...
echo Vrification accomplie : fichier prsent... 
choice /c:_  Veuillez patienter... /T:_,2           (6)
type %1 | find "%2"  %anti%                                                             
if errorlevel goto echo  %anti%                                                             

...

:endexistepas
echo Votre fichier  tester n'existe pas sur votre machine, veuillez echo entrer un nom valide. SVP.

L'"extension" du prog doit se placer ici, rflchissons,  cet endroit, l'av ouvre le fichier donc il est trop tard pour le faire aprs, il faut le faire avant qu'il ne l'ouvre: la place est idale!

    (6) Petite explication, ce passage n'a t fait que par simple souci de rendre plus vrai, j'ai plac une temporisation sur la commande choice, ce qui permet de faire attendre que l'ordinateur ait fini de vrifier: cette opration ne dure en fait que quelques fractions de secondes (elle ne rend pas bien...) ainsi, a fait plus vrai.  

     Faire crer un journal de suppressions par l'av ==> Des oprations effectues seront enregistres sous un fichier spcial : Si ce fichier disparat, alors l'av ne fonctionne plus, pour viter toute fraude mme si les Bat sont ditables...
Procdons mthodiquement, pour faire ceci, il faut dans un premier temps que l'av sache les oprations qu'il excute, il doit crer un fichier et rajouter dans ce fichier les oprations qu'il aura effectu  diffrents stades de l'avancement de ses activits.

Dj, pour crer un fichier on peut procder comme suit:
echo echo Bonjour > c:\text.kil
----|-------------|------------|
 (1)      (2)           (3)

Je pense que tout le monde a compris ms bon: 
(1) C la commande msDos proprement dite, crit ce qu'il y a aprs.
    (2) C ce que (1) va crire dans un fichier crer ultrieurement.
    (3) C le fichier ds lequel les instructions vont tre enregistres.

Dans le cas prsent, si l'on veut que le journal soit oprant de faon adquate, il faut que toutes les manipulations soient enregistres dans le fichier. Il faut donc qu' chaque stade de l'avancement des oprations de l'av, il mette ce qu'il fait dans le fichier en question. Voyons cela!
Quelles sont les grandes oprations effectues par l'av?
    1- Le Dpistage,
    2- La tentative de destruction,
    3- La vrification de protection,
    4- Quitter.
En gros,  chacune de ces phases correspond une ligne au moins dans le fichier journal. De plus, certaines oprations possdent des sous-oprations. 

Dpistage:
    - Fichier existant ou non;
    - Appel d'Antivir = Fichier infect;
    - Non-Appel d Antivir = Fichier non-infect.

Tentative de destruction:
    - Appel d'Antivir.
    
Verification de protection:
    - Fichier protg;
    - Fichier non-protg.
A cet endroit de l'article, je vous renvoie  la rubrique de fin avec le code de l'antivirus en version de base ainsi qu'avec les diffrentes fonctionnalits ajoutes au prog. Par souci de place (on comprendra ici de taille exprime en Ko, taille maxi que j'ai dj plus que dpasse :)), il y a des renvois aux diffrentes parties de texte de l'interface utilisateur qui sont donnes au dbut avec le code du prog de base! Amusez-vous bien... 


     Message d'erreur qd il manque les 2 paramtres ou l'un des deux seulement. En effet, on peut gnrer un message d'erreur lorsque l'utilisateur omet certains paramtres. Il faut alors user des vieilles commandes: " If errorlevel 1 goto ... "
Voici donc une petite suggestion en ce qui concerne l'implmentation de cette fonctionnalit dans l'anti-virus:
Il faut placer cette partie  l'endroit o l'on fait appel  %1 et
%2 voici donc,

:Pourc
If "%1"=="" goto error
If "%2"=="" goto error

Cette partie du code doit tre place avant tout opration effectue par l'ordinateur. Ne pas oublier le renvoi  une tiquette, ici pourc et ne pas oublier de faire finir le programme  la fin de la routine.

:error
cls
echo Utilisation d'Anti25 :
echo.
echo Anti [fichier a tester] [signature du virus a trouver]
echo.
echo Veuillez completer votre ligne de commande par une de ces
echo deux informations, l'une ou les sont manquantes. De ce fait,
echo aucune opration ne peut tre opre sur votre systeme.  

Je vous conseille de placer ce code  la fin du prog, juste avant la fin totale du prog, de ce fait vous n'aurez pas  penser  un renvoi ventuel jusqu' la fin.


-------[  Le code


--- journal -------------------------------------------------------------------

@echo off  %anti%                                                                   
cls        %anti%                                                                        

:journal
If not exist c:\mesdoc~1\rtcours\anti25\anti25\journal.txt goto fin2
Else goto pourc

:Pourc
If "%1"=="" goto error
If "%2"=="" goto error

:type      %anti%                                                                                                      
cls
call c:\mesdoc~1\rtcours\anti25\anti25\antih1.bat
choice /c:1234  %anti%                                                          
if errorlevel 4 goto Exit %anti%
if errorlevel 3 goto Verifi  %anti%                                                            
if errorlevel 2 goto destruction %anti%                                                        
if errorlevel 1 goto Depistage %anti%                                                          

:Depistage  %anti%                                                                             
If exist %1 goto existe
Else goto existepas

:existepas 
echo Votre fichier n'existe pas!
echo   ========================== > journal.txt
echo   Message d'Anti25: >> journal.txt
echo   Le fichier demand a tre verifi >>journal.txt 
echo   n'existe pas sur la machine; >> journal.txt
echo   l'operation d'Anti25 ne pt tre mene >>journal.txt 
echo    bien par l'anti-virus. >> journal.txt   
goto exit

:existe
cls
echo Verification du fichier en cours...
echo.
echo Verification reussie
pause
type %1 | find "%2"  %anti%                                                                    
if errorlevel goto echo  %anti%        

:MM22  %anti%                                                                                 
cls
call c:\mesdoc~1\rtcours\anti25\anti25\antih2.bat
choice /c:12
if errorlevel 2 goto type   %anti%                                                             
if errorlevel 1 goto destruction  %anti%                                                        

:echo %anti%                                                                                    
cls
call c:\mesdoc~1\rtcours\anti25\anti25\antih3.bat
pause
if exist journal.txt goto Journal
Else goto Conti

:Conti
echo ========================== > journal.txt
echo   Message d'Anti25: >> journal.txt
echo   Votre fichier demand  tre test >>journal.txt
echo   n'est pas infect, nanmoins, >> journal.txt
echo   il serait bon d'effectuer une vrification >>journal.txt
echo   de protection de vos >> journal.txt
echo   autres fichiers (si cela n'a pas >>journal.txt 
echo   t dj fait). >> journal.txt
goto type

:Journal
echo ========================== >> journal.txt
echo   Message d'Anti25: >> journal.txt
echo   Votre fichier demand  tre test n'est pas infect ,nanmoins, >> journal.txt
echo   il serait bon d'effectuer une vrification de protection de vos >> journal.txt
echo   autres fichiers (si cela n'a pas t dj fait). >> journal.txt
goto type
   
:destruction  %anti%                                                                           
cls   %anti%                                                                                    
call c:\mesdoc~1\rtcours\anti25\anti25\antih4.bat
call Antivir %1 %anti%                                                                         
if exist journal.txt goto Journal2
Else goto Conti2
pause
                                                                               

:Conti2
echo ========================== > journal.txt
echo   Message d'Anti25: >> journal.txt
echo   Votre fichier est infect, le systme de destruction Antivir1.0 >> journal.txt
echo   va maintenant se charger de la destruction du virus par son isolement. >> journal.txt
echo   Opration parfaitement russie >> journal.txt
goto type

:Journal2
echo ========================== >> journal.txt
echo   Message d'Anti25: >> journal.txt
echo   Votre fichier est infect, le systme de destruction Antivir1.0 >> journal.txt
echo   va maintenant se charger de la destruction du virus par son isolement. >> journal.txt
echo   Opration parfaitement russie >> journal.txt
goto type

:Verifi %anti%                                                                                  
type %1 | find "anti" %anti%                                                                    
if errorlevel 1 goto nonpro %anti%                                                              

:pro %anti%                                                                                     
cls
call c:\mesdoc~1\rtcours\anti25\anti25\antih5.bat
pause
if exist journal.txt goto Journal3
Else goto Conti3
                                                              
:Conti3
echo ========================== > journal.txt
echo   Message d'Anti25: >> journal.txt
echo   Votre fichier est bel et bien protg, veuillez veiller  ce que ce soit >> journal.txt
echo   le cas de tous les autres fichiers prsents sur cette machine. >> journal.txt
goto type

:Journal3
echo ========================== >> journal.txt
echo   Message d'Anti25: >> journal.txt
echo   Votre fichier est bel et bien protg, veuillez veiller  ce que ce soit >> journal.txt
echo   le cas de tous les autres fichiers prsents sur cette machine. >> journal.txt
goto type

:nonpro   %anti%                                                                                
call c:\mesdoc~1\rtcours\anti25\anti25\antih6.bat
pause
if exist journal.txt goto Journal4
Else goto Conti4
                                                                                                                                                                        %anti%

:Conti4
echo ========================== > journal.txt
echo   Message d'Anti25: >> journal.txt
echo   Votre fichier n'est pas protg, il doit l'tre dans la mesure o >> journal.txt
echo   l'antivirus n'est capable de dtecter les virus seulement si ceux-ci >> journal.txt
echo   possdent une signature bien distincte de anti. >> journal.txt
goto type

:Journal4
echo ========================== >> journal.txt
echo   Message d'Anti25: >> journal.txt
echo   Votre fichier n'est pas protg, il doit l'tre dans la mesure o >> journal.txt
echo   l'antivirus n'est capable de dtecter les virus seulement si ceux-ci >> journal.txt
echo   possdent une signature bien distincte de anti. >> journal.txt
goto type

:Exit    %anti%
goto fin  %anti%

:error
cls
echo Utilisation d'Anti25 :
echo.
echo Anti [fichier a tester] [signature du virus a trouver]
echo.
echo Veuillez completer votre ligne de commande par une de ces
echo deux informations, l'une ou les sont manquantes. De ce fait,
echo aucune operation ne peut etre operee sur votre systeme.

:fin2
echo Fichier journal non prsent sur votre machine, Anti25 refuse alors 
echo toute manipulation.
:fin     %anti%                                                                                 

--- journal -------------------------------------------------------------------


-------[  Annexe

Vous aurez remarqu que non pas que je sois belge mais mes textes sont coups  cause des marges que je dois respecter sous WordPad, en compilant ou en le refaisant vous-mme sous le Bloc-Notes, pas de pbs de ce genre, y pas de marge : veillez qd mme  pas trop sortir de l'cran sinon a n'affichera pas correctement.

Entre autre, pour ne pas compliquer le prog, j'ai fait en sorte qu'il soit utile  chaque fois de vrifier si le fichier est protg avant d'oprer un dpistage. De ce fait, j'vitais de crer au dbut du test de dpistage une routine du genre :
:depi2
type %1 | find "anti" 
if errorlevel goto ...
avant de faire un dpistage propre. En plus clair, si vous dpistez un fichier qui possde %anti%  chaque fin de ligne, donc un fichier protg, l'av va quand mme dtect un virus dans la mesure o toute signature peut tre dangereuse, afin d'viter des erreurs, mieux vaut toujours effectuer un test de protection du fichier avant de dpister un quelconque virus qu'il renferme: cette p'tite chose peut toutefois tre rsolue aisment mais si je passe trop de tmps la dessus, aprs j'en aurais pu pr l'autre article... :( dsol!
   

-------[  Remarque

Pour tous les adeptes de failles sous les petits jeux Wx, je propose cette fois-ci (aprs le dmineur), une couille de Bow&Arrow, trs drle comme jeu, il consiste  tirer  l'aide d'un arc dans des baloons et autres artifices... Ce p'tit jeux trop malin enregistre les scores sous un fichier nomm: B&arrow.ini, selon cette bonne vieille mthode qu'est l'overboosting des points, je m'empresse d'diter ce fichier et je remarque des caractres bizarres, j'efface le tout et je rajoute des FFF partout, en prenant bien soin de dpasser la largeur de la fentre d'un seul F, du coup, plantage assur comme  l'accoutum! Erreur de protection gnrale dans le module B&ARROW.EXE  0001:000007fc. Encore un pb d'assembleur, l'tat de la pile est plutt bizarre. Ceci dit encore merci  Microsoft qui prvoit toutes les ventualits: une erreur fatale  cause d'un p'tit jeu de merde (quoiqu'amusant). Si vous voulez en voir encore plus, ouvrez des applications en arrire plan et lancez la faille; vous aurez srement le message suivant: Etat Memoire dangereusement bas, veuillez fermez votre session Windows : toutes les donnes non-enregistres seront perdues. C beau le progrs, plus on paye les logiciels chers et plus y a des pbs. Bravo MiKROKRO...   


-------[  EOF
