Страницы: Пред. 1 2 3 4 5 След.
RSS
XLL хранение и выполнение VBA кода, или защита VBA кода от просмотра?
 
Jack Famous, поясни. Кому высылать шифратор и что с ним делать? Как им пользоватся, что бы можно было выполнить макрос, но нельзя было посмотреть?
Изменено: bedvit - 28.02.2022 10:08:28
«Бритва Оккама» или «Принцип Калашникова»?
 
Цитата
bedvit: Кому высылать шифратор и что с ним делать?
это отдельная программа (exe-шник, например или книга Excel) которая также запрашивает текст макроса и вшивает его в зашифрованном виде в книгу. Также вшивает в книгу дешифратор с заданным ключом, который сможет выполнить код

    Пока писал, подумал, что обфускация на данном этапе готовности инструмента гораздо проще — код хоть и виден, но не пригоден для анализа, а выполняется без проблем …
    Может реально подумаешь в сторону крутого обфускатора или использовать имеющиеся?
Изменено: Jack Famous - 28.02.2022 10:20:57
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал:
вшивает в книгу дешифратор с заданным ключом, который сможет выполнить код
как защищен этот дештфратор? На каком языке написан? На vba? я как конечный пользователь смотрю его код и спокойно расшифровываю нужный участок закрытого кода.
Обсфукатор на порядок ниже по защите чем данное решение, здесь код зашифрован, а не заменены именна переменных. Которые все равно легко парсятся в итоге, хоть чуть сложнее, чем с открытым кодом.
Изменено: bedvit - 28.02.2022 10:28:46
«Бритва Оккама» или «Принцип Калашникова»?
 
Цитата
bedvit написал:
Представлялось, что размер должен быть одинаков
наверное от размера макроса(количества знаков в коде) может меняться и объем файла. Я же изменил код макроса.
Цитата
bedvit написал:
Лучше приложить отдельной ссылкой по просьбе заинтересованных пользователей
Я заинтересован)  Прошу, как будет возможность, отправить мне в телеграмм -  [Удалено]
Изменено: Юрий М - 01.03.2022 21:52:10
 
Михаил Л,  все контакты в профиле или в личных сообщениях. Неужели Вы до сих пор об этом не знаете?
 
Юрий М, буду знать. Так то думал в Курилке иначе нежели на форуме по вопросам )
 
Коллеги, скорее всего будет улучшения по алгоритмам шифрования и возможно здесь же внесу большие изменения по формату сохранения пользовательских данных. Как будут готовы обновления, выложу новую версию+версию с мин. набором команд.
«Бритва Оккама» или «Принцип Калашникова»?
 
Доработан алгоритм, исправлены ошибки, добавлена библиотека в минимальной сборке. Обновил ссылке в первом сообщении.
Изменено: bedvit - 10.04.2022 18:08:13
«Бритва Оккама» или «Принцип Калашникова»?
 
bedvit, приветствую и спасибо! Хоть бы в группе написал…
Я вспомнил вот какую идею: у меня много функций по обработке значений (очистка, удалить слева-справа, взять из разделителей и так далее)
Чтобы применить эти функции к диапазону мне приходится каждый раз писать один и тот же блок кода, по получению массивов из каждой видимой области диапазона и далее перебор каждого массива по столбцам/строкам с заменой значений на результат функции.
Было бы очень удобно иметь функцию с 2мя параметрами (диапазон, имя функции для обработки каждого значения). Сейчас это возможно только через Application.Run "Name", но скорость при этом сильно теряется, а также результат функции не получить (только менять переданной или менять публичную переменную).
Возможно, тебя это заинтересует…
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал:
Было бы очень удобно иметь функцию с 2мя параметрами (диапазон, имя функции для обработки каждого значения). Сейчас это возможно только через Application.Run "Name",
так сделай такую функцию. Почему только через Application.Run? Открой новую тему, там обсудим.

По теме: выяснилась интересная особенность - выполнять макросы из библиотеки можно и в .xlsx, главное, что бы они были разрешены и открыт доступ к объектной модели проектов VBA.
«Бритва Оккама» или «Принцип Калашникова»?
 
