Форум программистов, компьютерный форум, киберфорум
bedvit
Войти
Регистрация
Восстановить пароль

XLL хранение и выполнение VBA кода, или защита VBA кода от просмотра? (C/C++)

Запись от bedvit размещена 10.04.2022 в 17:51
Показов 1386 Комментарии 0
Метки c, c++

Инструмент позволяющий хранить VBA код в XLL и его выполнять.
Часть библиотеки BedvitXLL
Как работает: Сохраняем VBA-код в форме (см.скрин), делимся сохранением .bin с коллегами, заказчиками и т.д. (у них тоже должна стоять .xll). Они смогут использовать весь функционал, но не смогут посмотреть код без пароля.

Особенности:
+Загружаем код - с Option Explicit и другими операторами (загружаем весь модуль VBA)
+Код можно запускать прямо с главной панели (выбрав из списка нужный) или из формы загрузки
+Можно задавать пароль на просмотр (по умолчанию это слово "Пароль")
+Можно смотреть VBA-код, если знаешь пароль.
+Можно выполнять VBA-код, даже если не знаешь пароль.
+Код хранится зашифрованный в файле сохранения настроек библиотеки (BedvitXLL.bin).
+Пароль не хранится, а хранится его хеш
+VBA-код может загрузить любой пользователь и любой пользователь его использовать, при условии включенного доступа к объектной модели проектов VBA.
-пока работает только один модуль VBA
-выполняется только Sub() без аргументов, или с аргументами по умолчанию в качестве стартовой процедуры. В самом коде нет ограничений. Просто вызов с кнопки, аргументы сейчас не передаются. Но доработать можно при наличии интереса.
-нельзя использовать Function(), другими словами UDF.
-сейчас функционал скромный, обрисовал только концепцию.
-кнопка "сохранить в файл", "вывести в окно" для сохранения кода в формате С++(доп.функционал для автора, для пользователя не нужная)

BedvitXLL(v3.0.0.0) и выше
Миниатюры
Нажмите на изображение для увеличения
Название: VBAStorage2.PNG
Просмотров: 572
Размер:	57.8 Кб
ID:	7438   Нажмите на изображение для увеличения
Название: VBAStorage3.PNG
Просмотров: 515
Размер:	32.5 Кб
ID:	7439   Нажмите на изображение для увеличения
Название: VBAStorage4.PNG
Просмотров: 393
Размер:	62.1 Кб
ID:	7440  

Метки c, c++
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии
 
Новые блоги и статьи
Циклы for в Python
py-thonny 17.03.2025
Существует множество ситуаций, когда нам нужно выполнить одно и то же действие несколько раз. Цикл for в Python — настоящий рабочий конь для большинства программистов. Если вам нужно пройтись по всем. . .
Предсказание ветвлений - путь к высокопроизводи­тельному C++
NullReferenced 17.03.2025
В высокопроизводительном программировании на C++ каждый такт процессора на счету. Когда речь заходит о разработке систем с низкой задержкой — будь то высокочастотная торговля, обработка потоковых. . .
Паттерн CQRS в C#
UnmanagedCoder 17.03.2025
Создание сложных корпоративных приложений часто требует нестандартных подходов к архитектуре. Один из таких подходов — паттерн CQRS (Command Query Responsibility Segregation), предлагающий простую,. . .
Паттерн Цепочка ответственности в C#
UnmanagedCoder 17.03.2025
Цепочка ответственности — это поведенческий паттерн проектирования, который позволяет передавать запросы последовательно по цепочке потенциальных обработчиков, пока один из них не обработает запрос. . . .
Создаем микросервисы с NestJS, TCP и Typescript
run.dev 17.03.2025
NestJS — фреймворк, который значительно упрощает создание серверных приложений на Node. js. Его прелесть в том, что он комбинирует концепции ООП, функционального программирования и предлагает. . .
Гексагональная архитектура со Spring Boot
Javaican 17.03.2025
Если вы когда-нибудь сталкивались с ситуацией, когда внесение простых изменений в базу данных или пользовательский интерфейс заставляло вас переписывать весь код, то вы точно оцените элегантность. . .
Позиционировани­е Kafka Consumer и Seek-операции
Javaican 17.03.2025
Что же такое Consumer Seek в Kafka? По сути, это API-метод, который позволяет программно указать, с какой позиции (offset) Consumer должен начать или продолжить чтение данных из партиции. Без этого. . .
Python NumPy: Лучшие практики и примеры
py-thonny 17.03.2025
NumPy (Numerical Python) — одна из ключевых библиотек для научных вычислений в Python. Она превращает Python из просто удобного языка общего назначения в среду для проведения сложных математических. . .
Java Micronaut в Docker: контейнеризация с Maven и Jib
Javaican 16.03.2025
Когда речь заходит о микросервисной архитектуре на Java, фреймворк Micronaut выделяется среди конкурентов. Он создан с учётом особенностей облачных сред и контейнеров, что делает его идеальным. . .
Управление зависимостями в Java: Сравнение Spring, Guice и Dagger 2
Javaican 16.03.2025
Инъекция зависимостей (Dependency Injection, DI) — один из фундаментальных паттернов проектирования, который радикально меняет подход к созданию гибких и тестируемых Java-приложений. Суть этого. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru