cuamckuu / nfc-frog

Contactless EMV credit card reader
MIT License
292 stars 52 forks source link

Отказывается работать с visa (или сбером) #14

Closed DjamikTea closed 2 years ago

DjamikTea commented 2 years ago

Привет, я использую твой код чтоб считывать PAN для скуда и у меня проблема что с картой visa сбера он отказывается работать (скорее всего из-за того что PDOL не устраивает), но с Мастеркардом все норм

Вот что выдает Снимок экрана 2021-12-29 в 15 47 52 (на всякий случай скрыл) IMG_5128

cuamckuu commented 2 years ago

Привет, я тестировал только на физических картах, пытался с парой виртуальных карт на телефоне, но там немного другой формат, с которым не разбирался

DjamikTea commented 2 years ago

C пластиковой тоже самое

cuamckuu commented 2 years ago

А на скрине что не так? Прошли же там "read records", значит данные считались, теперь их нужно засунуть в парсер

DjamikTea commented 2 years ago

там нету PANа (тот самый read records) Снимок экрана 2021-12-29 в 22 18 22

вот мастеркард: Снимок экрана 2021-12-29 в 22 21 57

cuamckuu commented 2 years ago

Могу посоветовать другие режимы работы, может с ними получится:

sudo ./nfc-frog fast # Fast brute mode
sudo ./nfc-frog full # Full brute mode

А так, по скринам не особо понятно, что происходит и не получится воспроизвести для исправления

cuamckuu commented 2 years ago

Вообще, если всё что нужно - это уникально идентифицировать NFC карту, то использовать PAN плохая идея.

Там есть встреенные id, которые можно вытащить сильно проще, например через nfc-pool или nfc-list

DjamikTea commented 2 years ago

с fast он также пишет Could not complete payment и Segmentation fault, а вот с full он просит попробовать другую карту. с пластиком тоже ничего не дает

cuamckuu commented 2 years ago

Ну платёж он и не должен завершать, потому что это не программа для платежей. По поводу скрина выше, там тег "5F34", в интернете пишут, что это тег от Google/Apple pay, так что подозреваю, что с пластиком вывод другой

И ещё, для парсинга надо копировать не один вывод "Read record", а всё, что выведется при запуске

sudo ./nfc-frog fast 2>/dev/null
DjamikTea commented 2 years ago
sudo ./nfc-frog fast 2>/dev/null

could not complete payment и данные те же самые

я кстати добавил в массив PDOLValues это {0x9F66, new byte_t[4]{0xC8, 0x80, 0x00, 0x00}}, и у меня подтвердился платёж, но данные опять те же Снимок экрана 2021-12-29 в 22 42 16

cuamckuu commented 2 years ago

Подумал тут ещё, можно запустить команду

sudo ./nfc-frog full 2>/dev/null

И там по выводу поискать руками PAN, чтобы понять есть ли он вообще, и какому тегу соответствует.

Ещё в начале общения карты и ридера происходит запрос приложений и выбор первого из них. Может быть на этой карте два приложения и нужно брать не первое...

DjamikTea commented 2 years ago

Неа, просит другую карту

DjamikTea commented 2 years ago

Ок, я дибил и просто не увидел что PAN хранится в Track 2 Equivalent Data (0x57) ,там же и дата. Это не очень понятный трюк от Visa для меня, например MASTERCARD дублирует это отдельно и даже MIR Снимок экрана 2022-03-24 в 23 16 38 Снимок экрана 2022-03-24 в 23 13 51