Главная » Статьи » Сигнализация » Пожарная сигнализация
АИУ обзор

Avtor+

АИУ для ИСБ версий 3.х - 5.х обзор.
 
  Часть 1
 Модуль АИУ как известно предназначен для подключения к компьютеру (ПЦН) с установленным программным обеспечением Интегрированная Система Безопасности (ИСБ)  магистральной линии связи оборудования поддерживаемого этим софтом (АСПС "Бирюза", КСО, ВПИУ-М.... ). При установке специализированных драйверов на модуль он определяется в операционной системе Windows как два COM порта. Один КОМпорт служит для реализации основной функции преобразователя интерфейса USB - RS485. Второй порт служит для передачи уникального идентификационного номера АИУ и в зависимости от исполнения, для управления выходами или приема кода ключа от считывателя. 

Внешний вид АИУ v1
Внешний вид АИУ v2

По поводу функции преобразователя интерфейса USB-RS485 говорить особо нечего кроме того что модуль АИУ справляется с ней в общем-то не плохо и имеет гальваническую развязку. Правда частенько при работе в составе АСПС "Бирюза" и ИСБ версий 3.x-5.х связь с оборудованием почему-то теряется и не восстанавливается до перезагрузки операционной системы. Причину этого феномена мне пока установить не удалось, поэтому спишем этот дефект пока на саму операционную систему :-).  
 Намного интересней функция хранения (и передачи) индивидуального номера (ID). В старых версиях ИСБ 777 (имеются ввиду версии ниже 7-й) этот номер должен соответствовать зашифрованному файлу-ключу для того чтобы оборудование нормально работало совместно с программным обеспечением. Так осуществлялась защита использования ПО в старых версиях. В версиях ИСБ выше 7-й, если я не ошибаюсь, этот индивидуальный номер не используется, а для защиты ПО существует более совершенный электронный USB ключ.
  Интерес к этой функции защиты у меня возник когда я собрал в нашей лаборатории Oruki.ru небольшой стенд с АСПС "Бирюза" и начал с ним работать. Поскольку к сожалению у Ровалэнта пока нет софта для тестирования модулей подключаемых в объектовую линию связи (АБ, ББП, ВПИУ....) проверить такое оборудование (например перед отправкой в ремонт или после ремонта) можно только в составе АСПС.
Давайте попробуем разобраться как работает эта защита и насколько сложно ее преодолеть.
Поскольку открытой информации по работе этого устройства нет, то можно лиши предположить что в памяти микроконтроллера записан некий код (возможно тот, что отображается в АРМах v3.х-5.х при их работе)
 этот код считывается через виртуальный COM порт программой (server.exe) и сравнивается с ключом находящимся в файле key.reg в соответствии с неким секретным алгоритмом. Если соответствие не обнаружено связь с магистральным оборудованием рвется и выдается сообщение об ошибке.
Проверяем нашу версию. Для начала устанавливаем на компьютер с работающей системой любую программу позволяющую считывать обмен информации по COMпорту (сниффер). Настраиваем его на порт по которому идет опрос ID модуля АИУ, запускаем server.exe и смотрим лог.
Похоже частично предположения подтвердились. Компьютер при запуске сервера, при обращении к АСОДу и просто в процессе работы отправляет запросы а модуль АИУ отвечает. Передача информации происходит на скорости 57600 бит/сек с двумя стоповыми битами и без бита четности.
 За  все время я наблюдал только три варианта запроса:
вар1    00 e6 02 fe 00 08 02 08 07 01 08 00
вар2    00 e6 02 fe 00 08 02 08 00 06 06 00
вар3    00 e6 02 fe 00 08 02 08 06 01 07 00
 и два варианта ответа:
вар1    00 e6 02 00 fe 08 09 0f 07 01  f7 0a 01 47 82 1b 00 ee 01
вар2    00 e6 02 00 fe 08 09 0f 06 01 00 00 00 00 00 00 00 07 00.
 
В составе первого варианта ответа есть тот самый номер (выделен желтым), отображаемый в окне АРМа и он постоянный. Информации похожей на ту что в файле key.reg я не наблюдал поэтому вероятно этот код высчитывается программой по какому либо алгоритму.

  Исходя из вышеизложенного вырисовывается четыре варианта заставить программу работать:
