Analisador e dumper de cartões NFC focado em MIFARE Classic, escrito em C com libnfc.
O nome vem do latim lector — "aquele que lê". A ferramenta foi desenvolvida para testes de segurança em sistemas de controle de acesso, catracas e cartões de transporte que usam MIFARE Classic com chaves fracas ou padrão de fábrica.
_ _
| | ___ ___| |_ ___ _ __
| |/ _ \/ __| __/ _ \| '__|
| | __/ (__| || (_) | |
|_|\___|\___|\__\___/|_|
nfc card analyzer | v0.2.7
- Detecção automática do tipo de cartão pelo SAK/ATQA (MIFARE Classic 1K/4K, Mini, Ultralight, DESFire, SmartMX)
- Brute-force de chaves com banco de 64 chaves padrão coletadas em campo (NXP factory, MAD, NDEF, sistemas de transporte)
- Dump completo de todos os setores do MIFARE Classic — Key A e Key B independentemente
- Análise do MAD (MIFARE Application Directory) com identificação de AIDs conhecidos
- Parser NDEF para Text Records, URI Records e Smart Posters (NFC Forum RTD)
- Identificação de chaves conhecidas — mostra a origem quando reconhece uma chave default
- Hex dump formatado com dump ASCII inline
- Suporte a leitores via libnfc: ACR122U, PN532 (USB/UART), SCL3711
# Debian/Ubuntu
sudo apt install libnfc-dev libnfc-bin
# Arch
sudo pacman -S libnfc
# hardware suportado (libnfc)
# - ACR122U (mais comum, funciona bem)
# - PN532 via USB ou UART
# - SCL3711
# - qualquer leitor com driver CCID genericogit clone https://github.com/druserx/lector
cd lector
make# analise basica — detecta o cartao e tenta dump
sudo ./lector
# verbose: mostra hex dump de cada setor
sudo ./lector -v
# salva dump em arquivo
sudo ./lector -o dump_cartao.bin
# tenta parsear NDEF depois do dump
sudo ./lector -n
# forca tipo (util se o SAK estiver adulterado)
sudo ./lector -1 # forca MIFARE Classic 1K
sudo ./lector -4 # forca MIFARE Classic 4KPrecisa de
sudono Linux para acessar o leitor USB diretamente via libnfc. Alternativamente configure udev rules para seu usuário.
[ CARTAO DETECTADO ]
─────────────────────────────────────────
Tipo : MIFARE Classic 1K
UID : A3:B2:C1:D0 (4 bytes)
ATQA : 00 04
SAK : 08
[*] iniciando dump — 16 setores, 64 chaves no dicionario
setor 00 [trailer: bloco 3] KeyA:ok KeyB:ok
setor 01 [trailer: bloco 7] KeyA:ok KeyB:?
setor 02 [trailer: bloco 11] KeyA:ok KeyB:?
...
setor 15 [trailer: bloco 63] KeyA:? KeyB:?
[ MAD - MIFARE Application Directory ]
─────────────────────────────────────────
GPB versao : 1
InfoByte : 0x01 (publisher sector: 1)
Setores com aplicacao:
setor 01 AID: 0003 NFC Forum
setor 02 AID: E001 NFC NDEF v2
[ RESUMO DO DUMP ]
═════════════════════════════════════════
Tipo : MIFARE Classic 1K
UID : A3:B2:C1:D0
ATQA : 00 04
SAK : 08
Setores : 16 total / 14 lidos / 2 protegidos
Setor Key A Key B Status
───── ────────────── ────────────── ──────
00 A0A1A2A3A4A5 ???????????? lido (4/4 blocos) [MAD Key A (NXP)]
01 D3F7D3F7D3F7 ???????????? lido (4/4 blocos) [NDEF Key A]
...
14 ???????????? ???????????? protegido
15 ???????????? ???????????? protegido
lector/
├── src/
│ ├── main.c # CLI, fluxo principal
│ ├── nfc_scan.c # init do leitor, polling, identificacao do tipo
│ ├── mifare.c # dump MIFARE Classic, brute-force, MAD
│ ├── ndef.c # parser NDEF (Text, URI, Smart Poster)
│ ├── chaves.c # banco de 64 chaves default coletadas em campo
│ └── relatorio.c # hex dump, tabela de setores, salvar em arquivo
├── include/
│ └── *.h
└── Makefile
O banco em src/chaves.c inclui:
- Chaves padrão NXP (factory, MAD Key A/B, NDEF)
- Chaves de sistemas de transporte público pesquisadas
- Chaves de controle de acesso comuns
- Variações coletadas em testes de campo
Identificação automática mostra a origem de chaves conhecidas (ex: [MAD Key A (NXP)], [ASCII: 123456]).
- MIFARE DESFire: detectado mas não há suporte a dump (usa ISO 7816-4 APDUs, trabalho futuro)
- MIFARE Ultralight: detecção ok, dump de páginas em desenvolvimento
- Nested attack e PRNG attack não implementados — chaves não encontradas no dicionário continuarão como
???????????? - Requer execução como root ou permissão no udev para acessar o leitor
Esta ferramenta é para testes autorizados em dispositivos que você possui ou tem permissão explícita para testar. O uso em sistemas de terceiros sem autorização é ilegal.
- libnfc — NFC Library
- AN10833 — NXP MIFARE Type Identification
- AN10787 — MIFARE Application Directory
- NFC Forum NDEF Specification
MIT