|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
30.01.2009, 15:12 | #1 |
Пользователь
Регистрация: 30.01.2009
Сообщений: 75
|
Защита приложения Excel от проникновения пользователя в проект VBA
Проект VBA, закрытый паролем легко ломается и пользователь получает доступ к Вашему исходному тексту. Можно-ли как-то исключить возможность открытия редактора кода? Клавиша Alt+F11 легко перехватывается,а меню программы переделывается, но остается еще ярлычек листа.Например, сделать главное окно невидимым, как только пользователь щелкнул на ярлычке листа "Исходный текст"?
|
30.01.2009, 15:36 | #2 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Полностью защитить код проекта VBA не получится...
Тема неоднократно обсуждалась на этом и на соседних форумах. Посмотрите, например, здесь, здесь и здесь. Цитата:
Не забывайте ещё про аналогичный пункт в контекстном меню книги. Но это не лучший способ. Можно сделать, как я видел однажды в одном макровирусе - там переопределяется команда открытия редактора VBA - создаётся пустой макрос с названием типа ToolsMacro - и попытка посмотреть код не удаётся (редактор VBA не открывается). Но обойти такую защиту очень легко.
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
Макросы любой сложности на заказ. Мониторинг цен конкурентов Последний раз редактировалось EducatedFool; 30.01.2009 в 15:44. |
|
30.01.2009, 16:24 | #3 |
Пользователь
Регистрация: 30.01.2009
Сообщений: 75
|
Как переопределить команду открытия редактора?
Где вообще лежит событие открытия главного окна редактора или его надо самому писать? |
30.01.2009, 16:34 | #4 |
Пользователь
Регистрация: 30.01.2009
Сообщений: 75
|
Подскажите, Как переопределить команду открытия редактора?
|
30.01.2009, 16:42 | #5 |
Пользователь
Регистрация: 30.01.2009
Сообщений: 75
|
Защита VBA проектов от несанкцианированного использования
Я защищаюсь так: внешним загрузчиком (Exe) загружаю защищенную книгу. Пароль зашит в загрузчик и пользователь его не видит. Самое главное - загрузчик устанавливает низкий уровень защиты макросов, так что пользователь не может отключить макросы.Но открыв книгу он залезает в редактор VBA, с которого он элементарно предварительно снял пароль. Там он вырезает все ненужное и пересохраняет файл без пароля. Я думаю - здесь надо просто не пускать его в проект и тогда он не сможет воспользоваться взломанным паролем.
Что не так? |
30.01.2009, 17:02 | #6 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
Если да, то всё очень просто. 10 раз в секунду Ваш "загрузчик" считывает заголовки всех открытых окон, и, если среди них присутствует окно с заголовком Microsoft Visual Basic, посылает этому окну команду закрытия. Но что мешает пользователю снять пароль с файла, и на другом компе (где нет "загрузчика") посмотреть код VBA? |
|
30.01.2009, 19:09 | #7 |
Старожил
Регистрация: 12.05.2007
Сообщений: 2,339
|
Есть сотни методов эффективных защит, защитите сам файл, а не редактор, например: через RAR + пароль(причем не надо, постоянно распаковывать, запаковывать, работа прям в RAR -е), спрятать док в фотку, заменить расширение ...........
Последний раз редактировалось valerij; 30.01.2009 в 19:25. |
30.01.2009, 22:00 | #8 |
Старожил
Регистрация: 15.05.2008
Сообщений: 2,058
|
В дополнение к ссылкам EducatedFool могу порекоменовать посмотреть вот эту тему Пароль на защиту листа.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499 |
31.01.2009, 12:23 | #9 |
Пользователь
Регистрация: 30.01.2009
Сообщений: 75
|
Но что мешает пользователю снять пароль с файла, и на другом компе (где нет "загрузчика") посмотреть код VBA?[/QUOTE]
Спасибо, EducatedFool и VictorM. Пароль на файл электронной таблицы, состоящий из 20-30 символов практически не снимается внешними взломщиками паролей. Они эффективны до 10 символов и не более. Но пользователь, находяь в открытом через загрузчик файле, может его пересохранить без пароля, если я не исключу такую возможность. Я ее исключил и написал свое сохранение файла без возможности снятия пароля. Можно изменить только имя. Написал полностью свое меню и запретил его изменение со стороны пользователя и перехватил клавиши доступа к меню и к проекту (Alt+F11). Таким образом у пользователя осталась одна возможность доступа к проекту VBA со взломанным паролем - через ярлычек листа "исходный текст". Никак не пойму, что здесь можно изменить. Или просто скрыть ярлычки листов, а навигацию по книге написать свою и засунуть ее в меню или контекстнозависимое меню. Есть два вопроса: 1.Как написать событие на открытие главного окна проекта по типу того что при открытии листа: Private Sub Worksheet_Activate() 2. Как управлять параметрами этих дурацких ярлычков. Думаю, от моих дурацких вопросов я потеряю репутацию с 10 до 3. Последний раз редактировалось Raikhman; 31.01.2009 в 12:43. |
31.01.2009, 13:23 | #10 | |||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Цитата:
Может, что-то вроде этого: Код:
Цитата:
Код:
Или просто заблокировать данный пункт: Код:
Код:
Или вообще отключать всё лишнее: Код:
Цитата:
Вот только обеспечить полную защиту таким способом вряд ли удастся... |
|||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программа на VBA в виде функции пользователя | Strel'nikova | Помощь студентам | 3 | 31.10.2008 13:53 |
Как средствами VBA получить доменное имя пользователя? | Прохожий | Microsoft Office Excel | 3 | 04.10.2008 18:28 |
защита ячейки в VBA | tat-besidovska | Microsoft Office Excel | 4 | 06.02.2008 04:57 |
Формы пользователя Excel | Bayers | Microsoft Office Excel | 3 | 18.07.2007 21:22 |
защита приложения от копирования | flaxe | Общие вопросы Delphi | 2 | 19.11.2006 22:26 |