
                                 ------------
                   ...oooOOO MAGSTRIPES HACKING OOOooo...
               m0sfet - n0WAy: an HiPANARTC0RE HIP'97 Release 
                                 ------------

iNTRo
~~~~~
HIP'97. 09/08/97
22:40 Suite a un workshop (DrFonk, JFF, etc...)
article a ecrire en une demi heure sur les cartes magnetiques pour n0WAy
sPECiAL iSSUe.
C'est parti on y va, on va faire ce qu'on peut ! Vite, a la tente
(vite vite pere foura, a la vigie, tournons la clepsydre).

Comment efficacement copier une carte magnetique
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ahah ! Bon, tout d'abord, il faut savoir a quel type de carte on a affaire.
Generalement, les cartes a une piste (iso 2) sont les plus simples a copier.
Ce sont des cartes a "unites" comme par exemple les cartes de photocopieuses.
Pour savoir si une carte a 1, 2 ou 3 pistes magnetique encodees, il suffit
de mettre un peu de limaille de fer sur la piste magnetique, tapoter la
carte afin de virer les plus gros elements metalliques contenus dans la
limaille de fer, et le resultat sera consitue de 1, 2 ou 3 bandes
(discontinues) de limaille de fer. Sur les tickets de metro de Paris
il etait meme possible de voir les "bits" contenus sur le ticket
grace a cette methode.

1-Lecture de cartes
Soit vous achetez un lecteur (www.magtek.com), soit do-it-yourself.
Le principe est assez simple: le signal est issu d'un track (1,2,3),
aquis grace a une tete magnetique (de preference de bonne qualite, une tete
audio mono etant largement suffisante). Puis ce signal est amene a l'entree
d'un ampli op, qui va... l'amplifier :)
Puis, le signal va etre decode en 2 signaux principaux: la ligne d'horloge
(Ck, pour Clock Line), et la ligne de data.
Il est important de comprendre cette notion d'horloge. C'est grace a ce
systeme que vous pourrez soit passer la carte comme un bourin, soit beaucoup
plus lentement dans le lecteur, et vous aurez les memes data en sortie
(bon faut pas pousser meme dans les orties en passant la carte a mach2
dans le pauvre lecteur ISO2 a 100 balles !).

Bon, pour les plans, je ne me fatigue pas trop:

           www.chez.com/mosfet
ou (mieux) http://c5.hakker.com/magstripes


Connectique
~~~~~~~~~~~
Les connexions generalement issues du lecteur sont les suivantes:
Issu du lecteur de cartes, nous avons 5 fils.

rouge:  +5v
noir:   0v
jaune:  DATA
marron: CS 
vert:   horloge 


Le rouge et le noir servent simplement a alimenter
le lecteur (5V). 4 batteries de 1.2 volts suffisent.
Nous pouvons egalement utiliser le port joystick du
PC qui est alimente en 5V.

Le fil marron sert a verifier la presence et
la validite de vitesse de lecture de la
carte. Il doit rester a son etat haut jusqu'a 
la fin de la lecture.

Le fil jaune renvoie les donnees presentes sur la
carte (etat haut, etat bas).

Le fil vert (horloge) correspond aux signaux 
generes par l'horloge interne du lecteur.

Bon, d'accord, mais comment je sort de ma carte le data ?
Ben y'a des programmes, allez je vous en file un, code comme un gros sale
en Turbo Pascal.

