blog.stackframe.dev

티머니 잔액 조회 APDU

전국호환 교통카드를 분석하다가 찾아냈다.

먼저 티머니의 AID인 D4100000030001SELECT FILE 명령을 실행 후, 잔액 조회 명령인 90 4C 00 00 04를 보내면 된다. 정리하자면 보내야 할 APDU들은 다음과 같다:

 CLA INS P1 P2 Lc Data                 Le
==========================================
 00  A4  04 00 07 D4 10 00 00 03 00 01 00
 90  4C  00 00                         04

NFC 리더기가 있고 opensc-tool 명령을 사용할 수 있다면 간단히 조회할 수 있다:

$ opensc-tool -s 00A4040007D410000003000100 -s 904C000004
Using reader with a card: ACS ACR1252 Dual Reader [ACR1252 Dual Reader PICC] 00 00
Sending: 00 A4 04 00 07 D4 10 00 00 03 00 01 00
Received (SW1=0x90, SW2=0x00):
...
Sending: 90 4C 00 00 04
Received (SW1=0x90, SW2=0x00):
00 00 00 C8 ....

SELECT FILE 명령 결과는 카드번호 등이 포함되어 있기 때문에 생략하였다. 잔액 조회 결과는 4바이트 빅엔디안 정수로 돌아온다. 내 카드 잔액은 200원이다.

댓글