[PYTHON] Mémo d'enquête Android HCE (partie 2)

Objectif

Vérifiez la connexion du PC (PC / SC) à Android HSE.

environnement

Cette fois, nous avons confirmé l'opération avec les modèles suivants.

Côté Android

--Build environnement

Côté PC

Côté Android

Veuillez vous référer à l'article précédent. Mémo d'enquête Android HCE (partie 1)

L'AID est "F222222222".

Application de confirmation de communication HSE

Pour une vérification rapide, essayez d'utiliser python.

Ajout de module

Ajoutez un module pour faire fonctionner PC / SC à partir de python. SWING est requis pour pyscard, donc installez-le à l'avance. SWIG

Après avoir installé SWIG, continuez à ajouter des modules avec la commande suivante. pip install pyscard

documentation pyscard

La documentation pyscard peut être trouvée à l'URL suivante:

https://pyscard.sourceforge.io/#documentation

Création de script Python de connexion HCE

Créez un script python.

HCE_connect.py


from smartcard.CardType import AnyCardType
from smartcard.CardConnection import CardConnection
from smartcard.CardRequest import CardRequest
from smartcard.util import toHexString

#Connexion de la carte
cardtype = AnyCardType()
cardrequest = CardRequest( timeout=1, cardType=cardtype )
cardservice = cardrequest.waitforcard()
cardservice.connection.connect( CardConnection.T1_protocol )
print ("ATR:", toHexString( cardservice.connection.getATR() ))

#Sélectionnez en spécifiant AID
SELECT = [0x00, 0xA4, 0x04, 0x00]
CARD_AID = [0xF2, 0x22, 0x22, 0x22, 0x22 ]
LEN = [len(CARD_AID)]
#Assemblage de l'APDU
apdu = SELECT + LEN + CARD_AID
print("send apdu:", toHexString(apdu))
#Envoyer et recevoir
data, sw1, sw2 = cardservice.connection.transmit(apdu)
print("SW1SW2: %x %x" % (sw1, sw2))
print("received:", toHexString(data))

#Déconnecter
cardservice.connection.disconnect()
print("...disconnected.")

exécution de script python

Lancez l'application d'émulation de carte Android sur votre Android. Placez Android sur le lecteur de carte et laissez-le être reconnu.

Après avoir confirmé que HCE le reconnaît, exécutez le script. python HCE_connect.py

Sortie de résultat


ATR: 3B 88 80 01 00 00 00 00 80 81 71 00 79
send apdu: 00 A4 04 00 05 F2 22 22 22 22
SW1SW2: 90 0
received: 30 30 30 30 30 30 30 30
...disconnected.

J'ai pu le lire normalement.

la prochaine fois

Assurez-vous que vous pouvez également y accéder en C #. Mémo d'enquête Android HCE (partie 3)

Recommended Posts

Mémo d'enquête Android HCE (partie 2)
[Pour mémoire] Linux Partie 2
Liste de rédaction de mémo partie 2
Mémo de base Python - Partie 2
Mémo du didacticiel FastAPI, partie 1
Mémo de base Python - Partie 1
Mémo 1 du manuel standard Linux, partie 2
Mémo de grammaire de base Python (1)
Mémo du manuel standard Linux, partie 6
[Pour mémoire] Éditeur Linux Partie 1 vi
Paramètres de requête FastAPI Tutorial Memo Part 3
Paramètres de chemin du mémo du didacticiel FastAPI Partie 2