Vous êtes sur la page 1sur 3

31/08/2021 Programmer en zcbasic - Carte à puce

Programmer en zcbasic avec  un  Lecteur


 PC/SC
 en USB
Forum
de discussion
Manuel BasiCard en
anglais
(indispenpsable pour programmer en ZCBasic)
Les Logiciels gratuits
d'exploration de carte à puce

Programmer une BasicCard

Qu'est ce qu'est le ZCBASIC?


- C'est une création de la PME
allemande ZeitControl.

- Il permet de communiquer avec les cartes à puces (cartes


bancaires, vitales, Gsm
télécartes et autres) via un
simple lecteur PC/SC
(USB ou port Com).

- C'est un langage compilé (c'est à dire qu'avec


un compilateur appelé ZCMBasic
fourni gratuitement
par ZeitControl vous obtenez un .exe
à partir d'un
.bas)

- Vous pouvez obtenir gratuitement cet outil de


développement pour Windows (BasicCard
Development
Software) sur le site de
BasicCard.

Création d'un premier programme. 


Une fois que vous avez installé votre BasicCard
Developpement Software
vous vous retrouvez avec un
dossier BasicCardPro
à
la racine de votre disque dur. C'est dans ce dossier que ce trouve le
compilateur
ZCMBasic.exe. La compilation se fait en ligne de commande
sous dos.

Mode d'emploi:

ZC-Basic Compiler Version 4.52 (c) ZeitControl 2003


Usage: ZCMBASIC [param [param...]] input-file [param [param...]]


    input-file:  The ZC-Basic


source file (.BAS)

        
param:
-CT             
Compile
for Terminal (default)

               
-C1.1           
Compile
for Compact BasicCard ZC1.1
               
-C3.x           
Compile
for Enhanced BasicCard ZC3.x

               
-CFconfig-file  
Compile for card in config-file
(.ZCF)

               
-Dsymbol[=val]  
Define symbol (default val=1)
               
-E[exe-file]    
Win32 Console
application (.EXE)

               
-Ipath          
Search
path for #Include files

               
-OD[debug-file] 
Debug file (.DBG)
               
-OE[error-file] 
Error file (.ERR)

               
-OI[image-file] 
Image file (.IMG)

               
-OL[list-file]  
List file (.LST)

               
-OM[map-file]   
Map file (.MAP)

               
-Sstack-size    
Set size of P-Code
stack

               
-Sstate         
Set
card
state = [L]oad/[P]ers/[T]est/[R]un

zcbasic.free.fr 1/3
31/08/2021 Programmer en zcbasic - Carte à puce

Editer votre premier programme

Ce que vous devez savoir:


La réponse au reset (ATR)
est la réponse que toute carte à puce
émet lorsque celle
si est rentré dans le lecteur.
La
réponse de la carte suit une norme (ISO  7816-3
) La
réponse
est une suite
d'octets dont la signification de chaque bits peut
être donné
suivant les normes citées précédemments.
Exemple de réponse: ATR = 3F 2F 00 80 69 AF 02 04 02 31 00
00 00 0E 83 3E 9F 16

Les deux premiers octets sont obligatoires. Le premier octet peut


être 3F pour une logique inverse (négative)
ou 3B
pour une
logique directe (positive). Consulter les normes pour plus
d'informations.

Grâce à l'éditeur ZeilControl


Professional IDE
(Menu demarrer->programmes->basicCard Pro) vous allez
creer votre
fichier .bas. Enregistrer le dans le dossier C:\BasicCardPro>

#Include CARDUTIL.DEF
#Include COMMERR.DEF

ComPort=101

Call WaitForCard()

CheckSW1SW2()
ResetCard (P$) : Call
CLS:Print"Caract. Historiques de l'ATR
: ";
FOR F=1 TO Len(P$)

M=ASC(MID$(P$,F,1))

M$=HEX$(M):IF Len(M$)=1
Then M$="0"+M$
PRINT M$;" ";

NEXT F

Print:Print:Call WaitForNoCard

Ce
deuxième
programme extrait le SMS n°1 de
n'importe quelle carte SIM dont le code PIN est
désactivé. Il retourne le
résultat sous forme d'une suite de nombre en Hexa.
Pour extraitre le SMS n°2
de votre carte SIM il suffit de
remplacer
dans la ligne 17 du programme si dessous P1P2=&H0104
par
P1P2=&H0204
et ainsi de suite pour le SMS numero 3 et 4. Pour convertir la suite de
nombre en Hexa
obtenu via ce petit programme en texte on peut utiliser
le logiciel  PDUspy. Dans
l'onglet Manual,
entrer la suite de nombre Hexa et cliquer sur decode.
Ce que vous devez savoir pour parler avec une
carte se trouve dans la
norme  ISO 7816-4.

#Include CARDUTIL.DEF
#Include COMMERR.DEF

ComPort= 101
Declare Command
&HA0 &HA4 SL(S$,Disable Le)
Declare Command &HA0 &HB2 RREC(S$)

Call WaitForCard

ResetCard

Call CheckSW1SW2
Print : Print

S$=Chr$(&H7F)+Chr$(&H10)
Call SL(S$)

S$=Chr$(&H6F)+Chr$(&H3C)
Call Sl(S$)

S$=""

Call RREC(P1P2=&H0104,S$,Le=176)
For F=2 TO 176

C$=MID$(S$,F,1)

C=ASC(C$)

C$=HEX$(C)

IF LEN(C$)=1
Then C$="0"+C$

zcbasic.free.fr 2/3
31/08/2021 Programmer en zcbasic - Carte à puce

Print C$+Chr$(32);
NEXT F

Compilation de vos programmes


Dans le dossier
C:\BasicCardPro> tapez sous dos la commande
suivante:

ZCMBasic -CT -E programme.bas

Vous vous retrouverez avec un


magnifique programme.exe 

Sites paretenaires :

Nouvelles
Technologies et Petites histoires

Ahalia

Programmation
Cliquez
ici

Annuaire
internet

Annuaire
FuN

Annuaire hitweb

zcbasic.free.fr 3/3

Vous aimerez peut-être aussi