- Купить к имеющемуся модулю АИУ необходимый файл-ключ (Для честного человека)
-Вычислить алгоритм расчета файла-ключа и произвести расчет в соответствии с ID имеющейся АИУшки. (Для хорошего математика)
 -Подкорректировать код программы server.exe исключив проверку (Для хорошего программиста)
 -Собрать на микроконтроллере дубликат АИУ выдающее в ком порт необходимую комбинацию кода. Код и файл-ключ можно спросить у знакомого наладчика ОПС. (Для электронщика).

......

Часть 2

К сожалению, живого интереса к изготовлению своими руками ключа для старой (однаго еще широко используемой) версии АРМ, на странице сайта не наблюдалось, поэтому тема заглохла. Однако попытка дублирования ключа, заложенного в модуле АИУ, всеже была реализована. Дубликат на основе простейшего микроконтроллера PIC10F222 (кстати взятого из дымового пожарного извещателя ИП212-5му) изготовлен и около года уже работает на тестовом стенде АСПС "Бирюза" в лаборатории oruki.ru. Сразу скажу, что выбор микроконтроллера далеко не самый удачный, прежде всего из-за использования внутреннего генератора имеющего большие разбежки параметров в разных экземплярах чипов. Поэтому легко-повторяемой это схему не назовешь. Если кто захочет попытаться повторить ее, понадобится экспериментальным путем менять байт "Коррекции осцилятора" (в прошивке), чтобы получить на выходе сигнал необходимой длительности.
Другими словами если мне понадобится самому сделать еще один дубликат ключа АИУ, я не буду использовать этот вариант несмотря на его работоспособность и дешевизну а придумаю новый на базе микроконтроллера с кварцевой стабилизацией частоты тактового генератора а еще лучше имеющего на борту готовый интерфейс UART. А смысл программы заключается в том чтобы в ответ на один из запросов (см. выше) со стороны компьютера, микроконтроллер отвечал комбинацией с кодом имеющегося у вас файла ключа.
   Тем не менее, рабочий ключ собран своими руками и возможно будет комуто интересен, поэтому немного подробней о конструкции:

Схема. Схема очень проста, кроме самого микроконтроллера имеет преобразователь USB-UART (в данном случае на PL2303). Светодиод будет мигать в момент ответа компьютеру, если микроконтроллер распознал код запроса. Нумерация ножек в зависимости от типа корпуса (шестиножка или восьминожка).
 
Прошивка.
На рисунке выделены фрагменты кода которые нужно изменить под свои нужды. Контрольная сумма (последние два байта) вычисляется простым суммированием байт ответа начиная с 9-го. т.е. если по примеру в статье: 07+01+f7+0a+01+47+82+1b+00= 1ee (01ee), хотя если мне не изменяет память АРМ это значение не проверяет. Чип должен работать от внутреннего генератора 8Мгц, соответственно байты конфигурации я указывал 0FEB.

Внешний вид. Файлы проекта.
    
Часть 3

Попалась мне в руки ненужная "железяка" на плате которой установлен Микрочиповский микроконтроллер PIC16F73. Зная что этот чип имеет на своем борту аппаратную поддержку интерфейса UART мне захотелось повторить проект АИУ ключа на его базе. В общем особых отличий от предыдущего варианта в алгоритме программы тут нет. Отличия заключаются лишь в исполнении алгоритма, т.е. тактовая частота микроконтроллера стабилизируется уже внешним кварцевым резонатором а протокол последовательной передачи данных реализован за счет аппаратной поддержки этого интерфейса. Несмотря на  то, что частота кварца (взят тот что был под рукой) не оптимальна да и код программы подозреваю написан не совсем "ровно", девайс работает устойчиво и повторяемость его очень хорошая (только меняй в программе нужный код ключа и контрольную сумму).
Цель статьи не стоит в том чтобы выложить общественности рабочую версию ключа которую можно использовать в коммерческих целях нанося урон правообладателю, поэтому именно по по причине легкой повторяемости конструкции я внес в код некоторое ограничение на его использование, после истечения этого лимита (в дежурном режиме это более суток, но может существенно сокращаться при интенсивном опросе ключа) загорятся постоянным светом оба светодиода и ключ перестанет функционировать до его перезагрузки (кратковременного снятия питания с контроллера) . Таким образом такой изготовленный своими руками ключ можно использовать лишь для проверки работы АРМа (до 6-й версии) и оборудования в условиях например лаборатории.
 Схема самодельного АИУ состоит из микроконтроллера PIC16F73, кварцевого резонатора на 10 МГц, любого преобразователя USB - UART.
