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 не будет опубликован. Обязательные поля помечены *