|
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,578
|
||||||
Как сделать DLL для VBA?19.07.2014, 19:42. Показов 17922. Ответов 106
Метки нет (Все метки)
Что нужно сделать, чтобы сделать DLL?
Я так понимаю, что нужен какой-то язык программирования. Есть кажется VB6. Если сделать DLL, то в него можно просто поместить VBA-код, в том виде, в каком этот код находится в VBA? Или нужно изменить? DLL хочу сделать, чтобы скрывать код макроса. Например, такой код можно будет просто вставить в DLL или надо будет изменить:?
0
|
||||||
| 19.07.2014, 19:42 | |
|
Ответы с готовыми решениями:
106
Как написать Dll для использования в VBA (MS Access 2003) Как создать правильный DLL для использования в VBA макросе CorelDraw |
|
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,578
|
|
| 19.07.2014, 23:33 [ТС] | |
|
The trick, нет в "Visual Studio" возможности нажатием кнопки переводить код VB6 в новый вид Visual Basic? Или может быть в Visual.Net?
Или в любом случае нужно будет вручную переделывать? Не хочется использовать старую среду VB6, лучше уж сразу на новую среду переходить.
0
|
|
|
|
|||||||||||||
| 19.07.2014, 23:41 | |||||||||||||
|
Скрипт, у Catstail есть замечательная статья "COM в действии".
Там все прекрасно с примерами расписано, как создавать такую DLL. Microsoft Office Object Library Microsoft Excel (Word) Object Library (смотря для какого продукта у тебя макрос). Это также позволит тебе использовать константы, известные только офису. Есть еще и другие тонкости, например, нельзя напрямую использовать объект Application, следовательно и все объекты по иерархии (cells, range и т.п. без явного указания их родителя). По тому что, когда ты пишешь Application в среде VBA, ты обращаешься к уже созданному (текущему) экземпляру приложения. Если ты запускаешь схожий код в VB6 тебе сначала нужно либо создать новый экземпляр приложения:
Собственно внутренности, что происходит я никогда не исследовал. Но скажу, что имеющиеся взломщики легко справляются с такой встроенной защитой.
3
|
|||||||||||||
|
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,578
|
|
| 19.07.2014, 23:44 [ТС] | |
|
The trick, а в VB.net можно сделать DLL?
И какую среду надо скачивать для VB.net?
1
|
|
|
|
|
| 19.07.2014, 23:59 | |
|
Да, надо еще чтото качественное написать, чтоб взломщикам
захотелось взломать твой код, кому надо всеравно взломает, кто знаком с методами защиты, но всегда можно прописать свой алгоритм чтоб потенциальный взломщик помучился, но опять-же нужно понимать те затраты на вложенный труд, и затраты на его защиту, удачи
0
|
|
|
призрак
|
|
| 20.07.2014, 00:12 | |
|
ну и какой "деобфускатор" можно написать, если после обфускатора останется немаленький код с переменными, константами, контролами, функциями и процедурами, поименованными IIIII, IIII1, III1I, II1I1 и т.п.?
плюс полное отсутствие комментариев
0
|
|
|
призрак
|
|
| 20.07.2014, 00:20 | |
|
я ж не говорю, что обфускатор полностью спасёт Ваш код от использования или модификации
просто во многих случаях (если код не микроскопический по объему и не абсолютно очевидный по логике работы), он сделает это гораздо более трудоёмким. или даже бессмысленным.
0
|
|
|
|
|
| 20.07.2014, 00:23 | |
|
Ну, если хочешь проанализировать работу кода, комментарии и переменные не столь принципиальны.
Главное, чтобы они (переменные) не мешали читать все остальные команды. Достаточно разобраться, что делает та или иная функция. Переименовав их на свое усмотрение, дальше логика будет легко просматриваться. Проблема может возникнуть как раз на этапе точечного анализа конкретных функций, так как существует несколько разных видов обфускации (не только "порча" имен переменных). Это например, намеренное усложнение алгоритма, добавление множества веток ветвления. Там где, к примеру в оригинале был один метод, после обфускации будет несколько (по сути пустышки), а результат один и тот же.
1
|
|
|
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,578
|
|
| 20.07.2014, 08:13 [ТС] | |
|
Пункт 1
ikki, а Вы использовали какой-нибудь обфускатор для VBA? Напишите, пожалуйста, название какого-нибудь хорошего обфускатора для VBA. Если для VBA есть обфускатор, то думаю, что можно его использовать, т.к. может кому-нибудь будет лень разбираться в коде, выковыривая оттуда нужные строки. Проследить работу макроса в любом случае можно, нажимая клавишу F8 (но сейчас вспомнил, что иногда F8 проскакивает в некоторых случаях). Но даже если пользователь поймёт код, то заниматься его очисткой может будет лень и проще будет денег заплатить. Пункт 2 А вообще, сам DLL ведь тоже можно посмотреть? Как потом защитить DLL от просмотра?
0
|
|
|
призрак
|
|
| 20.07.2014, 08:27 | |
|
пару раз использовал handyObfuscator из ветки Авторские программы, библиотеки, надстройки и шаблоны
потом стало лень.
1
|
|
|
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,578
|
|
| 20.07.2014, 08:36 [ТС] | |
|
ikki, а почему стало лень? Просто нажать кнопку, которая всё сделает, нельзя? Нужно потом вручную ещё что-то делать? Или нужно много действий делать? Сколько по времени занимала у Вас обфускация?
0
|
|
|
es geht mir gut
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
|
|||
| 20.07.2014, 08:47 | |||
![]() С Dll-ками созданными в VB6 такой фокус уже не пройдет.
2
|
|||
|
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,578
|
|
| 20.07.2014, 08:54 [ТС] | |
|
SoftIce, можно ли так сделать:?
0
|
|
|
es geht mir gut
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
|
|
| 20.07.2014, 08:59 | |
|
1
|
|
|
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,578
|
|
| 20.07.2014, 09:00 [ТС] | |
|
SoftIce, тогда мне, если я ничего не хочу делать, нужно использовать вместо "Visual Studio" среду "VB6"?
Или и при использовании VB6 тоже не получится автоматизировать и нужно будет вручную что-то делать?
0
|
|
| 20.07.2014, 09:00 | |
|
Как сделать надстройку в Visual Basic для VBA? dll для VBA Как сделать библиотеку DLL с моим компонентом видимой для COM? Как сделать обработчик OnClick в библиотеке(dll) для MainMenu? DLL для VBA и VB - почему разница в работе? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|