Вход

Просмотр полной версии : Не могу ввести CHV1


Crazy_KOT
10.05.2005, 11:18
Дорое время суток, Уважаемые!!!

Есть проблема.
Для решения некоторой инженерной задачи была написана прога для чтения инфы с симки. Всё шло хорошо, пока для тестирования не попалась одна из новых симок Мегафон-Москва (то есть МТС, Пчелайн и старые Мегафоновские симки читаются на ура).

Итак, коннектимся. получаем ATR:
READ Serial2 TIMEOUT Length 17: 3B 3D 94 00 80 67 AF 03 0F 01 7C 06 0E 83 3E 9F 16

Читаем статус:
WRITE Serial2 SUCCESS Length 5: A0 F2 00 00 16
READ Serial2 SUCCESS Length 6: A0 F2 00 00 16 F2
READ Serial2 SUCCESS Length 22: 00 00 00 12 3F 00 01 00 00 00 00 00 09 11 03 18 0A 00 83 8A 83
READ Serial2 SUCCESS Length 2: 90 00
Пока всё идёт нормально.....

Далее проверяем CHV1 (он железно 0000):
WRITE Serial2 SUCCESS Length 5: A0 20 00 01 08
READ Serial2 SUCCESS Length 6: A0 20 00 01 08 20
WRITE Serial2 SUCCESS Length 8: 30 30 30 30 FF FF FF FF
READ Serial2 SUCCESS Length 8: 30 30 30 30 FF FF FF FF

... и получаем вместо кода результата операции:
READ Serial2 SUCCESS Length 2: 3B 3D
первые байты ATR!!!!!

при этом счётчик попыток делает декремент.
Заказчик в ярости, начальство грозит меня распять (я подозреваю, что раз шесть или семь).
ЛЮДИ ДОБРЫЕ!!!!! ПОМОЖИТЕ, КТО ЧЕМ МОЖЕТ!!!!!
мож кто встречался с подобной проблемой и нашёл решение?

nuken
10.05.2005, 17:33
"READ Serial2 SUCCESS Length 22: 00 00 00 12 3F 00 01 00 00 00 00 00 09 11 03 18 0A 00 83 8A 83"

Должно быть что-то типа 83 8А 83 8А, а у тебя 00 83 8A 83.

Я сам когда-то писал терминал для Смарт Карт. Со старыми картами все шло нормально, а вот с новыми не всегда. Все дело было в настройке СОМ порта. Для старых нужно было ставить инверсную передачу байт, четность. Для новых все шло прямо (direct) & нечетность.
Эталоном может служить WinExplorer. Проверь с него, тогда будет все ясно.
Пиши результаты - помогу.

З. Ы. А другие карты от Мегафон-Москва как себя ведут? Может именно эта глючная. :wink:

Crazy_KOT
10.05.2005, 17:39
Это на одной карте только или на конкретном типе, т.е. новые мегафон?
такой трабл нвстретился на 3х мелофонофсих симках

Crazy_KOT
10.05.2005, 17:54
Эталоном может служить WinExplorer. Проверь с него, тогда будет все ясно.

