Архив рубрики: Программирование под Windows

Сниффер Mifare на RTL-SDR (RTL2832)

Иногда необходимо знать какими данными обмениваются ридер и карта. Это могут быть банальные причины, типа отладки программно-аппаратного обеспечения ридера, проверки отношения мощностей передачи-приёма; это могут быть и не очень банальные причины, типа трассировки обмена Mifare Classic или попытки на лету внести сбойный бит в AES-ключ Mifare Plus, чтобы выковырять криптобазу из испорченной карты…
Предлагаемый вариант сниффера был сделан из «плавников и рыбьих хвостов» — на базе RTL-SDR (RTL2832), донгла стоимостью 4$. Результат работы сниффера запечатлён на скриншоте: неплохо, неправда ли?

Вот так выглядит трассировка протокола ISO-14443A

А это приёмник на RTL-SDR (RTL2832), который перехватил обмен Mifare

Читать далее Сниффер Mifare на RTL-SDR (RTL2832)

Ридер бесконтактных карт RD-03AB и libusb для Windows

При подключении ридеров семейства RD-03AB по USB интерфейсу к системе, работающей под ОС Windows, управление ридером возможно через встроенный в Windows драйвер HID-устройств, или через интерфейс библиотеки USB-устройств libusb-1.0. Казалось бы, зачем изобретать велосипед: если работает HID-интерфейс, то зачем устанавливать дополнительный драйвер? На самом деле, не всё так просто 🙂 При работе через HID-интерфейс вступают ограничения скорости обмена данными, это особенно заметно, если при интенсивном обмене с ридером попробовать шевелить мышку, или быстро набирать текст на клавиатуре. В Win10 возможны и другие «спецэффекты», причём они меняются от одного апдейта системы к другому: работа через libusb позволяет если не избежать, то значительно уменьшить вероятность «сюрприза» от M$.

Консоль настройки ридера под Win10, использующая libusb-1.0

Читать далее Ридер бесконтактных карт RD-03AB и libusb для Windows

MFKS — взлом ключей Mifare Classic на современных картах

Для взлома ключей ключей карт Mifare Classic очень часто используется программа mfocMiFare Offline Cracker в разных вариациях, однако, у этой программы есть существенный недостаток: для взлома неизвестного ключа нужен хотя бы один известный. Давным-давно этот недостаток преодолевался с помощью программы mfcuk — этой программе известные ключи не требовались, mfcuk собирает статистику случайного генератора по 4х битным ответам при авторизации. Различные производители по-разному фиксили этот баг, но так или иначе mfcuk перестал работать. Новая программа mfks позволяет восстановить ключи на картах современных производителей, однако, на всякий случай, прилагается обновлённый вариант mfcuk для ридера RD-03AB.

Ридер RD-03AB, кабель и карта для взлома

Читать далее MFKS — взлом ключей Mifare Classic на современных картах

Операции с ACS-ключами для ридера бесконтактных карт RD-03AB

ACS-ключ (ключ доступа) представляет собой запись длиной 8 байт, идентифицирующую UID карты. Запись состоит из байта длины UID и 7ми байт UID. Возможны следующие длины UID: 4 байта, 7 байт и, теоретически, 10 байт (предусмотрено стандартом, но в реальных картах такой UID не встречается). Если длина UID недостаточна для заполнения записи ACS-ключа (4 байта), запись дополняется нулями. Если длина UID превышает длину ACS-ключа (10 байт), последние байты UID отбрасываются. ACS-ключ, у которого все байты равны 0xFF, считается пустым (нет записи о ключе, ключ удалён).

rd03ab_acsk

Читать далее Операции с ACS-ключами для ридера бесконтактных карт RD-03AB

Клонирование Mifare — нет ничего проще!

Вот для такого замечательного случая, когда возникает необходимость клонировать карту Mifare, предназначена программа c2rwCopy to RW-card. Вообще-то клонирование направо и налево делается с помощью libnfc; c2rw не использует libnfc, но тоже позволяет создать клоны карт (включая UID) Mifare Ultralight, Mifare Classic и Mifare Plus 🙂 Для полного клонирования, включая UID, следует использовать специальные карты, так называемые карты Mifare Zero (RW-карты), по названию перезаписываемого сектора 0. В секторе 0 хранится UID карты, а также ATQA и SAK, которые отвечают за опознавание типа карты. Исходники софта открыты, скачать его можно здесь (для Windows).

c2rw01
Читать далее Клонирование Mifare — нет ничего проще!

Необычный анализ карт Mifare

Известно, что карты Mifare выпускают различные производители. И, вроде бы, эти карты работают одинаково, несмотря на то, что различные производители по-разному шли к своей цели. Неужели у карт нет никаких различий?

Для сравнения было взято 12 разных типов карт (на самом деле больше, но не суть). Среди этих карт были не только специально купленные карты, но и старые и новые билеты метро, социальная карта, карты «Тройка», карта «Стрелка», билеты Ultralight — вобщем всё, что под руку попало 🙂 И анализ дал очень интересные результаты.

Карта SAM AV2

Читать далее Необычный анализ карт Mifare

SCC: запись, чтение и замена UID в картах Mifare — это просто!

Удобных утилит для работы с бесконтактными картами Mifare под Windows — раз-два и обчёлся. SCC (Simple Card Console) — одна из удобных утилит для работы с бесконтактными картами Mifare. SCC была переписана для ридеров RD-03AB V2.0. Помимо чтения и записи обычных карт Mifare, SCC поддерживает карты семейства Mifare Plus и Mifare Zero, а также позволяет запросто изменить UID на этих картах. Полезные фичи — чтение ATS и определение типа карты (в том числе и RW-свойств). Исходники софта открыты.

scc для RD-03AB - скриншот работы программы
Читать далее SCC: запись, чтение и замена UID в картах Mifare — это просто!

mfoc для ридера RD-03AB

В связи с полной сменой API на V2.0 для ридеров RD-03AB, часто задают вопросы, типа, как переделать mfoc и т.п., что мол горе-горькое в том, что ридер не поддерживается официально libnfc, и т.д. и т.п.. Не переживайте: libnfc — это «тупиковая ветвь эволюции», которую губит попытка объять необъятное. libnfc сложен в понимании даже на уровне примеров, и что-то делать на нём не так просто, даже когда находишься в теме, ИМХО. Поэтому, отсутствие официальной поддержки libnfc для RD-03AB скорее фича, чем трабл, тем более, что ридер работает как под Windows, так и под Linux без драйверов.

На самом деле, никакой проблемы при переносе кода mfoc — нет, ниже приводится пример для Windows. Все исходники традиционно открыты 🙂
Читать далее mfoc для ридера RD-03AB