------------------------------------------------------------------------------
{HIP'97 release - m0sfet 10/08/97}

Program Lecteur_de_carte;

Uses Crt;

var i:integer;
    f:text;
    nom:string;
Const
   port_joystick=$201;

Procedure Attend_debut; {attend l'inserion d'une carte (etat du CS) }
Begin
   Repeat Until (Port[port_joystick] and 32)=0;
End;

Function donnees_ok:boolean;
Begin
   donnees_ok:=((Port[port_joystick] and 32)=0);
End;

Procedure Attend_synchro; {calage debut}
Begin
   Repeat Until
   (Port[port_joystick] and 16)=0;
End;

Procedure Attend_synchro_fin; {calage fin}
Begin
   Repeat Until
   (Port[port_joystick] and 16)=16;
End;

Function donnees:byte; {choppe le DATA}
Begin
   If (Port[port_joystick] and 64)=0 Then donnees:=0
      Else donnees:=1;
End;


Begin
   Clrscr;
   Write('File name: ');
   readln(nom);
   assign(f,nom);
   rewrite(f);
   Writeln('Insert card in the card reader...');
   Attend_debut;
   writeln('card ok');
   i:=0;

   {While donnees_ok Do}
   repeat
     Begin
      Attend_synchro;
      Write(donnees);
      Write(f,donnees);   {ecrit dans f l'etat du bit present a ce point}
      inc(i);             {sur la piste ISO2}
      Attend_synchro_fin;
     End;
     until keypressed;
   close(f);
End.

{BUG ! (non, vous ne pourrez pas etre root du lecteur !!!!) }
{le prog attend la synchro finale, revient dans la boucle, mais lorque la
synchro finale est lue, le CS n'a pas eu le temps de remonter, donc le
programme tourne en boucle... :( }

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

Voila, ah tiens, tant que j'y pense, voila des exemples de pistes:

Carte de photocopieuse (233 bits)
111111111111111111111001000110010000000010011111100000000000000000000000000000
000000000000000011100011111111111111111111111111100100011001000000001001111110
00000000000000000000000000000000000000000000111000111111111111111111111111111

Carte de retrait de la poste (250 bits) Norme ISO2
111111111111111111100101010101001011110000110111101100111100011011101010101111
011110011000011010011101111111110111101110100101100011111111000110000110111100
110110111001010011100110111111011111101111011110111100000011000111111111111111
11111111111111111

Carte de parking (485 bits)
1111111111111111111111001010000011011111111111100101000001101111111111111111111
111111111111111111111111111100101011110111101111111101111011110111101111011110
111101111011110011110111111110111101111011110111101111011110111100110001100111
101111011110111101111011110000000101011111111110010101111011110111111110111101
111011110111101111011110111101111001111011111111011110111101111011110111101111
011110011000110011110111101111011110111101111000000010101111111111111111111111
1111111111111111


2-Copie de cartes
Ah ah, la on fait moins les malins, parce que la vous allez en baver !
Bon, le but c'est une copie analogique de la carte. Mais la nEURALiEn vous
a explique !

Bon, j'ajoute quelques informations vitales au sujet du materiel a employer:

Pour la lecture:
~~~~~~~~~~~~~~~~
                 tete de magnetophone a k7: ok.
                 tete de magnetophone a bande: ok (style Revox)
                 tete de lecteur magnetique a haute coercivite (ca pete hein
                 l'expression !): ok (200 % ok)
                 bloc optique de lecteur cdrom: non, t'est con !

Pour l'enregistrement:
~~~~~~~~~~~~~~~~~~~~~~
                 On va pas tergiverser 107 ans, il n'y a que les tetes
                 "DATA" qui fonctionnent.
                 Ok, on va un peu plus loin. Les tetes data sont des tetes
                 d'enregistrement a haute coercivite, c'est a dire qu'elles
                 emettent un champ magnetique bien plus puissant que les
                 tetes d'enregistrement standard (k7 par ex.).
                 Pourkoi ils font chier avec ces tetes introuvables ?
                 Ben c'est simple: c'est pour eviter la demagnetisation
                 intempestive de vos cartes magnetiques ! S'il faut un
                 champ magnetique beaucoup plus fort pour l'ecriture, alors
                 il faut un champ magnetique pour la corrompre !

                 Enfin, y'a une autre methode: il est possible (enfin
                 envisageable) d'utiliser des tetes standard, uniquement si
                 vous modifiez le support d'enregistrement: il faut faire
                 une fausse carte en carton avec une ou des pistes
                 issues de cassettes audio et collees sur le support.

Precautions a prendre:
~~~~~~~~~~~~~~~~~~~~~~
                  Avant de passer la carte au fer a repasser (le copieur),
                  il est imperatif de demagnetiser la carte qui va etre
                  copiee (avec un bon vieil aimant bien puissant touve dans
                  le grenier a meme c'est nickel).
                  Pour verifier que la demagnetisation s'est
                  effectuee, verifiez la presence de signal ou non en sortie
                  d'ampli op avec un casque.

Furthermore
~~~~~~~~~~~       Ce soir je n'ai pas le temps, mais je vous promet un
                  prochain article qui traitera l'analyse du signal des pistes
                  en vue d'encoder de nouvelles cartes (f0ne card r0x).
                  Les cartes de fone polonaises sont composees uniquement
                  d'un support magnetique, le pin n'est pas demande, et
                  France Telecom pose des lecteurs de cartes magnetiques
                  sur les nouvelles cabs :))


Conclusion Have fun. Un peu tire par les cheuveux l'article, mais c'est au
~~~~~~~~~~ moins une introduction !


Greetz <france> Threat - Sick Boy - dOC|SEDOv - rAWIz - h0tcode - 
                cleb - mikasoft - raw_powah!
~~~~~~ <german> vanHauser, mINDM => u're cool !
       <dutch - swedish> neophypte, zeotroop, motion (always stoned!), sjadoh.
                               And EVERYONE HERE AT HIP ! 

Bon allez, je porte l'article, puis % mv m0sfet /dev/sac_de_couchage
