Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.70/46: Рейтинг темы: голосов - 46, средняя оценка - 4.70
0 / 0 / 0
Регистрация: 20.03.2012
Сообщений: 7

Уровень Безопасности

22.03.2012, 06:18. Показов 9701. Ответов 41
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста как программно в VBA Word сменить уровень безопасности для автозапуска макроса если установлен высокий
ИЛИ
если при открытии файла, в котором стоит макрос на автозапуску, в Word-е установлен Высокий Уровень безопасности выдать MsgBox и закрыть файл.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.03.2012, 06:18
Ответы с готовыми решениями:

Уровень безопасности в Word и Excel
Как при открытии файла ставить низкий уровень безопасности, а при закрытии снова ставить средний?

Как включить доверие и уровень безопасности (решение)
До недавнего времени я не мог найти подходящего решения в интернете несколько дней гуглил, пока не понял что кроме меня этого никто не...

Меняем доверие к проектам VBA и уровень безопасности
есть код он делает: При запуске Эксел считывает данные из реестра, т.е. 1. запускаем Эксель 2.Разрешаем макросы и меняем доверие к...

41
2 / 2 / 1
Регистрация: 10.04.2011
Сообщений: 415
23.04.2012, 17:16
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от temeshov
Но почему это серьезную прогу ТАК не защищают??? Если ты пишешь программу на VBA, и всем известно, что его легко можно взломать, а ты хочешь спрятать свой код, то я считаю, что все методы хороши (главное, чтобы они не мешали работе пользователя). Если код скрыт, значит пользователю нечего делать в редакторе VBA, и если он туда всеже полезет - это его проблема.
в том то и дело, что у меня эту ошибку (причем 3 раза подряд) выдает просто при открытии файла, до запуска каких-либо макросов. Ты в инструкции будешь писать: "после открытия файла нажмите 3 раза "ОК на сообщение об ошибке"?
0
0 / 0 / 0
Регистрация: 27.06.2011
Сообщений: 63
23.04.2012, 17:21
Хм, странно. Просто у меня выдает только при открытии редактора.
Но после того, как выяснилось, что посмотреть код проекта, защещенного таким образом, возможно, то смысл использовать данный метод теряется.
0
0 / 0 / 0
Регистрация: 02.09.2010
Сообщений: 102
23.04.2012, 17:28
Цитата Сообщение от Johny Walker
2. Аналогично - AVPR его не находит (выдает зюки)
это не зюки - это пароль такой, длинной 12 символов
( но эти символы c chr(1)...по chr(31), т.е. ENTER TAB ESC.... - всякие служебные символы. Попробуй ввести такие через ALT+...

Цитата Сообщение от temeshov
Тестировал выложенные файлы на office 2003 - выдает ошибку 40230.
poiskxxx, фокус конечно интересный, но если бы ты раскрыл его секрет, было бы еще интереснее!
Секрет-то я раскрыл, (ведь я же его делал этот файл), но есть большое, большое [underline][bold]НО[/bold] [/underline].
Все намного проще, чем вы думаете....
0
2 / 2 / 1
Регистрация: 10.04.2011
Сообщений: 415
23.04.2012, 17:28
на MSDN причиной этой ошибки называется нарушение целостности VBA-проекта (project is corrupted) и рекомендуется его перекомпилировать. Подозреваю, что "защита" заключается во внесении изменений в книгу другим редактором, из-за чего эксель не может корректно отобразить содержимое модулей. Имхо последствия могут быть непредсказуемыми - например, неверное выполнение отдельных макросов, причем в зависимости от данного конкретного экземпляра экселя, установленного у пользователя.
0
2 / 2 / 1
Регистрация: 10.04.2011
Сообщений: 415
23.04.2012, 17:35
Цитата Сообщение от poiskxxx
но эти символы c chr(1)...по chr(31), т.е. ENTER TAB ESC.... - всякие служебные символы. Попробуй ввести такие через ALT+...
Да элементарно - Нажми Alt+1 на цифровой клавиатуре, вот тебе и пароль (см пример)
0
0 / 0 / 0
Регистрация: 02.09.2010
Сообщений: 102
23.04.2012, 18:16
Защитил так большой проект с кучей макросов, форм - все работает.

лично у меня при вводе пароля не дает писать ALT+1 и т п
(кстати длина пароля у меня MAX 32 символа, как Алексей temeshov ввел 250?)
у меня Microsoft Excel 97 SR-1

jw.rar -> см.рис.
0
2 / 2 / 1
Регистрация: 10.04.2011
Сообщений: 415
23.04.2012, 18:30
А еще есть такой бесплатный пакет OpenOffice.org, он понимает файлы Microsoft Office, жаль, макросы только показывает, но не исполняет (там свой встроенный язык). Так вот, при открытии файла xls и переходе в режим просмотра макросов этот OpenOffice преспокойно открывает ЛЮБОЙ модуль, не обращая внимания на наличие/отсутствие пароля. Так что защищаешься ты в основном от самого себя :-)
0
0 / 0 / 0
Регистрация: 27.06.2011
Сообщений: 63
24.04.2012, 10:05
Как я установил пароль в 250 символов?
Я устанавливаю пароль не на проект а на открытие файла.

Может быть мы говорим о размых проблемах - мне главное, чтобы НИКТО, кто не имеет отношение к нашей компании, не смог просмотреть исходный код программы, т.к. там храниться конфиденциальная информация. Сотрудники офиса, для кого и написана программа, не очень разбираются в вопросах взлома программ, поэтому от них я спокойно отгородился стандартным паролем на vba проекте и isaddin.

Однако в прошлом году одна из сотрудниц попросила парня, работающего в нашей же компании вскрыть программу (может и не просила, а он сам хотел "повыпендриваться"). Но вскрыли не проект, а защиту листа с данными. После чего они были уволены.


Может надо создать новую тему, но я спрошу здесь:
Я хочу сделать (пока сам незнаю как), чтобы программа знала, когда она сама сняла защиту листа, а когда её снял пользователь, чтобы предупредить меня об факте вскрытия.
Есть еще проблема - ведь можно нажать на Ctrl + PauseBreak и остановить выполнение макроса. Ведь можно попасть в тот момент, когда программа сняла защиту, хочет произвести запись данных, а её остановили и лист остался незащищенным. Кто нибудь сналкивался с чем-нибудь подобным и что можно придумать?
0
2 / 2 / 1
Регистрация: 10.04.2011
Сообщений: 415
24.04.2012, 10:35
Может быть мы говорим о разных проблемах - мне главное, чтобы НИКТО, кто не имеет отношение к нашей компании, не смог просмотреть исходный код программы, т.к. там храниться конфиденциальная информация
Вынужден тебя огорчить - закрыть исходный код можно только в более продвинутых языках типа Си или Дельфи - там код не хранится в программе (как в VBA - это по сути интерпретатор), компилятор генерит настоящий машинный код. Как вариант, если не хочешь показывать свой код, но вынужден пользоваться VBA - сочетай, например, Дельфи и VBA. Пишешь "секретный" код в Дельфи, компилируешь его в DLL-библиотеку, и вызываешь написанный код из экселя. Иначе - ничего не поможет, как ни старайся. Еще раз повторю - OpenOffice проект тебе покажет, игнорируя пароль, как бы ты его не прятал.
0
0 / 0 / 0
Регистрация: 27.06.2011
Сообщений: 63
24.04.2012, 10:45
Спасибо за совет, в каком направлении двигаться!
Никогда не сталкивался с компиляцией кода в DLL-библиотеку, но будем учиться!

Сразу наводит на мысль: Возможно практически весь проект компелировать в различные DLL-библиотеки, а затем (моя программа автоматически обновляется через интернет) обновить только те библиотеки, коды которых изменились? Я думаю, что возможно...
0
0 / 0 / 0
Регистрация: 02.09.2010
Сообщений: 102
24.04.2012, 14:12
Читал статью про полиморфные вирусы.
Как я понял вроде, сам код программы не меняется,
а меняются коментарии к строкам. т.е. при компилировании
получается совсем другой размер у файла.
(читал ночью - может что-то не понял).

Но опять-же к VBA это не применить.

Цитата Сообщение от http://kiev-security.org.ua/box/12/33.shtml
Используется способ полиморфизма "изменение выполняемого кода". При открытий зараженного документа, случайным образом меняем имена своих переменных, вставляем пустые строки или меняют свой код каким-либо иным способом. Таким образом алгоритм работы остается без изменений, но код практически полностью меняется от поколения к поколению.
http://kiev-security.org.ua/box/12/33.shtml

Задумка есть:
написать прогр, которая имена переменных поменяет на произвольный
набор символов.
пример:
dim a, b -> dim hcdgbfdhjfkhweuifhidsfh, csgvukrhiufgherwilfos
(соответственно по всему проекту).

