Как расшифровать коды ключей Proximity в базе Орион Про Болид

В этом посте я хочу поделиться с вами информацией о том как расшифровать коды ключей Proximity карт в базе Орион Про Болид. Может возникнуть вопрос: “Зачем это нужно, ведь есть же генератор отчетов который предоставляет данную информацию?”. Возможно я странный человек, но я считаю что пользоваться разного рода надстройками над СУБД если имеешь опыт работы с нею это несколько странно. Работать с базой напрямую гораздо интереснее и веселее чем изучать чужие костыли. Коды карточек PROXIMITY в базе хранятся в базе в таблице pMark с столбце CodeP. Зачем-то разработчики ПО Орион Про их зашифровали… Но на наше счастье не очень серьезно. О связях между таблицами в БД Орион Про я уже делал короткую заметку в посте Связи между таблицами в базе данных MS SQL Orion Pro Болид, поэтому сейчас на этом останавливаться не будем. Вообще если кого-то интересует аналитика – пишите в комментах, присылайте дампы базы – будем посмотреть.
У меня есть файл в формате excel – экспорт открытых ключей из базы Орион Про. На его примере мы посмотрим как легко расшифровываются ключи карточек. Вот скрин:

Дамп ключей из БД Орион Про
Дамп ключей из БД Орион Про в формате Excel

Возьмем в работу 3х человек, да простят меня эти люди. Участниками эксперимента назначим номера 10239 Меднов, 10297 Дербенева и 10308 Лапынин.
Теперь напишем простенький запрос к БД:

  1. SELECT 
  2. TabNumber
  3. ,Name
  4. ,FirstName
  5. ,MidName
  6. ,CodeP
  7.  FROM pList INNER JOIN pMark 
  8. ON pList.ID = pMark.Owner
  9. WHERE pList.TabNumber IN ('10239', '10297', '10308')

На скрине виден результат. Ключи, как мы видим спрятаны.

Запрос к БД Орион Про для получения кодов ключей
Запрос к БД Орион Про для получения кодов ключей

Давайте скопируем крокозябры из столбца codeP и вставим в какой-нибудь двоичный редактор. Что получилось – видно на скринах ниже:

Код ключа из базы Орион Про в редакторе WinHex
Код ключа из базы Орион Про в редакторе WinHex

Код ключа из базы Орион Про в редакторе WinHex
Код ключа из базы Орион Про в редакторе WinHex
Таким образом мы выяснили что ключ представляет 12 байтное слово. На самом деле это кодировка ASCII. Теперь давайте для наглядности впишем полученные данные в нашу таблицу. Вот что получается:
Сырой код ключа из БД Орион Про
Сырой код ключа из БД Орион Про

Прелестно… Теперь откинем первый байт и заменим все пары байт FE01 на 00, вот что получилось:

Ну и напоследок: осталось переписать байты задом наперед и ключик наш! Делаем.

Расшифрованный ключ карты Proximity из БД Орион Про
Расшифрованный ключ карты Proximity из БД Орион Про

Вот собственно и все шифрование, далее осталось только написать функцию которая будет делать это на лету и можно писать любые запросы.
Если есть вопросы – задавайте в комментариях. Пожалуйста оценивайте статью.

Оцените пожалуйста статью:

ПечальноТак себеНе плохоХорошоОтличная статья! (Пока оценок нет)
Загрузка...

4 Replies to “Как расшифровать коды ключей Proximity в базе Орион Про Болид

  1. Эта схема преобразования старая как мир, но работает не во всех версиях Орион ПРО.
    Сейчас пытаюсь реверсировать для версии 1.20.2 и пока без результата.

    Вот пара примеров карт и базы:
    Карта: 62 00 04 00 AF CE DE 01
    в Базе: 08 01 D0 AE D0 9E D0 87 D1 8E 01 04 D1 8E 01 62

    Карта: 8A 00 00 00 34 7C FA 01
    в Базе: 08 01 D1 8A 7C 34 D1 8E 01 D1 8E 01 D1 8E 01 D0 89

    1. Выложите еще пару примеров. По двум картам сложно что-то анализировать.

      1. 81d18a7c34d18e1d18e1d18e1d089
        15003900347CFA01

        81d18e45d48d18e1d18e1d18e1d0bb
        DA004600485D5C01

        817b5b59d18e1d18e1d18e1d183
        8F004A00595B7B01

        81d18fd09ed087d18e14d18e1d0b3
        E3000400AFCEFF01

        8131d59d18e14ad18e1d093
        C3004A00591D0301

  2. 81d18a7c34d18e1d18e1d18e1d089
    15003900347CFA01

    81d18e45d48d18e1d18e1d18e1d0bb
    DA004600485D5C01

    817b5b59d18e1d18e1d18e1d183
    8F004A00595B7B01

    81d18fd09ed087d18e14d18e1d0b3
    E3000400AFCEFF01

    8131d59d18e14ad18e1d093
    C3004A00591D0301

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *