Project is unviewable как снять защиту

Project is unviewable как снять защиту

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

  • Smart Indenter — выравнивает код в редакторе VBA (формирует отступы от левого края). Не знаю, как я раньше обходился без этой утилиты.
  • MZTools — множество полезных функций для разработчиков макросов
  • VBE Tools — позволяет легко переименовывать и перемещать элементы управления на форме
  • MsgBox Generator — облегчает создание диалоговых окон (формирует код вызова MsgBox с нужными характеристиками)
  • VBScroll — делает возможным скроллинг кода VBA без установки специального патча для Office
  • VBACodeCleaner — уменьшает размер файлов, содержащих код VBA
  • Protect VBA — утилита для защиты кода VBA (при попытке доступа к макросам появится сообщение Project is unviewable)
  • VBStyleCode — выполняет автоформатирование, автозавершение конструкций end if и End With, и вообще очень ускоряет написание кода)
Вложение Размер Загрузки Последняя загрузка
Smart Indenter 260.66 КБ 1395 1 день 23 часа назад
MZTools 885.65 КБ 1348 2 дня 10 часов назад
MsgBox Generator 140 КБ 847 4 дня 6 часов назад
VBScroll 26.82 КБ 561 4 дня 6 часов назад
VBACodeCleaner 200.5 КБ 1523 4 дня 5 часов назад
VBETools 213.37 КБ 903 4 дня 6 часов назад
Protect VBA 309.79 КБ 1740 1 день 8 часов назад
  • 24633 просмотра

Комментарии

Дмитрий, я пробовал всё это только на 32-битной системе
Для 64-битной некоторые подойдут, а некоторые нет (надо искать свежие версии на сайтах разработчиков)

Добрый день. Подскажите, эти програмки можно поставить на 64 виндовс-10? Особенно интересует Smart Indenter и VBStyleCode. Заранее благодарен.

К сожалению, она стала платная. А функционала версии 3 мне было вполне достаточно.

Защитить проект VBA

Зачастую, при создании проекта на VBA, хочется его надежно защитить (особенно, если он какой-то крупный). В первую очередь, это нужно для того, чтобы никто не «украл» Ваши личные интеллектуальные разработки, либо для того, чтобы никто не мог внести какие-либо изменения в код. В данной статье как раз будет рассказано о некоторых способах, с помощью которых можно защитить проект VBA: от самых простейших, до более сложных.

Установка пароля на проект VBA

Первый и наиболее простой способ защитить проект VBA — стандартная установка пароля. Для установки пароля, в открытом редакторе VBA, необходимо нажать «Tools» — «VBA Project Properties» и перейти на вкладку «Protection», как показано на скриншоте ниже:

Далее, необходимо ввести пароль и подтвердить его. Если нужно закрыть проект от просмотра кода — установите галочку в поле «Lock project for viewing». И все, пароль установлен. Теперь, в следующий раз, когда вы зайдете в редактор VBA и попытаетесь открыть VBA-проект — необходимо будет ввести пароль:

Читайте также:  Дом ру уфа телефон горячей линии 8800

Данный способ поможет защитить проект VBA только от простых пользователей: если очень захотеть, пароль можно легко взломать. Такая защита не является надежной.

Обфускация кода

Обфускация — это изменение (запутывание) кода программы с целью затруднения его восприятия и понимания. В случае с кодом VBA — удаление отступов, удаление комментариев и переименовывание переменных или даже самих процедур.

Например, имеется простейший код, который сравнивает две переменные и выводит сообщение:

После обфускации получится следующий код:

Да, разобраться в нем можно, времени уйдет на это чуть больше, но стоит отметить, что здесь всего лишь 11 строк кода. Если строк будет в разы больше, то разобраться будет очень проблематично, код будет максимально сложным для восприятия.

Для того, чтобы защитить проект VBA с помощью обфускации, можно воспользоваться готовыми инструментами:

Обфускация — эффективный способ защиты VBA (и не только VBA). Его также можно использовать с первым способом: если пароль взломают, то с анализом и интерпретацией кода придется довольно долго потрудиться.

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

Изменение бинарного файла (Project is unviewable)

Еще один эффективный способ защитить проект VBA — небольшое изменение бинарного кода самого файла Excel. Что для этого нужно?

Сначала, необходимо сохранить исходный файл в формате .xlsb (рекомендуется именно этот формат), либо в формате .xlam, если это надстройка. После чего, необходимо сменить расширение файла на .zip и открыть его через архиватор (Winrar или 7-Zip). Затем, нужно зайти в папку «xl» и найти там файл vbaProject.bin. Файл необходимо куда-нибудь перенести/скопировать, например, на рабочий стол.

Далее, нужно открыть vbaProject.bin через текстовый редактор Notepad++ (именно через него, так как через стандартный блокнот не получится) и найти там строчки, содержащие «CMG», «DPB» и «GC» (они находятся почти в самом низу). Все символы, находящиеся в кавычках после них, необходимо заменить на символ «F», как это сделано на примере ниже:

Сохраняем файл vbaProject.bin, закрываем, переносим его обратно в архив в ту же папку «xl». Меняем обратно расширение с .zip на .xlsb или .xlam (в зависимости от того, в каком расширении файл был сохранен), и все, готово. Теперь, при попытке просмотреть/изменить модули нашего проекта, мы будем видеть сообщение «Project is unviewable»:

Читайте также:  Красоты должно быть много

Данный способ поможет эффективнее защитить проект VBA от взлома более опытными пользователями. Но даже эту защиту можно взломать, если очень захотеть.

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

Создание надстройки .dll

Еще один из способов, с помощью которого можно защитить проект VBA — создание .dll надстройки. Про данный способ я расскажу вкратце, так как сам я .dll-надстройки не создавал. Суть заключается в том, что код ваших макросов вы пишете на другом языке программирования, например на C++, а затем компилируете его в .dll или .exe файл, который затем подключается к Excel. Исходный код из скомпилированного файла извлечь крайне трудно.

Интересную тему, с которой можно начать небольшое погружение в создание .dll-надстройки, можно прочитать на форуме PlanetaExcel.

Использование стороннего софта

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

  • XLS Padlock (139€)
  • VBASH (80$)
  • Unviewable+ (100$ и выше, в зависимости от лицензии)
  • VbaCompiler (299$ стандартная лицензия) — создает .dll-файл (используется язык C)

Стоит отметить, что файлы, защищенные с помощью VBASH и самой дешевой версией Unviewable можно довольно быстро взломать. Вероятно, стоимость этого программного обеспечения «слегка» завышена и, возможно, следует пользоваться другими способами. А вот с помощью VbaCompiler защитить проект VBA можно очень надежно, так как он автоматически создает .dll-надстройку с использованием языка C. Но стоимость данного ПО довольно высокая.

Приобретать данный софт или нет — целиком и полностью ваше решение, но следует понимать, что вклад в защиту проекта должен быть финансово оправдан. Для защиты проекта от обычных пользователей достаточно использовать те методы, о которых я написал в этой статье. Нужно помнить о том, что не существует стопроцентной защиты от взлома: если человек реально захочет взломать ваш проект, он его взломает.

You can protect your macro (VBA code) in your MS Office documents from being view-able in the VBA Editor. Most people are aware of the option to password protect your code but this can be bypassed as shown in this blog. There is also a password-less protection option that simply tells the user that the Project is locked and “unviewable” as shown in the image below.

Читайте также:  Как обрезать в паинте без белого фона

The unviewable option is not able to be set through the MS office application itself, but instead, it needs to be done as a modification to the file after it is saved. This feature is documented as the ProjectProtectionState and ProjectVisibilityState attributes of the PROJECT stream in Office files here.

The ProjectProtectionState and ProjectVisibilityState attributes are encrypted data structures but it turns out that if you set them to something arbitrary, it will protect the document and make it locked/unviewable. If you change only the ProjectVisibilityState it will still show the project structure but not allow viewing of individual code modules. If you change both, you will get the locked/unviewable message immediately upon trying to expand the root of the project and will not be able to see the project structure.

There is a walk through here of how to change your office document to be locked/unviewable, but I would like to provide an automated solution. One major advantage of the automated solution is that it can not only set this protection, it can also remove this protection from any document. I added this feature to Stan Hegt’s (@StanHacked) EvilClippy tool and it can be used as follows.

To set the Locked/Unviewable attributes use the ‘-u’ option:

EvilClippy.exe -u macrofile.doc

To remove the Locked/Unviewable attributes use the ‘-uu’ option:

EvilClippy.exe -uu macrofile.doc

You can remove the Locked/Unviewable attributes on files that were not locked with EvilClippy as well.

Up until this research, the change to make a VBA Project locked/unviewable was said to be irreversible but it turns out that if you simulate a password protected document by setting the ProjectCLSID to all zero’s and use valid values for ProjectProtectionState (CMG), ProjectVisibilityState (GC) and ProjectPassword (DPB) you can undo this protection.

Above are values that will undo the protection, but because the MS Office Compound File Binary Format (CFBF) is sensitive to data length changes, your best bet is to let EvilClippy make these changes for you.

Bonus: The EvilCippy ‘-uu’ option also removes any password protection from the VBA Project.

Ссылка на основную публикацию
Micromax canvas knight cameo a290
Micromax — большая индийская компания, специализирующаяся на смартфонах бюджетного и среднего ценового диапазона. На российском рынке этот производитель представлен не...
Integer в паскале что это
Integer является стандартным типом данных языка программирования Pascal. Он используется для определения целых чисел, в отличие от типа real, применяющегося...
Intel atom z3735f характеристики
Результаты тестов SuperPI 1M 53.3 SuperPI 2M 114.9 SuperPI 32M 2108.7 3DMark06 856 Рейтинг 3Dmark06 411. AMD Athlon X2 L310...
Microsoft fix it 50884
Перед вами специальная программа, предназначенная для улучшения работы операционной системы. И вам доступно скачать Fix It для Windows 7 64...
Adblock detector