bedvit, готово  :)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Добавил возможность произвольно задавать размеры окна формы, вплоть до полноэкранного размера. Колесо мыши тоже работает.
Все то, чего не хватает в VBA-формах.
Внесен функционал начиная с v3.0.0.2
Видео (что-то здесь перестало работать видео, по ссылке все работает)
«Бритва Оккама» или «Принцип Калашникова»?
 
Цитата
bedvit: чего не хватает в VBA-формах
… и приходится подключать API  :D
Спасибо!  :idea:
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
bedvit написал:
библиотека в минимальной сборке
Большое спасибо :)
 
04/05/2022 - v.3.1.0.0(beta) - настраиваемое меню
Для спецов, которым не нужен весь функционал xll в главном и контекстном меню - сделал возможность настраивать необходимый функционал персонально.
Настройки хранятся в .bin (там же, где и код VBA).
Посему, можно настроить видимость команд, загрузить VBA-код, переслать заказчику, и при открытии заказчиком .bin - будет видимость только нужных команд (т.е. теперь не нужна отдельная/минимальная версия библиотеки, всё можно сделать в стандартной, с нормальным дальнейшим обновлением функционала)

з.ы. у всех команд есть всплывающие подсказки, в.ч. и в настройках меню.

Видео


Скачать на сайте, кнопка (теперь основная версия)

Прошу тестировать. Критика, предложения и пожелания - принимаются.

04/05/2022 - v.3.1.0.0 - релиз
Оптимизировал отрисовку меню при удалении и добавлении команд.
Добавил возможность подключить все и отключить все кнопкой.
Обновил файл с видео.
Залил новые версии библиотек/надстроек на сайт.
Изменено: bedvit - 07.05.2022 11:16:29
«Бритва Оккама» или «Принцип Калашникова»?
 
bedvit, большое спасибо!

Цитата
bedvit: теперь не нужна отдельная/минимальная версия библиотеки
вот этот момент прикольно обошёл)) хитро))
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
скачал с сайта последнюю версию, установил, но у меня в меню нет кнопки Меню справа от языка RU. Или я не туда смотрю ?
Изменено: New - 06.05.2022 00:43:56
 
New, пока это бета версия. Качать по кнопке beta.
«Бритва Оккама» или «Принцип Калашникова»?
 
Понял. Мне нравится, что ты продолжаешь развивать свою надстройку. Нравится читать про твои новые фишки в надстройке. Молодец
Изменено: New - 06.05.2022 03:22:03
 
04/05/2022 - v.3.1.0.0 - релиз
Оптимизировал отрисовку меню при удалении и добавлении команд.
Добавил возможность подключить все и отключить все кнопкой.
Обновил файл с видео.
Залил новые версии библиотек/надстроек на сайт.

New, спасибо)
Изменено: bedvit - 07.05.2022 11:18:09
«Бритва Оккама» или «Принцип Калашникова»?
 
bedvit, если зайти по ссылке https://bedvit.ru/ то какой-то косяк с сайтом
Изменено: New - 11.05.2022 02:26:36
 
New, закончился SSL-сертификат.
Сейчас сайт работает через http://bedvit.ru/ (проверьте)
На https есть зеркало.
Изменено: bedvit - 11.05.2022 09:26:26
«Бритва Оккама» или «Принцип Калашникова»?
 
bedvit, обе ссылки рабочие  :idea:
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
13/06/2022 - BedvitXLL v.3.2.0.0

1.Изменился алгоритм работы библиотеки/надстройки с пользовательскими сохранениями.

Теперь работа с .bin выглядит так же, как работа с файлами Excel, т.е. при открытии файла .bin - все настройки загружаются из него и дальнейшие изменения сохраняются в нем (в текущем, активном файле .bin). В целях определение какой файл открыт - выведена информация в меню.

Ранее все настройки сохранялись в базовом BedvitXLL.bin, и могли только экспортироватся в другой .bin (Сохранить как...) или загружатся в базовое сохранение (Открыть), т.е. ранее работа библиотеки/надстройки всегда была с базовым сохранением.
«Бритва Оккама» или «Принцип Калашникова»?
 
