diff --git a/frontend/help-ru.html b/frontend/help-ru.html index e128fd9..db58be6 100644 --- a/frontend/help-ru.html +++ b/frontend/help-ru.html @@ -369,7 +369,7 @@
Столбец SCP81 показывает, задана ли в пресете рабочая пара PSK: ✓ (зелёный) — идентификатор и ключ заданы; ⚠ (жёлтый) — задано только одно из двух, и слушатель такой пресет игнорирует; — — PSK нет. Идентификатор и ключ PSK задаются вместе. Кнопка Добавить пресет открывает редактор с новым пресетом; Редактировать загружает пресет строки в редактор, поэтому поля можно менять без повторного ввода карты; Сохранить сохраняет и возвращает к списку, Отмена отменяет правки; Удалить удаляет строку (только в списке). Обмен пресетами: Экспорт в файл для выгрузки и Импорт из файла для загрузки. Выбранный пресет автоматически заполняет форму Secured Packet и устанавливает TAR для операции (RAM/GP → ISD TAR, SIM RFM → UICC RFM TAR, USIM RFM → ADF RFM TAR); TAR, введённый в форму Secured Packet вручную, сохраняется при отправке - счётчик, ключи и MSL этого TAR по-прежнему берутся из пресета; SPI1 берётся из MSL, а меньшее значение даёт предупреждение (сервер тоже возвращает его как warning); изменения сразу передаются работающему слушателю SCP81.
Импорт outfile загружает сразу много карт из outfile поставщика карт — текстового дампа инструмента персонализации: шапка с баннером и параметрами, затем разделённая пробелами строка колонок (среди токенов есть ICCID; первый токен может нести префикс вида var_out:) и по одной строке на карту. Всё до строки колонок и все неиспользуемые колонки игнорируются. Разбираются ICCID (цифры, цифры с добивочным F до чётного числа нибблов, цифры с разделителями или сырой hex EF — всё приводится к одной форме), PIN1/PIN2/PUK1/PUK2, ADM (hex-значение ключа, 4–16 hex-цифр парами байт — например 3632333239463337), PSK (16 байт; необязательная колонка PSKID/PSK_ID задаёт её идентификатор, по умолчанию берётся ICCID карты) и нумерованные пары ключей KICn/KIDn — по одному keyset на пару, до 15. Байтов KIc/KID в файле нет: номер keyset — это номер колонки (KIC2 → keyset 2), а ниббл алгоритма определяется размером ключа — 8 байт DES, 24 байта 3DES3, а для 16 байт — выбором в предпросмотре: 3DES2 (по умолчанию) или AES; любой другой размер пропускает этот keyset с пометкой. TAR также не берутся из файла: предпросмотр показывает таблицу TAR, которую получат импортируемые карты (по умолчанию три ролевые записи с TAR по спецификации и MSL 16; их можно править, кнопка + TAR добавляет записи), и один keyset по умолчанию, применяемый ко всем записям TAR — он обязателен для карты с несколькими keysets (ненулевой MSL должен называть keyset). Общее имя применяется ко всем импортируемым картам (пустое — берётся ICCID); режим импорта выбирает Дополнить (по умолчанию — существующие пресеты сохраняются, дубли ICCID пропускаются и перечисляются) или Заменить (хранилище сначала очищается). Предпросмотр перечисляет разобранные карты (ICCID, keysets, найденные коды) и каждую пропущенную строку/ключ с причиной — до того, как что-либо сохранено.
Импорт outfile загружает сразу много карт из outfile поставщика карт — текстового дампа инструмента персонализации: шапка с баннером и параметрами, затем разделённая пробелами строка колонок (среди токенов есть ICCID; первый токен может нести префикс вида var_out:) и по одной строке на карту. Всё до строки колонок и все неиспользуемые колонки игнорируются. Разбираются ICCID (цифры, цифры с добивочным F до чётного числа нибблов, цифры с разделителями или сырой hex EF — всё приводится к одной форме), PIN1/PIN2/PUK1/PUK2, ADM (hex-значение ключа, 4–16 hex-цифр (чётное число) — например 3632333239463337), PSK (16 байт; необязательная колонка PSKID/PSK_ID задаёт её идентификатор, по умолчанию берётся ICCID карты) и нумерованные пары ключей KICn/KIDn — по одному keyset на пару, до 15. Байтов KIc/KID в файле нет: номер keyset — это номер колонки (KIC2 → keyset 2), а ниббл алгоритма определяется размером ключа — 8 байт DES, 24 байта 3DES3, а для 16 байт — выбором в предпросмотре: 3DES2 (по умолчанию) или AES; любой другой размер пропускает этот keyset с пометкой. TAR также не берутся из файла: предпросмотр показывает таблицу TAR, которую получат импортируемые карты (по умолчанию три ролевые записи с TAR по спецификации и MSL 16; их можно править, кнопка + TAR добавляет записи), и один keyset по умолчанию, применяемый ко всем записям TAR — он обязателен для карты с несколькими keysets (ненулевой MSL должен называть keyset). Общее имя применяется ко всем импортируемым картам (пустое — берётся ICCID); режим импорта выбирает Дополнить (по умолчанию — существующие пресеты сохраняются, дубли ICCID пропускаются и перечисляются) или Заменить (хранилище сначала очищается). Предпросмотр перечисляет разобранные карты (ICCID, keysets, найденные коды) и каждую пропущенную строку/ключ с причиной — до того, как что-либо сохранено.
Правила выполняются последовательно. Редактор показывает символьное имя файла pySim (если известно) рядом с путём правила; Добавить правило добавляет правило, Сохранить сохраняет изменения. Правило файловой системы задаётся:
MF (например, MF/7F10/6F3A) или с AID ADF (например, A0000000871002/6F07).'62' — выявляет изменения FID/AID, жизненного цикла, атрибутов безопасности и проприетарных параметров) или По объектам данных — список ожиданий по объектам: каждая строка задаёт объект данных (стандартные теги с именами, включая вложенные A5/xx/C6/xx, либо произвольный тег), режим — значение (без ? совпадение по префиксу, ? маскирует полубайт: 8B + 2F06 принимает любую запись EF.ARR с таким FID, 2F06?? — 3-байтовую форму), присутствует (объект обязан быть) или отсутствует (его быть не должно) — и для значений hex для сравнения. Проверяются только перечисленные объекты; Лишние объекты данных: игнорировать/не допускать дополнительно запрещает всё неперечисленное (без учёта порядка, в отличие от побайтового режима); указание шаблона принимает его дочерние объекты, а указание дочернего объекта — родителя, неперечисленный же соседний объект по-прежнему не проходит. Профили, созданные с этим режимом с карты или из снимка, заполняются объектами записанного FCI; правило с записанным FCI и пустым списком можно заполнить из него (заполнить из записанного FCI).'62' — выявляет изменения FID/AID, жизненного цикла, атрибутов безопасности и проприетарных параметров) или По объектам данных — список ожиданий по объектам: каждая строка задаёт объект данных (стандартные теги с именами, включая вложенные A5/xx/C6/xx, либо произвольный тег), режим — значение (без ? совпадение по префиксу, ? маскирует полубайт: 8B + 2F06 принимает любую запись EF.ARR с таким FID, 2F06?? — 3-байтовую форму), присутствует (объект обязан быть) или отсутствует (его быть не должно) — и для значений hex для сравнения. Проверяются только перечисленные объекты; Лишние объекты данных: игнорировать/не допускать дополнительно запрещает всё неперечисленное (без учёта порядка, в отличие от побайтового режима); указание шаблона принимает его дочерние объекты, а указание дочернего объекта — родителя, неперечисленный же соседний объект по-прежнему не проходит. Профили, созданные с этим режимом с карты или из снимка, заполняются объектами записанного FCI, а переключение правила в этот режим заполняет их из его записанного FCI (поле сырого FCI принадлежит режиму Exact FCI — этот режим никогда не сравнивает сырые байты); правило с записанным FCI и пустым списком можно заполнить заново (заполнить из записанного FCI), а правило без FCI начинается с пустого списка для ручных строк.EF.ARR указывает ссылка атрибута безопасности ('8B') в FCI: правила указанной записи разрешаются из EF.ARR карты (или снимка) и сравниваются как множество с захваченными строками. Захватываются автоматически при создании профиля с карты или из снимка для каждого файла, чей FCI содержит ссылку (собственное содержимое EF.ARR по умолчанию пропускается — значимая проверка это правила); в редакторе захваченные правила показываются структурированными строками — операция в виде флажков битов (или командной формы RESIZE FILE / INCREASE), а каждое условие безопасности — селектором (always, never или ссылка на ключ с её использованием), с предпросмотром канонической декодированной строки, которую сравнивает проверка; «+ правило» создаёт новое (READ always), а шаблонные формы вне этого набора остаются нередактируемыми строками с возможностью удаления. Селектор «Сопоставление» выбирает сравнение: «Точное» (по умолчанию) требует полного совпадения правил карты с перечисленными строками; «Содержит» требует, чтобы каждое перечисленное правило было разрешено картой, — сравнение по операциям (каждый бит AM / командная запись, поэтому другое объединение битов в байте AM при той же политике тоже совпадёт), а не перечисленное правило не проверяется. Переключатель «Нет/Проверять» отключает проверку, не теряя правила; блок сворачивается в заголовок со счётчиком правил, а «Нет» скрывает его полностью. Файл, чей FCI потерял ссылку, не проходит проверку; ссылка, которую не удалось разрешить (нет кэша EF.ARR, запись вне диапазона), помечается как непроверяемая. При Полном FCI необязательный флажок «Игнорировать ссылку на EF.ARR в точном FCI» сравнивает FCI без значения '8B': другой номер записи больше не приводит к несовпадению, а все остальные DO по-прежнему сравниваются побайтово (смысл ссылки проверяет эта проверка).? — шаблон на один полубайт (маска без ? — совпадение префикса, например 0891 для MCC/MNC из IMSI). Для record-файлов хранится список по записям.Rules run sequentially. The editor shows the symbolic pySim name (when known) next to each rule’s path; use Add rule to append one and Save to keep the changes. A filesystem rule is defined by:
MF (e.g. MF/7F10/6F3A) or an ADF AID (e.g. A0000000871002/6F07).'62' — catching FID/AID, life-cycle status, security-attribute and proprietary-parameter changes), or Custom (per data object) — a list of per-object expectations: each row names a data object (the standard tags with their names, the nested A5/xx/C6/xx children included, or a free tag), the mode — value (no ? matches as a prefix, ? masks a nibble: 8B + 2F06 accepts any EF.ARR record of that FID, 2F06?? the 3-byte form), present (the object must exist) or absent (it must not) — and, for values, the hex to compare. Only the listed objects are checked; Extra data objects: ignore/fail additionally forbids anything unlisted (order-insensitive, unlike the byte-exact mode); listing a template accepts its children and listing a child accepts its parent, while an unlisted sibling still fails. Profiles created from a card or a snapshot with this mode are seeded with the captured FCI’s objects; a rule with a captured FCI and an empty list can be filled from it (load from the captured FCI).'62' — catching FID/AID, life-cycle status, security-attribute and proprietary-parameter changes), or Custom (per data object) — a list of per-object expectations: each row names a data object (the standard tags with their names, the nested A5/xx/C6/xx children included, or a free tag), the mode — value (no ? matches as a prefix, ? masks a nibble: 8B + 2F06 accepts any EF.ARR record of that FID, 2F06?? the 3-byte form), present (the object must exist) or absent (it must not) — and, for values, the hex to compare. Only the listed objects are checked; Extra data objects: ignore/fail additionally forbids anything unlisted (order-insensitive, unlike the byte-exact mode); listing a template accepts its children and listing a child accepts its parent, while an unlisted sibling still fails. Profiles created from a card or a snapshot with this mode are seeded with the captured FCI’s objects, and switching a rule to this mode seeds them from its captured FCI as well (the raw-FCI field belongs to the Exact FCI mode — this mode never compares the raw bytes); a rule with a captured FCI and an empty list can be refilled from it (load from the captured FCI), and a rule without one starts empty for manual rows.EF.ARR record the FCI’s security-attribute reference ('8B') points at: the referenced record’s rules are resolved from the card’s (or the snapshot’s) EF.ARR and compared as a set with the captured lines. Captured automatically when a profile is created from a card or a snapshot for every file whose FCI carries a reference (EF.ARR’s own contents are skipped by default — the rules are the meaningful check); the editor shows the captured rules as structured rows — the operation as bit checkboxes (or the RESIZE FILE / INCREASE command form) and each security condition as a select (always, never, or a key reference with its usage), with a preview line of the canonical decoded string the check compares; + rule builds a new one (READ always), and the template forms outside this subset stay raw and removable. The Match selector picks the comparison: Exact (default) requires the card’s rules to equal the listed lines; Contains requires every listed rule to be granted by the card, matched per operation (each AM bit / command entry, so a different AM grouping of the same policy still matches), and a rule not listed is not checked. The None/Check toggle disables the check without losing the rules; the block collapses to a header with the rule count and None hides it entirely. A file whose FCI lost the reference fails; a reference that cannot be resolved (no cached EF.ARR, record out of range) is reported as unverifiable. With Exact FCI, the optional Ignore the EF.ARR reference in the exact FCI checkbox compares the FCI without the '8B' value: a different record number no longer fails while every other DO is still compared byte-for-byte (the reference’s meaning is verified by this check).? is a per-nibble wildcard (a mask with no ? is a prefix match, e.g. 0891 for the IMSI MCC/MNC). Record files store a per-record list.