Работает схема так. После подачи питания начинает мигать зеленый светодиод показывая что схема "живая" , когда ключ распознает запрос от программы и отвечает на него - кратковременно мигает красный светодиод. Если поступает некорректный запрос - красный светодиод инвертирует свое состояние. Если исчерпывается лимит ключа - загораются оба светодиода и не гаснут.


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

Модуль АИУ для АСПС Бирюза схема

 Ниже прикрепляю непосредственно сам файл прошивки, заливал в контроллер программатором PICKit2 и PICKit3, кстати в сети нашел программку которая работает с обеими этими программаторами (тоже положу в архив).
 
Файлы проекта.
..............


P.S. Писал все по памяти, возможно в чем-то ошибся не судите строго.
 Материал статьи изложен исключительно из познавательных соображений, не содержит конкретных кодов ключей и другой информации нарушающей чьи либо права. 
 
 


Категория: Пожарная сигнализация | Добавил: yuriks75 http://oruki.ru (27.11.2015)
Просмотров: 3708 | Комментарии: 17 | Рейтинг: 0.0/0
Понравилась статья ? Нажми чтобы посоветовать в гугле. >>
Всего комментариев: 171-10 11-12
0
17  
Немного дополнил статью.

16  
Совсем забыл отписаться. Всё заработало. Контроллер оказался исправным, это PICKIT глюканул перезалил ему ОС. В моём случае контрольная сумма обязательна версия ПО 5.40 с другими не пробывал. Кварца конечно ой как не хватает, в руке подержал и ответы от МК искажаются.

15  
В 5й версии АРМ-ДО тоже есть птичка "АПКП 5й версии" - спасибо не заметил. Мне необходимо подключить АПКП 5-й версии к старой ВПУ-40ПЦН и возникло 2 проблемы:
1) Лицензия есть только на 4 АПКП, а нужно подключить 5й (ну это решается установкой 3й версии АРМ-ДО).
2) АРМ-ДО 3й версии официально не поддерживает АПКП 5-й версии.
В связи с этим вопрос. Может кто-нибудь пробовал подключить АПКП 5-й версии к АРМ-ДО 3й версии? Разумеется если количество МАШ будет не более 2х.

11  
А не проще ли использовать версию программы 3.0, в которой есть ошибка - она работает с любыми ключами с правильной контрольной суммой и с любым АИУ?

0
12  
Да конечно, проще и наверно правильнее если стоит такая задача и устраивает функционал 3-й версии. Однако например я узнал о такой уязвимости только из предыдущего вашего комментария. Кроме этого исследование алгоритма работы ключа проводилась скорее из спортивного интереса и возможно информация изложенная в статье будет интересна некоторым посетителям сайта.

13  
Ну про спортивный интерес - это понятно, но актуальная на сегодня версия 7х имеет совершенно другой HASP ключ-флэшку, взломать который очень сложно. А версии до 6х включительно не имеют, на мой взгляд, существенных отличий. По крайней мере АПКП 5 поколения с 8-ю кольцевыми шлейфами они не поддерживают.

0
14  
На счет ключа седьмой версии - задача конечно сложнее однако как показывает опыт Болида, тем или иным способом обходится при сильной необходимости любая защита.
А вот по поводу отличий версий 3-5-6 вынужден не согласится (либо я не правильно понял ваш комментарий). Например у АРМа начиная с версии 5.2 появилась возможность установки условий в скиптах, а АПКП v5 c 8-ю МАШками успешно работают с АРМ v6 (версии ниже не пробовал), там еще в конфигураторе галка ставится в зависимомти от версии АПКП.

10  
Спасибо за пояснение. К сожалению пока проверить не могу т.к. микроконтроллер пишет и читает только четыре строки кода, похоже заглянул к нему пушной зверёк. Пока в поисках... Мне очень редко попадаются 5МУ с этим МК. Из десятка неисправных в одном только нашёл. Если задумаете делать на МК с кварцем, обратите внимание на Ардуино нано, стоит не дорого, на борту всё есть и программатор не нужен.

