Найти в Дзене

GEOstrip Systems v4.0.7.0 (StripLog) экспресс аналитика.

Текущая статья не является практическим руководством или руководством к действию. Представленный материал представлен исключительно в образовательных целях и повышения информационной грамотности и несёт в себе концепцию «пища для размышления» не нарушая авторского и/или смежного права. Повторять описанные процессы не рекомендуется. Часть материала может быть полезна инженерам, которые занимаются различными вопросами и проблемами криптологии. Некоторые материалы, находящиеся в теле статьи, являются собственностью их многоуважаемых авторов, о чем указано. Статья не претендует на полноту. Некоторые значения и параметры были сознательно изменены. Попал как-то в руки экземпляр GEOstrip Systems v4.0.7.0 компании Geological Rentals and Services Inc. ("GRS"), Калгари, Альберта, Канада. Скачать указанную версию можно на сайте компании. Web-сайт http://www.grsi.ca, однако на момент написания статьи Web-ресурс был доступен фрагментально. На удивление достаточно компактная по размеру программного
Оглавление
Текущая статья не является практическим руководством или руководством к действию. Представленный материал представлен исключительно в образовательных целях и повышения информационной грамотности и несёт в себе концепцию «пища для размышления» не нарушая авторского и/или смежного права. Повторять описанные процессы не рекомендуется. Часть материала может быть полезна инженерам, которые занимаются различными вопросами и проблемами криптологии. Некоторые материалы, находящиеся в теле статьи, являются собственностью их многоуважаемых авторов, о чем указано. Статья не претендует на полноту. Некоторые значения и параметры были сознательно изменены.

Общая информация о программе

Попал как-то в руки экземпляр GEOstrip Systems v4.0.7.0 компании Geological Rentals and Services Inc. ("GRS"), Калгари, Альберта, Канада. Скачать указанную версию можно на сайте компании. Web-сайт http://www.grsi.ca, однако на момент написания статьи Web-ресурс был доступен фрагментально.

Рисунок 1. - Версия программы.
Рисунок 1. - Версия программы.
Рисунок 2. - Окно программы.
Рисунок 2. - Окно программы.

На удивление достаточно компактная по размеру программного кода софтина, с приличным, как ни странно, функционалом. В комплекте с установщиком идут демонстрационные файлы с примерами и инструкции по установке и использованию. Для нашего брата не совсем комфортно использование интерфейса из-за отсутствия русской локализации.

Рисунок 3. - Демонстрационный файл.
Рисунок 3. - Демонстрационный файл.
Рисунок 4. - Демонстрационный файл для специалиста по растворам.
Рисунок 4. - Демонстрационный файл для специалиста по растворам.
Рисунок 5. - Демонстрационный файл для геолога.
Рисунок 5. - Демонстрационный файл для геолога.

Возможности для описания процесса строительства скважины достаточно хороши. А в некоторых случаях на станциях ГТИ могут быть более чем достаточными.

Жирный плюс можно поставить этому произведению за поддержку WITS (Wellsite Information Transfer Specification) протокола. Благодаря которому можно получать в режиме реального времени данные как состояния скважины и технологического контроля, так и данные забойной телеметрии. Что в условиях дефицита кадрового потенциала очень и очень актуально.

Однако у этого программного продукта есть ограничения, для полноценного использования необходим USB-Dongle. Стоимость такого устройства в пределах 3000 ÷ 5000 USD в зависимости от набора функционала. Можно использовать программу для описания как вертикальных так и горизонтальных скважин, и в зависимости от того какие модули нужны и меняется стоимость лицензии.

Рисунок 6. - Информация о лицензиях.
Рисунок 6. - Информация о лицензиях.

При этом срок лицензирования в пределах полугода (могу ошибаться). Кроме этого необходимо время от времени подключать компьютер, с установленным USB-ключом, к сети интернет, для синхронизации с центром сертификации.

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

Наблюдение ограничений и их анализ

Строка меню

Само по себе ограничение функционала основывается только на доступности команд из пользовательского интерфейса. Сами по себе процедуры и функции описаны и работают полностью. То есть, установщик распаковывает софт без ограничений.

Посмотрев, в метод @Menus@TMenuItem@AppendTo можно обнаружить, что свойство Enable строки меню и команды Edit определяется через команду OR и имеет значение по умолчанию 3.

Рисунок 6. - Адреса параметра Enable строки меню.
Рисунок 6. - Адреса параметра Enable строки меню.

Любое нечетное слово DW в адресах 00823520h и 00823558h (с единицей в младшем разряде) блокирует доступность команд строки меню. Четные слова DW делают доступными команды строки меню, однако не обрабатывается событие OnClick. Значение равное нулю полностью делает доступные команды строки меню. Адрес 00823520h отвечает за команды меню Edit. Адрес 00823558h отпускает другие команды строки меню.

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

После отпускания строки меню, можно походить и посмотреть существующие команды.

Рисунок 7. - Отпущенная строка меню.
Рисунок 7. - Отпущенная строка меню.

Однако сами по себе процедуры и функции не вызываются.

Наличие USB-ключа

Наличие донгла "зануляется" в трёх местах. Две проверки в модуле обновления лицензии и один по программному таймеру.

Рисунок 8. - Зануление наличие донгла
Рисунок 8. - Зануление наличие донгла

Наличие долгла определяется по глобальному байту byte_8978AC. В идеале по трём указанным адресам 006BF9A7h, 006BFDB4h и 006C0117h, хорошо бы залить единицы. Однако для начальной проверки будет достаточно фикса в двух местах:

Рисунок 9. - Проверка наличия донгла
Рисунок 9. - Проверка наличия донгла

В дополнение надо симулировать наличие донгла, можно заменить данные по адресу .data:008978AC byte_8978AC db 0 с нуля на единицу. Кроме этого по адресу 6BFDCB необходимо в нижнюю часть аккумулятора загрузить единицу, то есть заменить MOV AL, db_8978AC на MOV AL, 1. Нопить не рекомендуется, хотя по умолчанию аккумулятор тут равен единице, т.к. байт наличия ключа может быть обнулён в других процедурах. Если есть желание занопить надо использовать 3 раза команду NOP, так как указанная команда MOV занимает три байта.

Байт byte_8978AC может принимать значения от 0 до 3, значения больше 1 предметно не изучались.

После этих процессов программное обеспечение будет якобы наблюдать USB-ключ.

Рисунок 10. - Симуляция наличия ключа.
Рисунок 10. - Симуляция наличия ключа.

Однако и после этой процедуры, команды из строки меню не работают.

Для отпускания команд на значения по умолчанию необходимо произвести несколько манипуляций в структуре хранения флагов, а именно по следующим адресам установить единицы:

89789C dw 1
8978A0 db 1
8978A4 dw 1
8978A8 dw 1
8978AC db 1
8978AD db 1
8978AE db 1

где DB - байт, DW - слово
Рисунок 11. - Структура массива хранения флагов.
Рисунок 11. - Структура массива хранения флагов.

Занопить команды MOV по адресам 6BF98Dh, 6BF99Bh, 6BF9A1h, 6BFBDBh, 6BFCC2h, 6BFBEEh, 6BFCC8h, 6BFD16h. А по адресам 6BF992h, 6BF9A7h, 6BF9B5h, 6BFDB4h, 6C0117h, 6BFB2Bh, 6BFB32h, 6BFF8Ah вместо пересылки нулей в команде MOV заменить на пересылку единиц. Для общего контроля состояния флагов необходимо контролировать адреса, представленные на рисунке ниже, кроме адреса 6BFF8Ah, на этом адресе сидит .text:006BFF8A mov [ebp+var_2E], 0

Рисунок 12. - Общая таблица изменения флагов.
Рисунок 12. - Общая таблица изменения флагов.
Есть варианты замены AND eax,1 (83E001) на ADD eax,1 (83C001). А XOR eax,eax (33C0) заменить на OR al,1 (0C01).

И в завершение запретить сброс ключа, заменив по адресу 6BF9D5h операцию XOR EAX, EAX на MOV AL, 1 (B001h).

Рисунок 13. - Информация о лицензии.
Рисунок 13. - Информация о лицензии.

Однако при вызовах информации о лицензии, каждый раз будет разное значение продолжительности лицензии.

Таймер

В программе находится таймер, который постоянно уменьшает время лицензии. Поправить декремент таймера лицензии можно заблокировать вызов процедуры call [EBX] FF5338h по адресу 568B3Fh, например её можно занопить тремя нопами. Если таймер не останавливать, в принципе все будет работать, однако, будет надоедать такое сообщение:

Рисунок 14. - Сообщение таймера проверки донгла.
Рисунок 14. - Сообщение таймера проверки донгла.

Вуаля, можно пробовать изучать программу дальше без ограничений. Делитесь информацией и статистикой.

Особенность

Есть проблема с самим программным обеспечением в рамках контроля параметра DecimalSeparator. Дело в том, что программное обеспечение не контролирует языковые и региональные параметры. В Канаде, например, целая и дробная часть отделяются знаком "точка", у нас - "запятая". Из-за этой особенности если открыть демонстрационные файлы и зайти в меню Setup\Options..., то получим ошибку:

Рисунок 15. - Ошибка контроля DecimalSeparator
Рисунок 15. - Ошибка контроля DecimalSeparator

Исправить данное недоразумение можно заменой значения знака "запятая" на знак "точка":

Рисунок 16. - Окно настройки локальных параметров.
Рисунок 16. - Окно настройки локальных параметров.

Сетевая активность

Для идентификации по сети используется IP адрес 198.166.45.240 на порту 58145. Однако для версии 4.0.7.0 есть специальный патч GeoStrip License Hotfix.exe. Назначение этого патча - замена указанного IP адреса на адрес Verify.Grsi.ca

Рисунок 17. - Адрес и порт лицензирования записанные в реестре.
Рисунок 17. - Адрес и порт лицензирования записанные в реестре.

На момент написания статьи указанный домен пинговался как 208.92.228.241. Хозяин домена в диапазоне 208.92.228.0 ÷ 208.92.231.255

Сам по себе патч содержит два файла:

Рисунок 18. - Содержимое командного файла.
Рисунок 18. - Содержимое командного файла.

Для того чтобы запретить для программного обеспечения стучать в сеть, можно заблокировать его на уровне брандмауэра. Например, создать командный файл (например gs.bat) с содержанием:

netsh advfirewall firewall add rule name=_GeoStripBlock dir=in action=block remoteip=198.166.45.240,208.92.228.241

netsh advfirewall firewall add rule name=_GeoStripBlock dir=out action=block remoteip=198.166.45.240,208.92.228.241

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

netsh advfirewall firewall delete rule name=_GeoStripBlock dir=in

netsh advfirewall firewall delete rule name=_GeoStripBlock dir=out

После выполнения командного файла блокирующие правила удалятся.

Драйвера

В комплекте с инсталлятором идут драйвера донгла-USB Dongle Installer.exe.

Рисунок 18. - Окно драйвера донгла.
Рисунок 18. - Окно драйвера донгла.

Замечу, что устанавливать драйвера ключей НЕ НАДО. Можно, однако, не несёт в себе ни какой пользы и смысловой нагрузки, только занимает системные ресурсы и место.

Новости

В сети "ожил" сайт компании NOV.COM на котором можно скачать последнюю инсталяшку v.4.0.8.15 (уже не доступна). Однако механизм не изменился. Краткую информацию по аналитике можно посмотреть в этой публикации.