как ломануть 1C 8.3 for Linux
X

Привет дорогой друг

Наш сайт существует и развиваетется за счет рекламы. Пожалуйста, отключите блокировку рекламы AdBlock или подобное, для нашего сайта. Спасибо!
Показано с 1 по 10 из 1278

Комбинированный просмотр

  1. #1
    Помогает людям
    Аватар для HPDX2300
    Регистрация
    18.04.2018
    Адрес
    HP-Compaq DX2300 microtower PC
    Сообщений
    269
    Сказал(а) спасибо
    69
    Поблагодарили 1818 раз(а) в 397 сообщениях

    По умолчанию Re: как ломануть 1C 8.3 for Linux

    Цитата Сообщение от deniskhodus Посмотреть сообщение
    Дак вот под виндой оно каждые 2,5-3 минуты проходит, а к никсовому серверу HASPLM - нет. Кроме того, обмен пакетами UDP проходит довольно весело и уверенно при запуске клиента, при этом совершенно ничего не посылается в сторону HASPLM после запуска вплоть, включая, подыхание клиента 1С (т.е. клиент 1С перед возникновением ошибки KEYWASLOST в сторону HASPLM ничего не посылает).
    Для вопроизвдения:
    а) Берем линуксовый HASPLM с сетевым ключем;
    б) Берем чистую машинку на Windows (7,8,10, мы пробовали на 7 и на 2012) - важно виндовую, потому что линуксовый клиент 1С работает без нареканий.
    в) На этой машинке, при остановленных службах вида обновлений (они жрут ресурсы), с 0,5% использования ЦП, запускаем клиент 1С и файловую базу (или серверную, но запретив пользовать лицензию с сервера предприятий)
    г) Просто ждем. Делать в базе что-либо вообще не обязательно. Неважно - вы будете в базе работать или просто смотреть на стартовый экран после запуска, не нажав в клиенте ни единой кнопочки, эти 2 минуты не трогая мышку и клаву - по истечении 2х минут клиент 1С вываливается с ошибкой KEYWASLOST. Потребление ресурсов при этом на уровне плинтуса - т.е. никакого. Проверено как на живых машинах, так и на виртуалке (правда на виртуалке с 2012R2).
    Если бы дело было в загрузке ЦП и невозможности время от времени клиентом отправить UDP запрос - то тогда запрос от клиента хотя бы иногда приходил бы на сервер HASPLM. Мы третий день бьемся с проблемой и в 100% случаев клиент, после запуска, не общается больше с сервером Linux HASPLM вообще, просто вываливаясь с ошибкой KEYWASLOST.

    ЗЫ. ЭТИ же клиенты, по ТОМУ же протоколу UDP, прекрасно работают с виндовым HASPLM. Эти же. И они же дохнут при наличии линуксового HASPLM. Я сильно сомневаюсь, что проблема в линуксовом хаспе. Скорее клиент 1С видит некие другие данные и неверно их интерпретирует.
    Поменять что-то в клиенте мы не можем, а обойти ошибку - пробуем.
    вот тут есть
    Инструкция по эксплуатации программных продуктов «1C» и ключей защиты HASP
    там, в частности, написано более подробно чем в доке "одинсек" про параметры таймаутов nethasp.ini:
    "...Если часть маршрута между запускаемой программой и ключами HASP проходит через Интернет или на ключе более 100 лицензий, могут возникнуть проблемы с тайм-аутами при доставке
    пакетов. Время ожидания ответа можно регулировать с помощью параметров NH_SESSION и NH_SEND_RCV. По умолчанию они закомментированы, и их значение составляет 30 и 5 секунд
    соответственно. Таким образом, делается 6 попыток найти ключ по 5 секунд каждая. При необходимости Вы можете увеличить эти параметры...."


    т.е. величина NH_SESSION кратна величине NH_SEND_RCV (NH_SESSION = NH_SEND_RCV * K, где K целое число ). Если указать величны NH_SESSION < NH_SEND_RCV , то как-бы ничего не должно перепосылаться. Этот момент совершенного не освещен в доке "одинсек".

    еще вот этот момент в Working_with_HASP_and_1C.pdf :
    "1C 8.x работает только по UDP. Однако ее можно заставить использовать TCP неявно. Для этого, помимо того, что описано выше, необходимо разрешить в свойствах протокола TCP/IP (Properties - Advanced - WINS) поддержку NetBios over TCP/IP на рабочих станциях, где работает защищенное приложение и на машине, где установлен ключ."



    а следующий параграф ''HASP4 и "зависшие" сессии'' о многом говорит:
    "Система защиты HASP4 устарела и была снята с поддержки в 2006 году, с тех пор для неё ничего не дорабатывалось. В менеджере лицензий 8.32 периодически возможно "зависание части лицензий", происходящее из-за некорректного завершения сессии с ключом."

    Между исх.кодом платформы и HASP-ключом есть очевидная "прослойка" - "HASP API" (его исходники называются примерно так - "HASP SDK") + "HASP LM".
    Следы "HASP API" легко находятся в либах, работающих с HASP-ключом.
    Например, используя тулзу strings увидим в backbas.dll строки с названиями функций из "HASP API" (бублично доступен только .h файл с прототипами функций):
    HASPAPI_VERSION
    LOCALHASP_HASPSTATUS
    LOCALHASP_HASPCODE
    LOCALHASP_ISHASP
    LOCALHASP_DECODEDATA
    LOCALHASP_ENCODEDATA
    NETHASP_ENCODEDATA
    NETHASP_DECODEDATA
    NETHASP_LASTSTATUS
    NETHASP_SETIDLETIME
    NETHASP_HASPCODE
    NETHASP_READBLOCK
    NETHASP_HASPID
    NETHASP_GETPROTOCOL
    NETHASP_SET_SERVER_BY_NAME
    NETHASP_SET_CONFIG_FILENAME
    NETHASP_HASPQUERYLICENSE
    NETHASP_DEFAULTCONFIG
    NETHASP_SETPROTOCOL

    на сайте вендора HASP4 написано, что он похерен и не поддерживается с 2006 года - парни из "один сек" не будут париться и самостоятельно ковыряться в коде "HASP API", да ещё наверняка там не все идет в сорцах, и некоторые либы могут поставляться в скомпилированном виде - бери и используй при сборке (линковке) приложения.
    Вообщем, "удаление гланд автогеном через анальное отверстие"
    "кинжал хорош для того, у кого он есть, и плохо тому у кого он не окажется в нужное время"

  2. Пользователь сказал cпасибо:

    vfp7 (11.06.2019)

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •