Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.59/41: Рейтинг темы: голосов - 41, средняя оценка - 4.59
0 / 0 / 1
Регистрация: 05.01.2011
Сообщений: 13

Как защитить свой проект на VBA под Excel?

09.01.2011, 09:18. Показов 8708. Ответов 39
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня вопрос- как можно защитить программу на VBA(EXCEL) чтобы юзеры могли ею пользоваться, а вот 'потусторонние' прогеры не совали нос не в своё дело )) Достаточно ли просто поставить пароль на проект или нужно ещё что-то?
Заранее спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.01.2011, 09:18
Ответы с готовыми решениями:

Можно ли защитить проект VBA для Excel от просмотра как-нибудь кроме пароля?
Можно ли защитить проект VBA для Excel от просмотра как-нибудь кроме пароля?

Как защитить VBA код в EXCEL?
Сделать нередактируемым или еще лучше - спрятать?

Как защитить свой скрипт?
приветствую! как сделать что бы заинклюденый скрипт (напр: <SCRIPT LANGUAGE='javaScript' TYPE='text/javascript'...

39
0 / 0 / 0
Регистрация: 06.04.2017
Сообщений: 45
30.01.2018, 23:04
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от The trick Посмотреть сообщение
Да для знающего человека не намного сложнее, но все-таки сложнее.
Пример, код:
А это Декомпиль какого файла? exe?
0
Модератор
10046 / 3892 / 883
Регистрация: 22.02.2013
Сообщений: 5,846
Записей в блоге: 79
30.01.2018, 23:06
Цитата Сообщение от Sergey533 Посмотреть сообщение
А это Декомпиль какого файла? exe?
Без разницы, любого бинарника с компиляцией в native код с оптимизациями.
0
0 / 0 / 0
Регистрация: 06.04.2017
Сообщений: 45
30.01.2018, 23:08
Цитата Сообщение от The trick Посмотреть сообщение
Без разницы, любого бинарника с компиляцией в native код с оптимизациями.
Жесть... А его еще больше не зашифровать?
0
Модератор
10046 / 3892 / 883
Регистрация: 22.02.2013
Сообщений: 5,846
Записей в блоге: 79
30.01.2018, 23:10
Цитата Сообщение от Sergey533 Посмотреть сообщение
Жесть... А его еще больше не зашифровать?
Шифруй еще сверху протектором.
0
0 / 0 / 0
Регистрация: 06.04.2017
Сообщений: 45
30.01.2018, 23:11
Цитата Сообщение от The trick Посмотреть сообщение
Шифруй еще сверху протектором.
Это что за зверь такой?
0
Модератор
10046 / 3892 / 883
Регистрация: 22.02.2013
Сообщений: 5,846
Записей в блоге: 79
30.01.2018, 23:18
Sergey533, http://yodap.sourceforge.net/index.html
0
0 / 0 / 0
Регистрация: 06.04.2017
Сообщений: 45
31.01.2018, 00:04
Цитата Сообщение от The trick Посмотреть сообщение
Шифруй еще сверху протектором.
Крутяк! я смотрю его еще до войны делали...

Но я правильно понял, что после этого уже декомпилировать не получится?
И to вопрос (просто пока не на чем проверить), а на 64 разрядной винде будет работать и 64 битный excel?

Добавлено через 35 минут
Цитата Сообщение от Казанский Посмотреть сообщение
Авторские программы, библиотеки, надстройки и шаблоны Protect VBA
Кстати это работает только с 2003 офисом, что тоже обидно... (не проверить)
Пересохранить из xlsm -> xls тоже не могу, задействовано больше строк и столбцов, формулы чем можно в 2003...

ругается:
-> Число столбцов или строк в книге превышает поддерживаемое выбранным форматом файла. Данные, находящиеся вне первых 256 (IV) столбцов и 65536 строк, не будут сохранены. Ссылки на данные из этого диапазона в формулах будут возвращать значение #ССЫЛКА!.

-> Число значений, ссылок или имен в некоторых формулах превышает поддерживаемое выбранным форматом файла. Эти формулы не будут сохранены и будут преобразованы в значения #ЗНАЧ!.

-> Число уровней вложенности в некоторых формулах превышает поддерживаемое выбранным форматом файла. Формулы, содержащие более семи уровней вложенности, не будут сохранены и будут преобразованы в значения #ЗНАЧ!.

-> Книга содержит одну или несколько функций, которые отсутствовали в версиях, предшествующих Excel 2007. После пересчета в более ранних версиях эти функции вернут не правильный результат, а значение #ИМЯ?.

ну и так далее, там еще куча подобного...
0
Модератор
10046 / 3892 / 883
Регистрация: 22.02.2013
Сообщений: 5,846
Записей в блоге: 79
31.01.2018, 10:18
Цитата Сообщение от Sergey533 Посмотреть сообщение
Но я правильно понял, что после этого уже декомпилировать не получится?
Ну ты видел что показывает декомпилятор даже без протектора? При желании можно восстановить код.
Цитата Сообщение от Sergey533 Посмотреть сообщение
И to вопрос (просто пока не на чем проверить), а на 64 разрядной винде будет работать и 64 битный excel?
Чтобы работало независимо от битности офиса нужно делать out-of-proc сервер (т.е. ActiveX EXE).
2
0 / 0 / 0
Регистрация: 06.04.2017
Сообщений: 45
31.01.2018, 10:21
Цитата Сообщение от The trick Посмотреть сообщение
Ну ты видел что показывает декомпилятор даже без протектора? При желании можно восстановить код.
Да, видел, тут уже черт ногу сломит... А

Цитата Сообщение от Sergey533 Посмотреть сообщение
Шифруй еще сверху протектором
После этого еще сложнее будет, так?
0
Модератор
10046 / 3892 / 883
Регистрация: 22.02.2013
Сообщений: 5,846
Записей в блоге: 79
31.01.2018, 10:23
Цитата Сообщение от Sergey533 Посмотреть сообщение
После этого еще сложнее будет, так?
Да. Вообще зависит от протектора.
0
0 / 0 / 0
Регистрация: 06.04.2017
Сообщений: 45
31.01.2018, 10:29
Цитата Сообщение от The trick Посмотреть сообщение
Да. Вообще зависит от протектора.
Если говорить об этом - http://yodap.sourceforge.net/index.html
0
Модератор
10046 / 3892 / 883
Регистрация: 22.02.2013
Сообщений: 5,846
Записей в блоге: 79
31.01.2018, 10:36
Sergey533, какой ответ ты ожидаешь?
0
0 / 0 / 0
Регистрация: 06.04.2017
Сообщений: 45
31.01.2018, 11:47
Что это хороший протектор и его можно не искать другой...
0
Модератор
10046 / 3892 / 883
Регистрация: 22.02.2013
Сообщений: 5,846
Записей в блоге: 79
31.01.2018, 11:50
Цитата Сообщение от Sergey533 Посмотреть сообщение
Что это хороший протектор и его можно не искать другой..
Я не специалист по протекторам (никогда ими не пользовался), поэтому я не могу тебе что-то посоветовать в плане хороший/плохой. Наиболее вероятно что даже без протектора никто твой код не будет реверсить, а если и будет то, поверь, протектор будет не помехой.
0
 Аватар для bedvit
1208 / 259 / 22
Регистрация: 20.05.2016
Сообщений: 1,136
Записей в блоге: 21
31.01.2018, 12:06
Из интереса, The trick, а можете глянуть декомпиль библы (на Си/С++), см. вложение.
Библа моя, кусок кода публикую (простенькая функция):
Кликните здесь для просмотра всего текста
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
void WINAPI reverse_text_xl12(wchar_t *text)
{
    int m = wcslen(text);
    if (m == 0) {
        text[0] = L'\0';
        return;
    }
    int y = 0;
    bool notLastSpace = false;
    for (int x = 0; x <= m; x++)
    {
        wchar_t vChar = text[x];
        if (vChar == L' ')
        {
            if (notLastSpace)
            {
                text[y] = vChar;
                notLastSpace = false;
                y++;
            }
        }
        else if (vChar >= L'А' && vChar <= L'я')
        {
            text[y] = vChar;
            notLastSpace = true;
            y++;
        }
        else if (vChar == L'Ё' || vChar == L'ё')
        {
            text[y] = vChar;
            notLastSpace = true;
            y++;
        }
    }
    if (notLastSpace || y==0) { text[y] = L'\0'; }
    else { text[y-1] = L'\0'; }//  LastSpace
}
 
extern "C" __declspec(dllexport) wchar_t *  WINAPI RU(wchar_t *  arg)
{
    reverse_text_xl12(arg);
    return arg;
}
Вложения
Тип файла: zip RusLetterx64.zip (7.5 Кб, 8 просмотров)
0
Модератор
10046 / 3892 / 883
Регистрация: 22.02.2013
Сообщений: 5,846
Записей в блоге: 79
31.01.2018, 12:25
bedvit, ну компилятор развернул функцию reverse_text_xl12 внутри RU:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
LPWSTR __fastcall RU(LPWSTR a1)
{
  LPWSTR v1; // r9
  signed __int64 v2; // rax
  LPWSTR result; // rax
  char v4; // r10
  int v5; // edx
  signed __int64 v6; // r11
  WCHAR v7; // r8
 
  v1 = a1;
  v2 = 0xFFFFFFFFFFFFFFFFi64;                   // wcslen
  do
    ++v2;
  while ( a1[v2] );                             // //
  if ( !v2 )
  {
    *a1 = 0;
    return a1;
  }
  v4 = 0;
  v5 = 0;
  if ( v2 < 0 )
    goto LABEL_19;
  v6 = 0i64;
  do
  {
    v7 = v1[v6];
    if ( v7 == ' ' )
    {
      if ( !v4 )
        goto LABEL_15;
      *a1 = ' ';
      v4 = 0;
      goto LABEL_14;
    }
    if ( (v7 - 0x410) <= 0x3Fu || v7 == 0x401 || v7 == 0x451 )
    {
      v4 = 1;
      *a1 = v7;
LABEL_14:
      ++v5;
      ++a1;
    }
LABEL_15:
    ++v6;
  }
  while ( v6 <= v2 );
  if ( !v4 && v5 )
  {
    result = v1;
    v1[v5 - 1] = 0;
    return result;
  }
LABEL_19:
  v1[v5] = 0;
  return v1;
}
1
 Аватар для dzug
695 / 236 / 18
Регистрация: 17.01.2011
Сообщений: 583
Записей в блоге: 1
31.01.2018, 12:33
Цитата Сообщение от The trick Посмотреть сообщение
В общем мусор. Все конечно еще зависит от опций компиляции.

А при какой компиляции труднее всего понять исходный код в VB 6?
0
Модератор
10046 / 3892 / 883
Регистрация: 22.02.2013
Сообщений: 5,846
Записей в блоге: 79
31.01.2018, 12:41
Цитата Сообщение от dzug Посмотреть сообщение
А при какой компиляции труднее всего понять исходный код?
Не могу точно сказать, т.к. я не исследовал эту тему, но однозначно P-код не стоит использовать. Также думаю включение скоростных оптимизаций усложнит декомпиляцию и увеличит скорость работы, но облегчит отладку потенциальному взломщику. Можно еще попробовать поискать различные инструменты для обфускации кода, но к примеру протектор Themida уже содержит обфускатор и виртуальную машину, но для него также есть и распаковщики поэтому все зависит от настойчивости взломщика. Кстати усложнить также можно запаковав, к примеру вот я даже сам делал нечто подобное https://www.cyberforum.ru/blog... g4391.html.
1
0 / 0 / 0
Регистрация: 06.04.2017
Сообщений: 45
31.01.2018, 13:26
Цитата Сообщение от The trick Посмотреть сообщение
Я не специалист по протекторам (никогда ими не пользовался), поэтому я не могу тебе что-то посоветовать в плане хороший/плохой. Наиболее вероятно что даже без протектора никто твой код не будет реверсить, а если и будет то, поверь, протектор будет не помехой.
Спасибо за все ответы (помощь в принятии решения)!!!
0
 Аватар для bedvit
1208 / 259 / 22
Регистрация: 20.05.2016
Сообщений: 1,136
Записей в блоге: 21
31.01.2018, 15:34
The trick, в итоге разобраться можно, если задаться такой целью.
И в декомпиляции всплывает всеми любимая/ненавидимая "goto"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.01.2018, 15:34
Помогаю со студенческими работами здесь

Как защитить свой роутер?
Что может сделать человек - программер, у которого побывал мой роутер в руках . Учитываянаши &quot;теплые&quot; отношения и желание мне...

Как защитить свой сайт
Допустим у меня есть популярный сайт. Могу ли я как-то зарегестрировать права на него ? Могут ли у меня так скажем &quot;отжать&quot; этот...

Как защитить свой пароль?
Добрый день! Расскажите как защитить пароль под звёздочками в Edit от Password Cracker???

Как защитить свой контент
Какие действия нужно предпринять владельцу контента, чтобы при его воровстве можно было предъявлять обоснованные претензии?? Если,...

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


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru