NFC: Работа с библиотекой.

Моя библиотека состоит из трех классов

NFC- родительский класс (NXP чипы должны поддерживаться от 532), который позволяет

- соединяться со считывателем

- показывать тип считывателя

- отправлять прямые команды на чип

- будить чип (эта функция необходима, т.к. после подачи питания чип "спит")


PN532

- включить антенну

- посмотреть карту без авторизации, определить её тип (Mifare только прописан)

- упрощенное считывание (возвращает все что нужно для дальнейшего использования)

- считывание блоков памяти Mifare Ultralight

- авторизация Mifare Ultralight C

- записать на вашу карту Mifare Ultralight C новый ключ.

- записать в память, mifare ultralight / ultralight C

- авторизация блока Mifare Classic

- запись блоков Mifare Classic



tryports

определяет на каком порту болтается ваш считыватель.

Ниже я приведу пример использования кода и объясню построчно чего происходит.

NFC: Работа с библиотекой. NFC, Библиотека, Работа с картами, Длиннопост

в python со знака #  -далее идет комментарий, так что строки начнающиеся с #- пропускаем.

2 - открываем соединение по COM2 (я знаю что там находится мой считыватель), он подключен через преобразователь интерфейсов moxa (ОС win определяет его как com2).

строка r.wakeup() - будит наш считыватель

следующая строка показывает информацию о считывателе (картинка ниже). Как мы видим, действительно внутренняя схема 32 версия 01, ревью 06. Далее идет в таблице идет поддержка стандартов.

После того, как чип определился и вывел инфу о себе - мы включаем антенну (turnOnRF ())

и тащим информацию о карте.

Считыватель будет ожидать карту и программа не сдвинется с места пока вы её не приложите.

Ну вот мы приложили карту, и появилась последняя табличка, в ней, показаны все доступные данные которые можно прочитать без авторизации, так же показан тип карты в моём случае это mifare ultralght C.

Последняя строка  - прошла ли авторизация (по умолчанию вы сначала должны авторизоваться перед записью) - 0 прошла авторизация 2 - не прошла 1 - что-то пошло не так. (коды в hex)

По умолчанию пароль на всех картах IEMKAERB!NACUOYF он же (если немного крутануть то получится BREAKMEIFYOUCAN!)

После записи карты старый пароль ещё будет действовать (я не стал команда setMifareUltralightCKey), вам надо отвести карту от считывателя. После "вытаскивания картриджа" пароль и настройки будут применены на карте.

NFC: Работа с библиотекой. NFC, Библиотека, Работа с картами, Длиннопост
Клонируем карты

Начинающий разработчик, используя Mifare Classic не переписывает пароли в карте по всем блокам, оставляя лазейку для взлома. Зная хотя бы один из паролей на любом блоке можно скопировать карту и сделать её точный клон при помощи MifareZero.

Если вам известно, что какой то блок авторизации остался "заводским", то можно попытаться хакнуть карту и вытащить все данные при помощи MFCUK.

Даже если вам не известны пароли, то вы сможете получить ключ авторизации используя сниффер.

Зачем NFC хакать?

Не делайте то, что я напишу, это уголовно-наказуемое преступление. Я не несу ответственности за вас! У вас как бы своя голова должна быть.

Хакают карты - для получения разовых допусков (постоянных допусков) на предприятия, в учреждения и так далее. Сейчас набирают обороты платежные системы по NFC. Так что человек вооруженный считывателем может снять с вашего телефона (некоторые личности убирают подтверждение о переводе, мол, медленно), карты, денежные средства.

Я понимаю, для моих "уроков" это маловато, но все же я не хотел бы стать предпосылкой к вашей криминальной карьере.

По поводу моей библиотеки - вы вправе копировать, распространять, модифицировать её как вам угодно, при условии, что вы оставите ссылку в исходниках на оригинальную библиотеку. Код распространяется под лицензией GNU.

ссылка на библиотеку.

https://github.com/X286/nfc_py

предыдущие посты:

http://pikabu.ru/story/nfc_blizhe_k_telu_4989630 - второй

http://pikabu.ru/story/nfc_prostyim_yazyikom_4986958 - первый

Всем спасибо за внимание. Задавайте вопросы.