отсюда вопрос: Максимальная длина имени переменной?
0
2 / 2 / 1
Регистрация: 10.04.2011
Сообщений: 415
24.04.2012, 15:22
Не забивай гвозди микроскопом - для этого есть молоток.
Какой нафиг полиморфизм, какие комментарии! В [underline]машинном коде[/underline] имен переменных НЕТ, им статически или динамически выделяется область памяти с определенным адресом, по которому и идет чтение/запись данных. Ну, переназовешь ты все переменные, и что? Я бы, увидев такое, из раздела DIM копировал бы их в буфер обмена, а потом делал замену по всей процедуре на простое имя...
Господа, поверьте мне, даже машинный код трассируется и анализируется без особых проблем (лично этим занимался), ломается [bold]любая[/bold] программа, вопрос только во времени взлома. Меньше всего времени уйдет на "взлом" проекта VBA, ибо он хранится в исходном виде. Если есть желание его защитить, сохранив привычную среду VBA, ищите программеров или сами учите языки типа СИ/Дельфи, там код в exe-шнике не хранится, как и имена переменных.

Вообще, кто-нибудь может объяснить, где используется приложение, написанное в среде Эксель, для которого критично раскрытие кода?

Подскажу вариант защиты: пишите две программы в экселе: основную и т.н. загрузчик. Основная - то, что у Вас сейчас есть. Закройте её паролем на [bold]открытие[/bold] файла, а сам пароль запишите в виде текстового файла на любой съемный носитель (CD, flash-disk и т.п.) или на сервер в другой каталог. Задача загрузчика: прочитать пароль из внешнего источника, открыть с его использованием основной программный файл и все! Код загрузчика прятать не нужно: увидев, что он использует внешние данные (а не хранимые [underline]внутри[/underline] кода), любой ломальщик на этом остановится, ибо вскрыть пароль на открытие в "офисе" - задача прямого перебора, которая усложняется использованием длинного пароля и широкого набора возможных символов (русские, английские, цифры, знаки препинания и т.д. - в файле можно хранить что угодно). Пароль можно генерить при каждом запуске новый, обновляя его на внешнем носителе. Если криптографической стойкости такой защиты покажется мало (хотя у меня в версии Экселя 2002 использован вариант RSA-4), можно дополнительно упаковать основной модуль любым архиватором с использованием пароля, тогда потенциальному взломщику придется сперва вскрыть архив, а затем и файл (оба пароля, естественно, хранятся на внешнем носителе).
Этот способ подойдет тем, кто не тиражирует свои разработки, а использует их внутри компании, для предотвращения использования программы теми, кто ее попробует скопировать. Естественно, что уже запустив программу в среде Экселя, пользователь может прервать ее работу и сохранить файл без пароля для дальнейшего анализа. В этом случае надо смотреть в сторону СИ/Дельфи...
0
0 / 0 / 0
Регистрация: 02.09.2010
Сообщений: 102
25.04.2012, 10:51
[bold]Ok![/bold] Не надо обьяснять понятные вещи. (первый абзац)


Вообще, кто-нибудь может объяснить, где используется приложение, написанное в среде Эксель, для которого критично раскрытие кода?
Автозапчасти.
у нас заявки по автозапчастям обрабатываются
в Excel'e. Удобно: можно наценить проценты на любую
позицию, добавить коментарии, видно сколько получено, сколько
осталось докупить (все наглядно), сделать счет-фактуру и накладную и т п.
ставил это все один чел в каком то там 199.. г, конечно не бесплатно.
(да и так несколько раз приходил, тоже не бесплатно
Я знаю что и в других фирмах она использовалась.
0
0 / 0 / 0
Регистрация: 02.09.2010
Сообщений: 102
25.04.2012, 10:55
Еще один вариант [bold]"защиты"[/bold] (в больших, больших кавычках).
0
2 / 2 / 1
Регистрация: 10.04.2011
Сообщений: 415
25.04.2012, 11:02
Цитата Сообщение от poiskxxx
Вообще, кто-нибудь может объяснить, где используется приложение, написанное в среде Эксель, для которого критично раскрытие кода?
Автозапчасти.
у нас заявки по автозапчастям обрабатываются
в Excel'e. Удобно: можно наценить проценты на любую
позицию, добавить коментарии, видно сколько получено, сколько
осталось докупить (все наглядно), сделать счет-фактуру и накладную и т п.
ставил это все один чел в каком то там 199.. г, конечно не бесплатно.
(да и так несколько раз приходил, тоже не бесплатно
Я знаю что и в других фирмах она использовалась.
Ну, и чем критично раскрытие кода? Если у вас ее украдут (например, нерадивый сотрудник "поделится" с другом, то пользоваться будут программой, никто в код не полезет.
0
0 / 0 / 0
Регистрация: 27.06.2011
Сообщений: 63
25.04.2012, 11:10
У нас программа отсылает отчеты на сервер. Причем стоит она не только в офисе, но и во всех магазинах сети, а в програмном коде содержится информация по подключению к серверу...
Я бы не хотел, чтобы она хранилась в открытом виде.
0
2 / 2 / 1
Регистрация: 10.04.2011
Сообщений: 415
25.04.2012, 11:22
Цитата Сообщение от poiskxxx
Еще один вариант [bold]"защиты"[/bold] (в больших, больших кавычках).
Хе-хе, красиво, молодец (см. вложение).
Если бы ты не сказал, что код должен быть, никто бы его не искал :-)
0
0 / 0 / 0
Регистрация: 02.09.2010
Сообщений: 102
25.04.2012, 12:15
Я же говорю, ставил он ее за деньги.
Некоторое время назад менялся НДС 20%->18%, так вот за эти 2
циферки он получил 500 рублей.

если ее скопировать на др. комп, то она там не работала.
(как потом выяснилось были подключены доп библиотеки, использовалась запись в реестр,проверялось наличие файла на диске)

Начальник поставил задачу, и...
теперь как вы поняли мы справляемся своими силами.


Цитата Сообщение от Johny Walker
Закройте её паролем на открытие файла, а сам пароль запишите в виде текстового файла на любой съемный носитель (CD, flash-disk и т.п.) или на сервер в другой каталог
[bold]Ситуация:[/bold]
я понимаю так - компьютер подключен к локальной сети, кто нибудь может
сделать этот носитель общим ресурсом (например в ваше отсутствие), и спокойно списать пароль при помощи другого компа. (а вы и не заметите)
надо проверять - если общий ресурс, то .....

0
0 / 0 / 0
Регистрация: 20.03.2012
Сообщений: 7
27.04.2012, 02:49  [ТС]
Приятно, что за мое недолгое отсутствие тема разрослась.
Интересные вещи Вы пишете, но все же немножко отклонились от изначально поставленной задачи.
Мне по прежнему [bold]нужно:[/bold]
1) Сделать так, чтоб при открытии файла автоматически включался низкий уровень защиты и автозапуск формы невозможно было отключить.
2) Сделать проверку уровня защиты и если он не низкий автоматически без изменений закрыть файл, ну и если можно в идеале выдать MsgBox типа «Для открытия файла установите низкий уровень защиты»
Если есть соображения по этому поводу поделитесь пожалуйста.

[bold]рoiskxxx[/bold] , если небольшой секрет, можешь подробней поделится о варианте [bold]"защиты"[/bold] (в больших, больших кавычках) ;-)
sdemyan_собака_ukr_точка_net
0
90 / 37 / 14
Регистрация: 03.11.2010
Сообщений: 429
28.04.2012, 00:41
Просто посмотри код до конца вправо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.04.2012, 00:41

Как понизить уровень безопасности
Подскажите пожалуйста, как победить следущую ситуацию. На сетевом ресурсе есть аксессовская база. Мой компьютер в домене. Но при открытии...

Настройка OpenVPN на хороший уровень безопасности
Помогите пожалуйста настроить OpenVPN на хороший уровень безопасности Изучая инструкции по настройке возникли пару вопросов. Подскажите...

Нужно ли повышать уровень безопасности газовой техники путем её замены в случае окончания месторождений природного газа?
Нужно ли повышать уровень безопасности газовой техники, путем её замены на более безопасную газовую технику, в случае окончания...

Как сделать чтобы уровень змейки и уровень яблока совпадал?
Здравствуйте. Как сделать чтобы уровень змейки и уровень яблока совпадал?

Работа со звуком более или менее низкий уровень. Получить уровень сигнала микрофона
Доброго дня или ночи. Вобщем товарищи дело такое. предо мной стоит задача определять уровень шума с помощью микрофона на звуковой катре,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru