baniere PCCAM
V 0.2.25
Programme de dialogue et d'analyse de cartes à puce en
Téléchargements
Aperçus d'écrans
Documentation
Bugs connus
Anciennes versions

PCCAM : logiciel de dialogue avec les cartes à puce

Introduction

PCCAM est un programme de dialogue avec les cartes à puce asynchrones. Il accompagne le cours que je donne de temps à autre sur le sujet. Ses principales fonctionnalités sont :

Le programme évolue constamment. N'hésitez pas à faire un tour sur cette page pour charger les nouvelles versions.

Section Téléchargement

Version 0.2.25 : pour Windows XP, 7...10 32 bits (2015/10).

 

chargement

image

Aperçus d'écrans

preference Ecran principal de l'application. On y trouve la fenêtre de trace au centre (commandes saisies et résultats), la zone de saisie des commandes, l'état courant du logiciel (mots d'état de la carte, dernier message du programme, lecteur utilisé, contexte courant, etc.
Le menu principal permet d'accéder aux principales fonctions du logiciel tel que choix du lecteur, fonctions de décodage, mise sous et hors tension de la carte, aide pour certaines commandes ISO7816-4, fonctions de décodage (ATR, contenu des cartes), etc.

preference

Fenêtre des préférences. Permet de choisir :

  • la langue et le répertoire de travail par défaut.
  • La vérification de version
  • La gestion d'un paramètre de protocole 7816 (Le)
  • Le mode d'affichage des boutons
  • L'affichage de la trace des E/S dans l'écran principal
  • L'affichage par défaut des décodages dans la commande MAP (pour cartes 7816-4)
  • Des options propres à la lecture des cartes SIM, EMV, Calypso...

lecteur Fenêtre de choix du lecteur. Ce choix se fait dans un contexte donné (jusqu'à 4 contextes). Pour les lecteurs séries, vous devez sélectionner le lecteur et la voie COMi auquel il est raccordé.
Pour les lecteurs PCSC, vous devez choisir un lecteur dans la liste proposée.

macro-commandes Fenêtre d'ouverture des macro-commandes (scripts). Vous pouvez vérifiez la syntaxe, exécuter le script en pas à pas ou en continue.

MAP B4B0 Exemple d'interprétation d'une carte (fonction MAP). Dans le cas présent, il s'agit d'une carte B4B0 (successeur du masque 4 de BULL CP8).

Machine de banque Exemple d'interprétation d'une carte M4 bancaire. Pour certaines applications, le programme propose un affichage en clair des informations contenues dans la carte, pour peu qu'elles soient accessibles. Dans le cas présent, il s'agit du contenu d'une carte capturée et simulée dans PCCAM.

MAP Autre exemple d'interprétation d'une carte (fonction MAP). Dans le cas présent, il s'agit d'une carte EMV.
Pour les cartes SIM, le programme propose également un affichage en clair de l'application EMV.

Edit carte Le programme permet de créer certaines cartes simulées non personnalisées. Il propose un éditeur permettant de remplir les données de fabrication de la carte simulée.

Edit Tableau Le programme manipule des variables utilisables dans les scripts. Les tableaux peuvent être édités dans un boîte de dialogue.

Edit Tableau Le programme permet de générer des clés RSA avec diverses options afin d'être stockées dans des fichiers .RSA. Ces clés peuvent être utilisées pour personnaliser des cartes par exemple.

Informations sur la version 0.2.25 de PCCAM

Environnements et plateforme cible

Fichiers

 

Bugs connus et évolutions

Vous pouvez signaler les bugs des programmes en utilisant le contact indiqué sur la page d'accueil. "m" pour mineur, "M" pour majeur, "A" pour amélioration.

Quelques développements qu'il faudrait absolument que je fasse mais que je remets toujours car d'autres me semblent toujours plus importants...

A : Suite des utilitaires cartes SIM (copie répertoire, déblocage codes...)

A : décodage des cartes Vitale

A : crypto : authentification des cartes EMV et présentation du PIN Chiffré

Version 0.2.25

M : Problème dans la version anglaise (fichier message incorrect).

Version 0.2.24

A : ajout d'un mode d'affichage de la trace d'IO dans la fenêtre principale et d'une option associée (verbeux ou pas). Permet, lorsqu'on est dans la commande MAP, d'avoir la trace des échanges plus un décodage lorsque c'est possible. Le mode Verbeux n'est disponible que pour certaines cartes (EMV).

A : Amélioration du traitement du GPO en sans contact.

Version 0.2.23

A : ajout d'un fichier RATP_metro.txt contenant le noms des stations de métro pour Navigo.
Pour plus d'information, voir ce site.

A : Décodage partiel de la carte Navigo sur la base d'informations récoltées sur le net dont ce blog et le site du logiciel CardPeek.

Version 0.2.22

A : ajout de fichiers calypso_component.txt, calypso.type_carte.txt, calypso.manufacturer.txt pour faciliter le décodage de l'ATR d'une carte calypso.

m : copie des fichiers calypso depuis le répertoire d'installation dans le répertoire de travail lorsqu'ils n'existent pas dans ce dernier.

A : décodage partiel d'une carte Calypso. Comme je n'ai pu faire les tests que sur une seule carte, il est fort possible que ce décodage ne couvre pas d'autres cartes. La recherche des fichiers de la carte utilise le fichier Calypso.txt que vous pouvez modifier pour élargir la portée de la recherche.

Version 0.2.21

A : ajout d'un fichier CALYPSO.txt contenant des noms d'application que l'on peut trouver dans des cartes utilisant cette norme. Ce fichier est utilisé pour tenter de déteminer automatiquement l'application présente dans une carte CALYPSO lorsque l'on utilise l'option MAP.
A noter que l'option MAP pour CALYPSO n'est pas fonctionnelle dans cette version

A : Ajout d'une option dans le menu préférence = Affichage protocole si COMx. Si utilisation d'un lecteur série, on peut soit afficher le protocole (option cochée), soit affficher les APDU comme pour les lecteurs PC/SC (option décochée).

m : correction d'un bug dans l'affichage de la trace lorsque le nombre d'octets affiché était inférieur à 16 : le décodage en ASCII était inccorect

A : Refonte complète des entrées/Sorties pour être pleinement conforme à la norme 7816-3. Les précédentes versions jonglaient entre le protocole Bull (ordres entrant et sortants) et la norme ISO7816-3 plus récente qui n'utilise plus ces concepts. Le résultat est qu'il peut y avoir des problèmes avec les anciens lecteurs séries et avec les anciennes cartes. A noter qu'après aménagement des entrées-sorties pour le GCR200, le TLP224 et les lecteurs compatibles TLP224, le PE112, ça fonctionne avec les nouvelles et anciennes cartes (on recréé artificiellement des ordres entrants et sortants). Les autres lecteurs (LRCCETT, SCR110) ne sont plus fonctionnels dans cette version. Ca sera (peut-être) pour la prochaine mais je doute qu'il y ait encore des utilisateurs qui connaissent ces lecteurs ou en disposent...
A noter aussi l'introduction d'une option dans les préférences qui permet d'éviter qu'un "Le" soit ajouté après une donnée. En effet, certains lecteurs PC/SC ne supportent pas ce "Le" ce qui entraine une erreur d'E/S. Si vous avez un doute sur votre lecteur, décochez la case (option par défaut).

A : Modification de la commande CMD pour prendre en compte cette nouvelle gestion des entrées/sorties. Le paramètre optionnel L=n a été supprimé. Un paramètre nouveau (Lc) a été introduit. Voir "Aide" pour plus de détails. A noter qu'en général, cette nouvelle implémentation est compatible avec les anciennes versions si on n'utilisait pas le paramètre L=n.

m : corrections de quelques bugs dans les simulateurs M4 et M9

M : Ajout d'un Get Processing Option dans l'affichage EMV "Banque", sinon, la saisie du PIN n'était pas toujours possible.

m : correction de la macro de personnalisation des cartes M9 (M9Perso.mac). Il manquait l'envoie de l'ordre d'écriture du texte " PCR" à la fin.

M : La saisie des paramètres pour le Get Processing Option (GPO) est désormais fonctionnelle.

Version 0.2.20 Beta

A : La fenêtre Trace I/O (Menu fichier -> Trace IO) affiche désormais les échanges PC/SC

A : Vérification (optionnelle) de l'existence d'une nouvelle version. Le menu préférence permet d'activer ou non cette fonction.

A : Traitement des GetData dans les cartes EMV. Ajout d'un fichier virtuel GetData dans l'arborescence qui regroupe des résultats de tous les GetData. Les fichiers virtuels ATC ont été transférés dans ce fichier virtuel

A : Get Processing Option (GTO) en sans contact et en contact : il est désormais possible d'initialiser une réponse pour les deux modes. PCCAM renvoie cette réponse à la carte lors du GTO. L'option se trouve dans Editeurs -> GTO

Version 0.2.12

M : Plusieurs bugs corrigés sur les simulateurs M4 et M9

m : Améliorations de l'exploration des cartes EMV pour traiter certains bugs de cartes existantes et certains cas particuliers de personnalisation

A : Modification des utilitaires de création de cartes simulées M4 et M9

A : Commandes CC1 et CC2 pour calculer des CCR dans les cartes M4 et M9

A : Changement d'approche dans l'interprétation des cartes EMV : les TAGs sont désormais affichés un par un dans l'arborescence

A : Commandes de recherche de TAGs et de textes dans l'utilitaire de mapping des cartes

A : Options de recherche des applications bancaires dans le menu préférences

A : Possibilité de capturer une lecture de carte EMV ou SIM en format texte ou en pseudo XML

Version 0.1.12

Plusieurs bugs corrigés suite à des régressions entre la version 0.1.11 et 0.1.10

M : bug dans la gestion des cartes simulées. Les données n'étaient plus lues correctement - corrigé

M : bug dans le traitement de certains ordres pour certains lecteurs en protocole T=0 en PC/SC. Un message d'erreur "pertes de données durant la communication" pouvait être signalé par PCCAM. Cela vient du fait qu'en T=0 sur PC/SC, si l'octet "longueur" des données à envoyer à la carte est nul, il n'est pas transmis. Il faut donc décrémenter de 1 la longueur à émettre. A noter que ce problème n'existe pas avec les anciens lecteurs non PC/SC - corrigé

M : Décodage EMV : plus d'affichage de la vue application - corrigé

Version 0.1.11

m : Prise en compte du fichier n° '0000' dans les cartes SIM (dans les versions précédentes, le n° de fichier '0000' était considéré comme 'réservé' et ne pouvait être sélectionné)

A : Fonctionnalité de gestion des codes secrets de la carte (affichage liste des codes, vérification et changement CHV)

A : début d'implémentation des fonctions de gestion (export, copie...) des répertoires de la carte SIM

A : mise à jour du fichier SIMfilename.txt avec de nouveaux noms d'EF dans la carte SIM

Version 0.1.10

M : bug dans exploration carte SIM avec critère "existence fichier dasn SIMFileName.txt" - corrigé

M : refonte du module d'exploration

A : Modification de l'interface de saisie des codes porteurs. Possibilité de vérifier CHV1 et CHV2

Version 0.1.7, 0.1.8 et 0.1.9

A : décodage de certains EF de cartes SIM

A : amélioration des options de recherche

Version 0.1.6

A : Ajout d'options dans le menu "préférences" : options d'affichage dans la commande MAP (TLV, dump), options de recherche pour les cartes SIM

m : Corrections dans l'aide pour la commande "Select"

Version 0.1.5

A : Améliorations de l'interface utilisateur (barre d'outils plus ajout d'une option dans le menu "préférence")

m : correction d'un bug dans l'interprétation du fichier "smartcardlist.txt" et amélioration de la gestion des intervalles de valeurs pour les recherches d'ATR

m : corrections dans le décodage d'ATR

m : correction dans l'interface d'aide de la commande READ RECORD. Il manquait le champ "longueur".

Version 0.1.4

A : carte SIM, implémentation du décodage automatique via la commande MAP

A : systématisation du préfixe # pour affichage nombre hexa sauf si pas d'ambiguité (dump)

A : affichage en clair des noms de fichiers de la carte SIM

A : possibilité de sauver le mapping d'une carte dans un fichier de texte

A : simplification de l'interface de la commande MAP

Version 0.1.3

M : correction d'une mauvaise désallocation mémoire entraînant une violation mémoire lorsque l'on relance plusieurs fois l'option de décodage TLV (commande decode)

m : correction d'un mauvais codage de la commande dans Read binary pour lecture sans SFI

m : acceptation des saisies en hexa ou décimal pour saisie du CLA - corrigé dans cette version

A : prise en compte carte SIM (classe d'ordre = A0, type carte = SIM, décodage ATR, décodage get-response...)

A : systématisation du préfixe # pour nombre hexa sauf si pas d'ambiguité (dump)

Version 0.1.2

M : des nombres premiers étaient éliminés à tort dans la génération de nb premiers. Correction de l'algorithme de Lehmann et Rabin-Miller. Pas de conséquence pour les clés RSA générées avec les précédentes versions - corrigé dans cette version

A : amélioration de la saisie des nombres dans les options pour la génération des clés RSA

A : indications supplémentaires dans les résultats de tests de primalités (fonction test de clés du menu outils).

A : aide à la saisie des ordres pour les cartes M4 et M9

sommaire