- 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
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
-Sstate
Set
card
state = [L]oad/[P]ers/[T]est/[R]un
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()
ResetCard (P$) : Call CheckSW1SW2()
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$
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