8  
С родными ключами работает. Прошивка ваша (сам писать не умею да и PICи недолюбливал всегда) key_AIU.hex с моим OSCCAL и ключём, биты конфигурации как в статье. Светодиод моргает при запросе. Я скорее всего не правильно считаю контрольную сумму т.к. по вашему примеру получаю 1ee у вас 1ec. На скринах у вас подчёркнуто сиреневым два по два, а контрольная три символа. Как правильно записать в контроллер сумму например ваш 1ec? Так или иначе спасибо, очень познавательно.
Что то при ответе на комментарий вылазит окошко в котором не могу ничего написать и отправить. Браузер Chrome.

0
9  
Вы первый читатель который серьезно углубился в суть этой статьи и задает конкретные вопросы, за что вам спасибо. Тема слегка подзабытая из-за отсутствия интереса. Мной было изготовлено всего два ключа, один из них по сей день работает в моей лаборатории. При изготовлении второго помню не мог попасть в нужные временные рамки подбором осцилятора пока не заменил ПИК на другой экземпляр, но это было видно в терминале, ответ ключа не совпадал с требуемым или совпадал через раз, поэтому если придется еще повторять это устройство то перепишу под другой ПИК с кварцем и наверно аппаратным UART. Если в вашем случае терминал или снифер показывает корректный стабильный ответ- все должно работать.
Теперь по поводу контрольной суммы: в статье действительно была описка , результат
07+01+f7+0a+01+47+82+1b+00= 1ee соответственно в контрольной сумме указываем сначала младший байт EE , затем старший 01.
Более наглядно на примере в картинке с кодом (там ошибки нет):
07+01+44+ce+52+99+4b+12+20= 282 или (0282) соответственно затем прописываем сначала младший байт 82 затем старший 02.

6  
у меня не заработало. Сниффером вижу запросы как у вас в статье и ответы с моим ключём. Однако сервер ругается на не корректный номер, в АРМе FF-ки. Может контрольную сумму всё таки нужно высчитывать, тогда как правильно это сделать ?

0
7  
Дак в статье-ж написано:
"Контрольная сумма (последние два байта) вычисляется простым суммированием байт ответа начиная с 9-го. т.е. если по примеру в статье: 07+01+f7+0a+01+47+82+1b+00= 1ec"
Опишите подробней проблему. Прошивку контроллера брали из примера или писали сами ? С родным ключом (АИУ) работает ?

0
5  
Выложил старые наработки (Часть2), однако еще раз отмечу что вариант ключа на контроллере без кварцевой стабилизации не самый простой для повторения.

4  
Нет никакой необходимости взлома. В версии программы 3.0 есть ошибка - она работает с любыми ключами с правильной контрольной суммой и с любым АИУ. Для получения этой версии пишите ЛС.
В файле asod.ini нужно удалить строку key_line=3.
P.S.Уважаемая компания Ровалэнт. Я уважаю ваше авторское право на программу, но мне очень трудно объяснить заказчику, почему он должен при установке дополнительного АПКП платить за новое ВПУ-40-ПЦН 2500 $ (старые не работают с АРМ ДО Сеть версии 7) а также 500 $ за ключ активации для расширения базового П/О, а также за мои услуги по конвертации графических схем из старой версии программы в новую.

0
3  
Сделать дубликат ключа АИУ для АРМ ТДО v.5.52 не составило труда даже на базе простейшего микроконтроллера PIC10F222 с встроенным задающим генератором 8Мгц, появится время - выложу результат.

1-10 11-12
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Возможно вас заинтересует : 

Обзор дымового пожарного извещателя ИП212-5м (10886)[Пожарная сигнализация]
Программатор для адресных пожарных модулей своими руками (8091)[Системы ОПС]
Беспроводное зарядное устройство для мыши своими руками (27782)[Может пригодится]
Программатор для приборов серии A-6, A-16... (24525)[Пожарная сигнализация]
Как запрограммировать неизвестный китайский контроллер доступа к электронному замку (11614)[Системы ОПС]
Простой светодиодный фонарик своими руками (33565)[Может пригодится]
Инструкция по программированию ПКП АСПС "Эстафета" Ч.2 (5869)[Пожарная сигнализация]
Видеонаблюдение на основе КодосВидео своими руками (34941)[Может пригодится]
Почтовый ящик своими руками (8080)


 
             Copyright http://oruki.ru/ 2012 -©- 2017 | Хостинг от uCoz