блин. с ним ещё разбирацца нада :(

PIC-ador
10.05.2005, 20:49
READ Serial2 SUCCESS Length 22: 00 00 00 12 3F 00 01 00 00 00 00 00 09 11 03 18 0A 00 83 8A 83
Ну, и где тут 22 байта?
Однозначно: проблемы с портом (вернее с программой), а никак не с картой.

nuken
11.05.2005, 09:33
Эталоном может служить WinExplorer. Проверь с него, тогда будет все ясно.

блин. с ним ещё разбирацца нада :(

Зайди на www.sc-research.hut1.ru в раздел программ и статей. Там все написано.

Crazy_KOT
11.05.2005, 10:43
2PIC-ador:
на самом деле 22 байта. То что я выложил - глюк отображения в PortMonitor-е (22-й байт 0х8А как раз - это к nuken-у).
Раз симка нормально работает в телефоне, то проблема действительно в программе и не только в моей - симскан и ваш хвалёный Воронскан имеет тот же глюк при проверке пина на данной симке.

2 nuken:
твоё предположение по поводу настроек порта было бы справедливо, если б симка ваще отазывалась бы апчацца с моей прогой. Дело в том, что все команды, кроме проверки пина, прохдят нормально, в моём первом посте это STATUS, а также SELECT, READ BINARY/RECORD на тех файлах, доступ к которым не требует пина (EFICCID, EFPhase, EFSPN например).

PIC-ador
11.05.2005, 11:48
Ну, а если Кардиналом, ручками, вводом соотв. APDU?

nuken
11.05.2005, 12:33
2PIC-ador:
на самом деле 22 байта. То что я выложил - глюк отображения в PortMonitor-е (22-й байт 0х8А как раз - это к nuken-у).
Раз симка нормально работает в телефоне, то проблема действительно в программе и не только в моей - симскан и ваш хвалёный Воронскан имеет тот же глюк при проверке пина на данной симке.

2 nuken:
твоё предположение по поводу настроек порта было бы справедливо, если б симка ваще отазывалась бы апчацца с моей прогой. Дело в том, что все команды, кроме проверки пина, прохдят нормально, в моём первом посте это STATUS, а также SELECT, READ BINARY/RECORD на тех файлах, доступ к которым не требует пина (EFICCID, EFPhase, EFSPN например).

Проверь работу с картой из признанных терминалов (WinExplorer, CARDinal-terminal). Иначе сказать ничего точно не смогу, так как карта у тебя... надо проверять, а не строить догадки. Если из WinExplorer будешь посылать эти АПДУ и получать нормальные ответы, то проблема с прогой.

Wert
11.05.2005, 12:42
Еще попробуй WtS. У него свой метод работы с портом.

Crazy_KOT
11.05.2005, 16:33
весь процесс начинает походить на шаманство........
вынул симку из юсб-ридера, вставил в комовый - работает!!!! :P
вставил обратно в юсбишный - работает!!!! :D аш 2 раза!!!! а потом, на 3й раз, не работает опять.... :evil:
код не менял, даже в бубен не стучал....

с винекспорером я наверна с настройками недопонял (крыша уехала в Ниццу отдыхать, а я остался)
вопчем вот:
скрипт

A0 F2 00 00 16 R06 R18
A0 20 00 01 08 R06 30 30 30 30 FF FF FF FF R0A

результат
Trying to reset card...
Reset Successful

RX ATR : 23 43 D6 FF FE 19 0A 3F 0F 7F C1 9F 8F 3E 83 06 97
TX Data : A0 F2 00 00 16
RX Data : A0 F2 00 00 16

Timeout Reading Data From Card - 6 Bytes Requested, 5 Bytes Read, Script Aborted

пипец. ни одной мысли больше нет

Константин
11.05.2005, 16:57
потом, на 3й раз, не работает опять...
Сталкивался. В итоге юсбишный ушёл нах*й.
Ком - рулит ;-)

Crazy_KOT
11.05.2005, 17:05
рульить-та он рулит.
а вот как заказчику объяснить, штоп он засунул юсб-ридер куда подальше/поглубже.... хоцца ему етава девайса. грят, на ноутах компорты уже большая редость, а им приспичело ноуты юзать

nuken
11.05.2005, 17:38
Trying to reset card...
Reset Successful

RX ATR : 23 43 D6 FF FE 19 0A 3F 0F 7F C1 9F 8F 3E 83 06 97
TX Data : A0 F2 00 00 16
RX Data : A0 F2 00 00 16

Посмотри на АТР!!! Он совсем не такой, как в твоем первом посте. Настрой порт в WinExplorer именно под эту карту.

Crazy_KOT
11.05.2005, 17:50
Уважаемый!

разница тока direct или invers.
в винесплопере я пробовал итак и так - монопенисуально.

1й пост - директ
Предпредпоследний - инверс.

А вот директ в вынэксплопере:

Trying to reset card...
Reset Successful

RX ATR : 3B 3D 94 00 80 67 AF 03 0F 01 7C 06 0E 83 3E 9F 16
TX Data : A0 F2 00 00 16
RX Data : A0 F2 00 00 16

Timeout Reading Data From Card - 6 Bytes Requested, 5 Bytes Read, Script Aborted

nuken
12.05.2005, 09:53
Уважаемый!

разница тока direct или invers.
в винесплопере я пробовал итак и так - монопенисуально.

1й пост - директ
Предпредпоследний - инверс.

А вот директ в вынэксплопере:

Trying to reset card...
Reset Successful

RX ATR : 3B 3D 94 00 80 67 AF 03 0F 01 7C 06 0E 83 3E 9F 16
TX Data : A0 F2 00 00 16
RX Data : A0 F2 00 00 16

Timeout Reading Data From Card - 6 Bytes Requested, 5 Bytes Read, Script Aborted

Проси 5 байт, а не 6. И можно использовать A0 C0 00 00 XX (если не ошибаюсь).
Ты пробовал менять четность/нечетность/... и количесвто бит (1, 1,5, 2)?

Crazy_KOT
12.05.2005, 15:13
Проси 5 байт, а не 6. И можно использовать A0 C0 00 00 XX (если не ошибаюсь).
Ты пробовал менять четность/нечетность/... и количесвто бит (1, 1,5, 2)?

можно попросить 5 байт, карта их с радостью отдаст. тока после придётся просить ещё один байт (INS) , а вот тут АВОТХУЙ.
четность/нечетность и прочую дребедень ессна я пробовал менять - ПОХ.

Crazy_KOT
12.05.2005, 15:38
вобчем так.
эксперименты показали:
1. Команда "A0 20 00 01 08 30 30 30 30 FF FF FF FF" корректно проходит примерно 1 раз из 10 (оставшиеся 9 раз вылазит вместо 90 00 эти дурацкие 3B 3D).
2. Если после этого сделать
PurgeComm(hCom,PURGE_RXCLEAR);
PurgeComm(hCom,PURGE_TXCLEAR);
и считать статус карты, то оказывается, что счётчик попыток ввода пина НЕ меняется!!!!!!

ТАКИМ ОБРАЗОМ появился путь решения проблемы "Через жопу":
в цикле фигачить

ПРОВЕРКА ПИНА
__если ответ 90 00 (или 98 04 или 98 40 :lol: ) , то ЗАШИБИСЬ
__если 3B 3D, то PurgeComm, СТАТУС и опять на проверку.

вроде работает (тока медленно).

кста, пункт 1 показывает, что проблема скорее в симке, чем в проге

Crazy_KOT
12.05.2005, 15:40
...
2. Если после этого сделать
...
В смысле после 3B 3D

nuken
12.05.2005, 16:43
Это на одной карте только или на конкретном типе, т.е. новые мегафон?
такой трабл нвстретился на 3х мелофонофсих симках

Это партия симок такая или как? И почему тогда в телефонах нормально работает?

Crazy_KOT
12.05.2005, 16:58
может и партия... я при тестах брал симки у всех своих знакомых....

а вот почему в телефонах работает - хз. знал бы прикуп - не задавал бы на форуме глупых вопросов :))))

кста, а может всё дело не в проге и не в симке, а в железке...

nuken
13.05.2005, 10:07
может и партия... я при тестах брал симки у всех своих знакомых....

а вот почему в телефонах работает - хз. знал бы прикуп - не задавал бы на форуме глупых вопросов :))))

кста, а может всё дело не в проге и не в симке, а в железке...

Это были вопросы риторического характера :D

А какая железка?

Crazy_KOT
13.05.2005, 12:54
точно-риторические ;)

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

Crazy_KOT
13.05.2005, 13:08
Еще попробуй WtS. У него свой метод работы с портом.
я п поробовал, тока я его в Даунлоад не вижу.
:shock:
хде взять?

Crazy_KOT
13.05.2005, 13:21
сорри, сафсем слепой, не там искал ;)
пасмотрим......

Crazy_KOT
13.05.2005, 13:57
ну вопчем, запускать не стал, ибо заломало на линуксовую машину переться.
а вот сам скрипт изучил... интересно, и какой это свой метод работы с комом там? ничево новава и интереснава (на мой взгляд) (без обид, ладна :))

Crazy_KOT
13.05.2005, 14:27
ага... добрался в ветке про ВертСкан до масдайной версии.....
Результат:
пишем А0 20 00 01 08
читаем А0 20 00 01 08
читаем 20
ДАЛЕЕ туда-сюда CHV1
читаем 3B 3D

я вопчем то и не сомневался.

nuken
13.05.2005, 15:32
Такое впечатление, что когда карта проверяет ПИН и делает запись в файл, где ПИН лежит, то ей не хватает напруги и она ресетится :)
Устройство берет питание откуда? От порта или как? Хотя должно хватать... не стоят же там электронные лампы ;)

Crazy_KOT
13.05.2005, 15:42
от порта....
а может это маза - про питалово......
надо будет апмазгавать

Сайт управляется системой uCoz