Построение командных APDU (C-APDU). Четыре подвкладки охватывают разные поколения карт и наборы команд.
+Построение командных APDU (C-APDU). Пять подвкладок охватывают разные поколения карт и наборы команд: SIM RFM, USIM RFM, Expanded Script, RAM/GP и C-APDU Parser.
CLA = A0 (GSM 11.11 / TS 151 011, ISO 7816-4). Удалённое управление файлами классических SIM-карт.
Команды собираются в виде цепочки: нажмите кнопку + Command, чтобы добавить строку, заполните её поля — предпросмотр цепочки (над кнопкой упаковки) обновится автоматически. Добавьте строку GET RESPONSE, чтобы получить данные после SELECT. Кнопка Pack into Secured packet упаковывает всю цепочку в пакет SCP80.
| Команда | INS | Описание |
|---|---|---|
| SELECT | A4 | Выбор EF/DF по FID, пути, DF name или цепочке |
| SELECT | A4 | Выбор EF/DF по FID, пути, AID или цепочке |
| UPDATE RECORD | DC | Обновление записи |
| UPDATE BINARY | D6 | Обновление бинарных данных |
| READ RECORD | B2 | Чтение записи |
| ACTIVATE FILE | 44 | Активация файла |
| DEACTIVATE FILE | 04 | Деактивация файла |
| VERIFY PIN | 20 | Проверка PIN1 или PIN2 |
| CHANGE PIN | 24 | Смена PIN1 или PIN2 |
| CHANGE PIN | 24 | Смена PIN1 или PIN2 |
| DISABLE PIN | 26 | Отключение PIN |
| ENABLE PIN | 28 | Включение PIN |
| UNBLOCK PIN | 2C | Разблокировка PIN с помощью PUK |
| GET RESPONSE | C0 | Получение данных, на которые указывает предшествующий 61XX/9FXX |
C0 (или C0:NN) вставляет GET RESPONSEВ правой колонке — панель конвертации (IMSI, MSISDN, ICCID, SPN, PLMN, nibble swap). См. §2.5.
+Для record-команд режим P2: Absolute (04), Next (02) или Previous (03). Если за Case 4 командой сразу следует строка GET RESPONSE, сборщик цепочки автоматически убирает её байт Le (ETSI TS 102 226 §5.1.1). В правой колонке — панель конвертации (IMSI, MSISDN, ICCID, SPN, PLMN, nibble swap). См. §2.5.
CLA = 00 (ETSI TS 102 221). Те же команды, что и SIM, но SELECT использует P1=09, P2=0C (выбор по FID из текущего каталога).
CLA = 00 (ETSI TS 102 221). Тот же сборщик цепочки и набор команд, что и SIM. Отличия:
04) и добавляет Le=00; флажок Silent (P2=0C) выбирает файл без запроса FCP (без Le, без данных ответа).08) или from current DF (P1=09).Построение формата Expanded Remote Application data по ETSI TS 102 226 §5.2.1.
@@ -137,7 +140,7 @@CLA = 80 (GlobalPlatform Card Specification v2.3.1). Команды удалённого управления приложениями.
CLA = 80 (GlobalPlatform Card Specification v2.3.1). Команды удалённого управления приложениями. Строятся тем же сборщиком цепочки, что и SIM/USIM.
| Команда | INS | P1 | Описание | @@ -145,21 +148,22 @@
|---|---|---|---|
| INSTALL [for load] | E6 | 02 | Регистрация загружаемого файла |
| INSTALL [for install] | E6 | 0C | Установка приложения или SD |
| INSTALL [make selectable] | E6 | 10 | Сделать приложение выбираемым |
| INSTALL [registry update] | E6 | 01 | Обновление реестра |
| INSTALL [extradition] | E6 | 04 | Перемещение между SD |
| LOAD | E8 | 00 | Загрузка кода |
| DELETE | E4 | 00/80 | Удаление приложения или SD |
| INSTALL [make selectable] | E6 | 08 | Сделать приложение выбираемым |
| INSTALL [registry update] | E6 | 40 | Обновление реестра |
| INSTALL [extradition] | E6 | 10 | Перемещение между SD |
| LOAD | E8 | 80 | Загрузка блока кода (P1=80 последний блок, номер блока в P2) |
| DELETE | E4 | 00 | Удаление приложения или SD (P2=00 только AID / 80 AID + связанные объекты) |
| GET STATUS | F2 | 80/40/20/10 | Статус карты |
| GET DATA | CA | tag | Чтение объектов данных |
| STORE DATA | E2 | 00/40/80/C0 | Запись данных |
| STORE DATA | E2 | 00/40/80/C0/E0 | Запись данных |
| SET STATUS | F0 | 80/40/60 | Управление жизненным циклом |
| EXTERNAL AUTHENTICATE | 82 | 00 | Аутентификация SCP |
| INTERNAL AUTHENTICATE | 88 | 00 | Challenge-response |
| INTERNAL AUTHENTICATE | 88 | 00 | Challenge-response |
| GET RESPONSE | C0 | 00 | Получение данных после 61XX (Le настраивается) |
Тег C7 в поле данных INSTALL, три байта привилегий (таблицы 11-7/8/9 спецификации GP):
Три байта привилегий (таблицы 11-7/8/9 спецификации GP), кодируются как length-value поле внутри данных INSTALL:
| Бит | Байт 1 | Байт 2 | Байт 3 | @@ -199,6 +203,9 @@
|---|
| Поле | Описание |
|---|---|
| Name | Понятная метка |
| ICCID | Опциональный идентификатор карты |
| KIc / KID | Индикаторы ключа и алгоритма (например, 15 = индекс 1, 3DES-CBC2; x2 = AES) |
| SPI1 / SPI2 | Security Parameter Indicators |
| TAR | Toolkit Application Reference |
| Counter | Счётчик повторов (5 байт) |
| KIc key / KID key | 16/24/32 hex-символа (ключи 8/16/24 байта 3DES) или 32/48/64 hex-символа (ключи 16/24/32 байта AES) |
Export as JSON / Import JSON from clipboard для обмена предустановками. Выбранная предустановка автоматически заполняет форму Secured Packet.
+Декодирует raw-ответ команды: выберите отправленную команду, введите SW (например, 9000) и hex данных ответа, затем нажмите Decode.
Подключение к локальному pysim-otaman-server для работы с картой. Подвкладки: File manager, Custom files, pySim command line, Raw APDU и Proactive UICC.
+Подключение к локальному pysim-otaman-server для работы с картой. Подвкладки: File manager, Custom files, Profiler, pySim command line, Raw APDU и Proactive UICC.
Отправка произвольного APDU и просмотр ответа.
Работа с сессией Card Application Toolkit: подписанные события, журнал проактивных команд, словарь данных PROVIDE LOCAL INFORMATION и опрос STATUS.
+Работа с сессией Card Application Toolkit: меню STK, подписанные события, журнал проактивных команд, словарь данных PROVIDE LOCAL INFORMATION и опрос STATUS.
-Если карта выдала команду SET UP MENU, вверху этого представления появляется блок «STK menu» с изумрудной кнопкой STK: <название>, открывающей оверлей меню (браузер STK-меню карты). Если карта не задала меню, вместо кнопки показывается «No menu set by the card». Состояние меню обновляется при каждом открытии представления.
+ +События, которые отслеживает карта. У каждого события есть кнопка Send, открывающая форму, специфичную для типа события:
Отправка события использует ENVELOPE(Event Download) по TS 102 223 / TS 131 111.
Хронологический список извлечённых проактивных команд. Каждая строка показывает время, код типа, имя и декодированный квалификатор (для команд, у которых он есть). Для команд с данными ответа показывается строка Response: с байтами TERMINAL RESPONSE (без служебных TLV); ответы PROVIDE LOCAL INFORMATION декодируются через словарь данных PLI.
Редактируемые hex-значения для всех 22 квалификаторов PLI (TS 102 223 §8.6 + TS 131 111). У десяти квалификаторов есть встроенные формы декодирования/кодирования:
Значения хранятся на сервере до перезапуска. Когда карта выдаёт PLI, сервер вставляет значения словаря в TERMINAL RESPONSE.
-Кнопка Send STATUS отправляет STATUS (F2) вручную. Переключатель Polling включает фоновый опрос: после настраиваемого интервала бездействия (аргумент сервера --poll-interval, 1–255 с, по умолчанию 30 с) сервер отправляет STATUS и обрабатывает любую ожидающую проактивную команду. При извлечении карты опрос останавливается, а состояние карты сбрасывается.
Проверяет соответствие карты именованному профилю — упорядоченному набору правил, описывающих ожидаемую файловую систему и (опционально) содержимое файлов. Профили хранятся в localStorage.
Правила выполняются последовательно. Правило файловой системы задаётся:
+MF (например, MF/7F10/6F3A) или с AID ADF (например, A0000000871002/6F07).? — шаблон на один полубайт (маска без ? — совпадение префикса, например 0891 для MCC/MNC из IMSI). Для record-файлов хранится список по записям.Check выполняет каждое правило на подключённой карте и показывает строку прогресса и отчёт прохождения (существование, каждый атрибут FCI и совпадение содержимого).
+Диалог сканирования запрашивает имя профиля и предлагает список «Ignore contents of» (все отмечены по умолчанию) часто перезаписываемых файлов, содержимое которых пропускается: EF.LOCI, EF.PSLOCI, EF.EPSLOCI, EF.5GS3GPPLOCI, EF.Keys, EF.KeysPS, EF.SMS, EF.Kc, EF.KcGPRS, EF.LOCIGPRS, EF.CBMID, EF.SMSS. Правила создаются только для файлов, которые реально существуют на карте (возвращён FCI-шаблон); отсутствующие файлы пропускаются. Пользовательские файлы из подвкладки Custom files включаются с той же проверкой существования.
Builds command APDUs (C-APDUs). Four sub-tabs cover different card generations and command sets.
+Builds command APDUs (C-APDUs). Five sub-tabs cover different card generations and command sets: SIM RFM, USIM RFM, Expanded Script, RAM/GP, and C-APDU Parser.
CLA = A0 (GSM 11.11 / TS 151 011, ISO 7816-4). Remote File Management for classic SIM cards.
Commands are assembled as a chain: press a + Command button to append a row, fill that row’s fields, and the chain preview (above the pack button) updates automatically. Add a GET RESPONSE row to fetch data following a SELECT. Press Pack into Secured packet to wrap the whole chain into an SCP80 packet.
| Command | INS | Description |
|---|---|---|
| SELECT | A4 | Select EF/DF by FID, path, DF name or chain |
| SELECT | A4 | Select EF/DF by FID, path, AID or chain |
| UPDATE RECORD | DC | Update a record in a record-oriented EF |
| UPDATE BINARY | D6 | Update binary content at an offset |
| READ RECORD | B2 | Read a record |
| ACTIVATE FILE | 44 | Activate a file |
| DEACTIVATE FILE | 04 | Deactivate a file |
| VERIFY PIN | 20 | Verify PIN1 or PIN2 |
| CHANGE PIN | 24 | Change PIN1 or PIN2 |
| CHANGE PIN | 24 | Change PIN1 or PIN2 |
| DISABLE PIN | 26 | Disable a PIN |
| ENABLE PIN | 28 | Enable a PIN |
| UNBLOCK PIN | 2C | Unblock a PIN with PUK |
| GET RESPONSE | C0 | Fetch data indicated by a preceding 61XX/9FXX status word |
C0 (or C0:NN) token inserts a GET RESPONSE hopA conversion panel is embedded in the right column (IMSI, MSISDN, ICCID, SPN, PLMN, nibble swap). See §2.5.
+For record commands, the P2 mode is Absolute (04), Next (02), or Previous (03). When a Case 4 command is immediately followed by a GET RESPONSE row, the chain builder strips its trailing Le byte automatically (ETSI TS 102 226 §5.1.1). A conversion panel is embedded in the right column (IMSI, MSISDN, ICCID, SPN, PLMN, nibble swap). See §2.5.
CLA = 00 (ETSI TS 102 221). Same commands as SIM, but SELECT uses P1=09, P2=0C (select by FID from the current directory).
CLA = 00 (ETSI TS 102 221). Same chain builder and command set as SIM. Differences:
04) and appends Le=00; a Silent (P2=0C) checkbox selects without requesting FCP (no Le, no response data).08) or from current DF (P1=09).Builds the Expanded Remote Application data format per ETSI TS 102 226 §5.2.1.
@@ -137,7 +140,7 @@CLA = 80 (GlobalPlatform Card Specification v2.3.1). Remote Application Management commands for card content management.
CLA = 80 (GlobalPlatform Card Specification v2.3.1). Remote Application Management commands for card content management. Built with the same chain builder as SIM/USIM: add rows, fill fields, and the chain preview updates automatically.
| Command | INS | P1 | Description | @@ -145,21 +148,22 @@
|---|---|---|---|
| INSTALL [for load] | E6 | 02 | Register a load file for loading |
| INSTALL [for install] | E6 | 0C | Install an application or SD |
| INSTALL [make selectable] | E6 | 10 | Make an application selectable |
| INSTALL [registry update] | E6 | 01 | Update registry entries |
| INSTALL [extradition] | E6 | 04 | Extradition between SDs |
| LOAD | E8 | 00 | Load executable code blocks |
| DELETE | E4 | 00/80 | Delete application or SD |
| INSTALL [make selectable] | E6 | 08 | Make an application selectable |
| INSTALL [registry update] | E6 | 40 | Update registry entries |
| INSTALL [extradition] | E6 | 10 | Extradition between SDs |
| LOAD | E8 | 80 | Load executable code block (P1=80 last block, block number in P2) |
| DELETE | E4 | 00 | Delete application or SD (P2=00 AID only / 80 AID + related objects) |
| GET STATUS | F2 | 80/40/20/10 | Get card status |
| GET DATA | CA | tag | Read card data objects |
| STORE DATA | E2 | 00/40/80/C0 | Store data (key, certificate, …) |
| STORE DATA | E2 | 00/40/80/C0/E0 | Store data (key, certificate, …) |
| SET STATUS | F0 | 80/40/60 | Lifecycle state management |
| EXTERNAL AUTHENTICATE | 82 | 00 | SCP host authentication |
| INTERNAL AUTHENTICATE | 88 | 00 | Card challenge-response |
| INTERNAL AUTHENTICATE | 88 | 00 | Card challenge-response |
| GET RESPONSE | C0 | 00 | Fetch data after a 61XX status (Le configurable) |
Tag C7 in the INSTALL data field, built from 3 privilege bytes (GP spec Tables 11-7/8/9):
Three privilege bytes (GP spec Tables 11-7/8/9), encoded as a length-value field inside the INSTALL data:
| Bit | Byte 1 | Byte 2 | Byte 3 | @@ -199,6 +203,9 @@
|---|