Добавил некоторый функционал по хешированию и блочному шифрованию AES 128bit (выложил на форуме). В связи с чем возник вопрос по теме топа: есть ли целесообразность внести новый функционал - выполнение кода по вводу пароля? (по умолчанию, можно не задавать). Т.е. ранее был пароль только на просмотр, теперь и на выполнение. Кто-то уже пользоватся VBA макросами через этот инструмент? Соображения какие: выполнить код и просмотреть это два разных механизма. Можно хранить хеш для двух механизмов, первый позволяет посмотреть полностью код, второй - только выполнить. Т.е. разделить сервер и клиент (разработчик и пользователь). В некоторой степени это логично.
Изменено: bedvit - 16.01.2023 12:30:48
«Бритва Оккама» или «Принцип Калашникова»?
 
Плюсом, если у кого-то есть интересные идеи, по хранению и использованию зашифрованной информации, использования алгоритмов шифрования с интеграцией в Excel, можно обсудить, и, возможно, реализовать для тестирования.
«Бритва Оккама» или «Принцип Калашникова»?
 
Всем привет.
Хочу послушать мнение форумчан, специалистов и кто "в теме".
У меня остался недописанный модуль для XLL (на С++) и я пока не решил, стоит ли тратить время на его реализацию.
И ваше мнение возможно меня приведет к какому-либо решению.
Эта реализация изолированного выполнения vba кода (от просмотра), т.е. расширенная версия выложенного ранее решения.
В ней предполагается работа и UDF  и процедур/функций VBA.

Концепция в следующем:
1.В xll храниться файл xlsb, с паролем на файл. Есть пароль на проект vba, его знает только владелец, который загрузил файл (файл может загрузить любой пользователь) и передать сохранение XLL любому другому человеку, у которого есть XLL.
2.Далее, при нажатии на кнопку в форме XLL -  выгружается файл из ресурсов и запускается в отдельном процессе, но в той же сессии Excel, что и XLL.
XLL знает пароль(владелец сообщил) поэтому открывает файл без проблем.

В данном случае, можно запустить udf и функции/процедуры vba из этого файла в этой сессии Excel, в любом файле. Но посмотреть нельзя, есть же пароль на проект.

Теперь вопрос - насколько жизнеспособна эта схема?
Копировать файл в папке бесполезно, он запаролен.
Можно "Сохранить как.." программно? Модуль закрыт, значит из другого модуля? У меня в проектах не активна "Сохранить как..." когда модуль с паролем. И проект нельзя выгрузить или перенести если он на пароле. Поэтому у меня нет ответа на этот вопрос. Кто знает?
Где здесь слабые стороны?
Как можно глянуть код VBA?

Есть ли вообще в этом нужность, или это единичные случаи, когда такой инструмент будет нужен, даже если схема рабочая?

p.s. насколько я понимаю данное обсуждения в рамках правил (вопрос админам)? Мы же обсуждаем возможные бреши предложенной схемы и целесообразность её реализации.
Изменено: bedvit - 14.12.2023 18:25:11
«Бритва Оккама» или «Принцип Калашникова»?
 
Цитата
В ней предполагается работа и UDF  и процедур/функций VBA.
дальше не читал - надо :) Даже с дырами.
 
bedvit, добрый день.
С Вашим решением в XLL я не знаком, но я так понимаю, что речь идет о сокрытии кода VBA от пользователя и его выполнении?

Add:
  1. Файл будет запаролен на открытие (то есть зашифрован алгоритмом AES от Microsoft)?
  2. При этом, во время работы в текущей сессии приложения Excel, эта защита будет снята, а защита кода будет в этот момент только в виде пароля на проект VBA?
Если всё так, то пароль на проекте ломается за "секунду", поэтому смысл всей манипуляции отпадает!
Изменено: PoToLoK™ - 15.12.2023 08:28:12
 
PoToLoK™, да. В данном случае нужно подумать, что можно сделать по другому и стоит ли оно того.
«Бритва Оккама» или «Принцип Калашникова»?
Страницы: Пред. 1 2 3 4 5 След.
Наверх