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 - первый

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

Вы смотрите срез комментариев. Показать все
Автор поста оценил этот комментарий

Привет, хочу вкатится во всю эту тему и для начала сделать на основе кода TroikaDumper намутить внешний дампер из ардуины, дисплейчика и nfc модуля. Это вообще реально?

Другими словами с помощью ардуины читать, сохранять и восстанавливать записанное состояние памяти nfc модуля. Что думаешь?

https://github.com/gshevtsov/TroikaDumper

раскрыть ветку (1)
DELETED
Автор поста оценил этот комментарий

отвечаю.

Ну насчет ардуины - шилды есть- значит можно подключить.

https://www.adafruit.com/product/789

вот годный шилд для ардуино (собственно тебя должен интересовать чип который стоит в шилде). PN532полне читает все необходимые стандарты. от классической мифар до мифар плюс.

Я сам не ардуинщик ни разу (хотя эта игрушка у меня есть, на моём же GIT есть звонок дверной), писал проект 1 проект ради угара.

Есть вариант проверить шифрование (крипто1, 3дес, аес-128 или чем там шифрует тройка) и nfc-fuck(или как то так) на ардуине, возможно не хватит ей памяти, и придется расширять память. Потом загоняться по поводу покупки шилдов.

Если говорить о китайских поделиях на 31 чипе, то они не читают дес аес карты (да и много чего тоже), так же, их антенны весьма херовые (около 0.5 см. я вижу только безкорпусной вариант)

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку