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

Программирование на Visual Basic for Applications
Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

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

Сообщение Vitaly1 » 15.03.2004 (Пн) 16:18

Никакой простой идеи кроме удленения паролей пока не приходит мне в голову.
Сам сделал взломщик паролей листов и пароля книги путем перебора пароля, на каждом новом разряде время удленяется на 256 в степени n разрядов.
Взаломовать пароль проекта пока не доделал, только на одну букву, ибо там нужно всегда окошко выводит введите пароль и эмулировать ввод пароля, а при этом хрен поймешь взломан пароль или нет, приходится перебирать до конца разряда.
Но наврядли таким способом взламывают пароль проекта и листов, наверно знают структуру файла Excel, и способ кодировки паролья, а в этом случаи вилы :cry:, как не удленяй пароль, время и трудность взлома от этого не меняется!

Вопрос такой:

1) Я правильно понимаю ситуацию насчет взлома?
2) Какие есть еще способы защиты VBA проекта не через стандартный пароль?

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 15.03.2004 (Пн) 19:22

Я сам давно с этим вопросом долбаюсь.
Но вот недавно на одном буржуйском форуме (Макросы для CorelDRAW) ихний админ пригрозился в ближайшем будущем утилитку написать, чтобы делать Project is unviewable
Вот сижу, жду, надеюсь...

А для Excel есть такая инфа
Locking the VBA project of an Excel add-in

Have you ever tried to open the VBA project of an Excel
add-in just to be faced with a message box that said
"Project is unviewable" instead of seeing the familiar
password entry box ?

This type of security measure is based on the concept of
"sharing" an add-in workbook.

I stumbled on this particular method when I was working
with a group of shared workbooks and tried to edit a VBA
procedure in one of my userforms. I noticed that a shared
workbook displayed the very same message box when I
tried to open its VBA Project. As a matter of fact, Excel
actually displays a warning message stating that macros
cannot be viewed or edited in a shared workbook when
sharing is turned on. This was my first clue as to what
was being done. I kept trying and was able to find a
method of locking the VBA project of an add-in workbook.
As I learned early on, there are many different ways within
Excel to accomplish the same goal.

Here, I explain the method that worked for me.


Important to remember before starting:

This method is based on the concept of "sharing" an
Excel add-in file

It was tried and tested with Excel 8 (97) and Excel
10 (2002)

Keep a back-up copy of your original (.xls) file

The VBA project locked with this method will be
permanently locked against viewing or editing

The only way to update the VBA code will be to edit it
in the original .xls workbook and then create a new
add-in to replace the old one or to use VBA code to set
the IsAddin property of ThisWorkbook module to False
and then unshare the workbook

The best technique is to protect your add-in's VBA
project with a password also

This method appears to exploit a bug in Excel

Start with an Excel workbook (.xls) that you want to
turn into an add-in.

Save this workbook as an add-in. Use File>Save As...
then select add-in from the "Save As type" dropdown list.

Close the .xls workbook.

Open the new add-in file you just created.

Open the VBE window by pressing Alt+F11.

Find your add-in file in the Project Explorer window and
lock your project for viewing with a password.

Select the "ThisWorkbook" object and set its "IsAddin"
property to False. This will unhide the worksheets in
this add-in workbook.

Activate the Excel application window.

Select Tools>Share Workbook..., on the Editing tab
check the box to share this workbook. Press OK to
close.

Press OK to save and share this workbook.

Press OK to acknowledge the fact that macros cannot
be viewed in a shared workbook.

Verify that [Shared] appears in the title bar after the
file name.

Save this workbook again as an add-in. Select File>Save
As..., then delete the quotation marks and the .xla
extension from the filename. Select add-in from the
"Save as type:" dropdown list.

Press Save, then press "Yes" to overwrite existing file.

Close this workbook and press "No" to not save changes.

Select File>Open, then browse to find and open your
new add-in file. This add-in will open the same as any
other Excel add-in with all of its sheets being hidden.

Press Alt+F11 to open the VBE window.

Find your add-in in the Project Explorer window and
click to expand it's object tree.

You will see a message box titled "Project Locked" that
displays the following message:
"Project is unviewable". There will not be a password
textbox only an "OK" and "Help" button.

The locking of the VBA project without a password entry
option is a result of the "shared" status of the add-in
workbook.

Since this is an add-in, the worksheets will be hidden
and you will not be able to "unshare" the workbook by
conventional means.

You will be able to use this add-in the same way as any
other Excel add-in except for the fact that you will not
be able to view or edit the VBA project.

Protecting your add-in's VBA project with a password
and by the method mentioned above should be
sufficient enough to protect your work from 95% of
the Excel community.


Не пробовал, но говорят работает.

Krasavica
Небожительница
Небожительница
Аватара пользователя
 
Сообщения: 1378
Зарегистрирован: 04.11.2003 (Вт) 17:51
Откуда: Россия, город-герой Москва ;-)

Сообщение Krasavica » 18.03.2004 (Чт) 15:51

Vitaly1

Вопрос, бесспорно, очень занятный.
Правда, а почему бы тебе (если с вами можно на "ты", конечно) не воспользоваться уже
готовым взломщиком, причем совершенно бесплатно? :roll:
я - ангел!!! ...просто крылья в стирке, а нимб на подзарядке!
Меня трудно найти, легко потерять и невозможно забыть.Изображение

Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 19.03.2004 (Пт) 11:15

Во первых, по запросу в яндексе не попался безплатный. Во вторых, самому интересно сделать.

И все же, смысл вопроса был в другом (см. первое сообщение)


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 53

    TopList