ActiveX компонент DynamicWrapperX 2.2 расширенный. Работает в том числе под 64-разрядной Windows 10

DynamicWrapperX — это ActiveX компонент (СОМ-сервер), созданный по мотивам DynamicWrapper, как попытка более полной реализации идеи. Он предоставляет возможность в скриптах на JScript и VBScript регистрировать в качестве методов объекта и затем вызывать функции, экспортируемые dll-библиотеками, в частности функции Windows API. Версия 1 работает под Windows 98. С версии 2 также возможна регистрация функции по её адресу в памяти и регистрация машинного кода функции, представленного в виде хекс-строки. Этот компонент не является модификацией оригинального кода DynamicWrapper, он написан с нуля на языке ассемблера GoAsm. Версия 2.2 тестировалась под Windows XP SP3, Windows 7 SP2, Windows 8.1, Windows 10.

При решении одной задачи столкнулся с трудностью, в 64-разрядной версии Windows 8.1 никак не получалось зарегистрировать библиотеку dynwrap.dll.

Благо нашел отличную разработку от Юрия Попова

DynamicWrapperX 2.2

 

Распространяется с согласия автора абсолютно бесплатно.

Лицензия: freeware.

Корректно работает в том числе под 64-разрядной Windows 10.

Версия 2.2 тестировалась под Windows XP SP3, Windows 7 SP2, Windows 8.1, Windows 10.

Версия 1.0 работает под Windows 98.

Нововведения в версии 1.0.0.0 по отношению к DynamicWrapper:

  • Добавлена возможность регистрации компонента в системе для текущего пользователя. Это может пригодиться, если у пользователя нет прав администратора.
  • Расширен набор типов входных параметров и возвращаемых значений.
  • Добавлены выходные параметры.
  • Унифицирована работа со строками в JScript и VBScript.
  • Реализован обратный вызов (callback), т.е. возможность для функций API в свою очередь вызывать функции скрипта. Последнее нужно для использования таких API-функций, как EnumWindows.
  • Под Windows 98 отпала необходимость создавать отдельный объект для каждой используемой функции.
  • Добавлены методы NumGet, NumPut, StrPtr, StrGet, Space.

 

Изменения в версии 2 по отношению к версии 1:

  • Компонент не тестировался под Windows 98 и официально её не поддерживает.
  • Доступны два варианта: x86 и x64.
  • Изменён CLSID компонента.
  • При установке и удалении проверяется наличие 1-й версии; дальнейшее зависит от результатов проверки (см. раздел Регистрация в системе).
  • Расширен набор типов параметров и возвращаемых значений: добавлены типы m (Int64), q (UInt64), v (VARIANT).
  • Количество callback-функций теперь неограничено.
  • Расширены возможности метода Register (регистрация функции по ординалу, регистрация под другим именем, добавлен флаговый параметр "f=").
  • Добавлены встроенные методы RegisterAddr, RegisterCode, StrPut, ObjPtr, ObjGet, ArrPtr, VarPtr, MemAlloc, MemFree, Bitness, Version.
  • В методах StrPtr, StrGet, StrPut вместо типа строки можно прямо указать её кодировку.

Изменения в версии 2.1 по отношению к версии 2.0:

  • Добавлено: методы LastError, MemZero, MemCopy, MemRead, MemWrite.
  • Добавлено: необязательный параметр Offset для StrGet и StrPut.
  • Добавлено: возможность использования имён кодировок — "utf-8" и т.п. — в StrPtr, StrGet и StrPut.
  • Изменено: необязательный параметр Offset в NumGet и NumPut может опускаться из середины списка параметров.
  • версия 2.1.1.0 собрана без сжатия компрессором Mpress для избежания ложных срабатываний некоторых антивирусов.
  • в версии 2.1.1.1 исправлена ошибка в методе LastError, вызывавшая исключение при его вызове с аргументом 1, если описание для кода ошибки не было найдено.

В версию 2.2 добавлен флаговый параметр в метод RegisterCallback для указания соглашения вызова callback-функции.

В прикрепленных файлах версия 32-разрядная, 64-разрядная и мануал по установке и использованию от разработчика на английском и русском языках.

 

18 Comments

  1. teflon
  2. CaSH_2004

    За то что не поленился и скопировал сюда с сайта автора описание — спасибо 🙂 Ну а где пример как использовать в 1С?

    Reply
  3. 1sig

    (2) CaSH_2004, применений множество. сделай поиск — Новый COMОбъект(«DynamicWrapper»,

    как реализовать функцию Sleep в 1С например и т.д.

    Reply
  4. tormozit

    Можно ли выложить исходники (например на github)?

    Reply
  5. 1sig

    (4) напиши автору: Юрий Попов

    Reply
  6. tormozit

    Появилась новая версия DynamicWrapperX2 с новыми методами (например MemRead). Можно ли обновить описание?

    Reply
  7. tormozit

    У новой версии функция Version возвращает 2.1.4.1 . Хотелось бы знать версию компоненты из этой публикации.

    Reply
  8. 1sig

    (6)обновлено до версии 2.1.

    Reply
  9. 1sig

    (7)2.1.1.1

    Reply
  10. tormozit

    WIndows defender теперь стал определять ее как HackTool

    Reply
  11. kote

    (10)

    Инструменты разработчика не могу запустить из за этого :((

    Доступа админского нет на этом компьютере.. побороть не могу

    Можете что-то посоветовать?

    Reply
  12. tormozit

    (10) Советую подождать выхода новой версии ИР.

    Reply
  13. tormozit

    (11) Выпущена исправленная версия ИР.

    Reply
  14. kote

    (12) А Дефендер все, навсегда будет ругаться на эту тулзу?

    Может это ошибка — все таки тулза подписана, да и инструменты Рассиновича для винды (кажется такая фамилия) тоже были достаточно «хактулзными» — но ничего, не ругается на них..

    PS .. и странно — 32-битный ДинамикВраппер не определяется как хактулз..

    Reply
  15. tormozit

    (14) Откуда мне знать то?)

    Reply
  16. chessman

    (14)

    Коллега, а Вы какой 1C-й клиент используете x32 или х64? С каким из них проблемы?

    Reply
  17. kote

    (16) Проблема с x64 компонентой, клиенты используем и те и эти..

    .. но версия компонента не от клиента, а от разрядности ОС зависит

    (по моему так, не?).

    Reply
  18. chessman

    (17) «(по моему так, не?). » не, не так, как раз от клиента.

    Теперь по сути вопроса. У меня defender не ругается ни на ту, ни на другую версии, может это связано с установленным AVG.

    Предлагаю провести следующий эксперимент: сделать копию Dll, взять winhex, найти там CLSID и исправить его в двух местах. Сохранить и проверить дефендером, будет ли ругань.

    Reply

Leave a Comment

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