Показать сообщение отдельно

  #4  
Старый 22.02.2006, 13:41
novichok
Banned
Регистрация: 03.12.2005
Сообщений: 449
Провел на форуме:
547725

Репутация: 302
По умолчанию

В данном случае был установлен нормальный режим работы (первый байт равен 00) без дополнительных параметров (байты 2 и 3 равны FF).

Файл SIM servicу table отображает список сервисов, указывая какие из них доступны и активны. За дополнительной информацией обращайтесь к GSM 11.11. Вкратце - каждый байт отвечает за определенные четыре сервиса, указывая, который из них реализуется самой картой и активен. Я только заполню необходимые значения -

Cla Ins P1 P2 P3/Lc Le Data In
A0
A4
00
00
02

6F 38





Отет должен быть 9F XX.

Обновляем содержимое -

Cla Ins P1 P2 P3/Lc Le Data In
A0
В6
00
00
04

FF 3F FF 0F





И как всегда должны получить ответ карты - 90 00.

Последний файл поддиректории GSM, с которым мы будем возиться - Broadcast control channels. Этот файл длиной 16 байт. Заполним его значениями по умолчанию -

Cla Ins P1 P2 P3/Lc Le Data In
A0
A4
00
00
02

6F 74





Отет должен быть 9F XX.

Обновляем содержимое -

Cla Ins P1 P2 P3/Lc Le Data In
A0
В6
00
00
10

FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF





И как всегда должны получить ответ карты - 90 00.

Перейдем в поддиректорию Telecom -

Cla Ins P1 P2 P3/Lc Le Data In
A0
A4
00
00
02

7F 10





Отет должен быть 9F XX.
Здесь нас интересует только файл SMSP (Short message service parameters). Файл состоит из одной или нескольких записей, содержащих набор SMS параметров. Первая запись (возможно единственная) содержит набор параметров по умолчанию. Структура записи -

Byte Parameter/Description Mandatory-Optional Length
1-Y
Alpha-Identifier
O
Y

Y+1
Parameter Indicators
M
1

Y+2 ... Y+13
TP-Destination Address
M
12

Y+14 ... Y+25
TS-Service Centre Address
M
12

Y+26
TP-Protocol Identifier
M
1

Y+27
TP-Data Coding Scheme
M
1

Y+28
TP-Validity Period
M
1





Колонка M/O таблицы указывается на обязательное/опциональное присутствие поля в записи (M - mandatory, O - optional). Единственное необязательное поле - альфа-идентификатор. Значение длины Y может быть равно нулю.

Следующее поле - индикатор параметров длиной 1 байт. Индикатор является битовой маской, указывающей наличие/отсутсвие следующих пяти полей в записи (если бит установлен в 1 - параметр присутствует) -

Byte Parameter/Description Mandatory-Optional Length
1
TP-Destination Address



2
TS-Service Centre Address



3
TP-Protocol Identifier



4
TP-Data Coding Scheme



5
TP-Validity Period



6
зарезервирован, установлен в 1



7
зарезервирован, установлен в 1



8
зарезервирован, установлен в 1







Поле Destination Address оставляем незаполненным (поле заполняется непосредственно при отправке SMS-сообщения).

Поле Service Centre Address заполняется специфичным для конкретного оператора значением - номером сервис центра. Предположим, что номер сервис центра нашего оператора +38050-123-45-67 ;-). В таком случае поле TS-Service Centre Address будет иметь вид:

07 91 83 50 10 32 54 76 FF FF FF FF

Первый байт (07) указывает количество байт данный, содержащихся в поле. Неиспользуемые байты заполняются значениями FF. Второй байт (91) представляет тип закодированного адреса сервис-центра (GSM 3.40 Version5.3.0:July1996 страница 33). В нашем случае он указывает, что адрес сервис-центра представлен в виде международного номера телефона (не забудьте переставить местами старшие и младшие ниблы каждого байта!).


Следующее поле - TP-Protocol Identifier. Значение этого поля установим в 00. Подробное описание формата этого поля в документе GSM 3.40 (GSM 3.40 Version5.3.0:July1996 страница 47).


Поле TP-Data Coding Scheme тоже оставим нулевым - 00 (GSM 3.38 страница 8).


Поле TP-Validity Period (GSM 3.40 Version5.3.0:July1996 страница 33) указывает период времени, в течение которого будут предприниматься попытки доставить SMS-сообщение абоненту, недоступному в сети. Значение 168 (hex: A8) соответствует двум дням.


Как уже упоминалось, файл SMSP состоит из записей, то есть его структура - linear fixed. Длина одной записи - 44 байта (hex:2C). Согласно вышеописанной структуре, первая запись в нашем случае будет выглядеть следующим образом -

4B 56 53 4D 53 30 31 FF FF FF FF FF FF FF - alpha-identifier
E1 - Parameter indicators
FF FF FF FF FF FF FF FF FF FF FF FF - TP-Destination Address
07 91 83 50 10 32 54 76 FF FF FF FF - TS-Service Centre Address
00 - TP-Protocol Identifier
00 - TP-Data Coding Scheme
A7 - TP-Validity Period
FF - RFU
FF - RFU


Теперь выполним команду Select для нашего файла -

Cla Ins P1 P2 P3/Lc Le Data In
A0
A4
00
00
02

6F 42





Ответ должен быть 9F XX.

Обновляем содержимое -

Cla Ins P1 P2 P3/Lc Le Data In
A0
DC
01
04
2C

4B 56 53 4D 53 30 31 FF FF FF FF FF FF FF E1 FF FF FF FF FF FF FF FF FF FF FF FF 07 91 83 50 10 32 54 76 FF FF FF FF 00 00 A7 FF FF





И как всегда должны получить ответ карты - 90 00.

На данном этапе инициализация SIM -карты завершена. Вставив карточку в телефон и включив писание, должны увидеть приглашение ввода пин-кода. Введите "1111" (вспомните шаг 2). Телефон должен начать поиск сети и, при условии заполнения реальными значениями соответствующих файлов, должен подключиться. Попробуйте сделать звонок ;-).


Заключение

Подведем краткий итог.

Аккумулируя опыт, изложенный в данной статье, можно легко понять, что:

GSM SIM карта - это обычная смарт-карта, соответствующая стандарту ISO-7816, но использующая в качестве класса команд значение CLA = A0
SIM-карта содержит два пароля администратора ADM0 и ADM1, открывающие почти неограниченные возможности манипуляции информацией на карточке. Если Вам изветны эти пароли, то перезаписать/изменить содержимое карточки (в том числе пин и пак-коды) уже дело одной минуты
Производители карт проводят предперсонализацию карты, то есть формируют на карте файловую систему GSM, оставляя конечному пользователю (оператору мобильной связи) внести только сетезависимые параметры
Большинство рассмотренный в статье параметров могут быть считаны с реальных SIM-карт, для чего необходимо знать всего-лишь пин-код этой карты
Наверное единственный параметр, который может быть получен только от оператора - Ki (пароль доступа в сеть ;-) )

О том, как изготовить контейнер для работы с действующим SIM-модулем и стандартным кард ридером читайте здесь .

В заключении хочу сказть, что используя софтину и пиремы описанные в этой статье можно разблокировать любую сим карту. Ниже пущу сыллочки на софт для работы с симкой.