Тема: Снятие пароля на проект VBA
Здравтвуйте господа программеры! Вопрос такой: как программно можно снять Password на VBA проект?
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → Снятие пароля на проект VBA
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Здравтвуйте господа программеры! Вопрос такой: как программно можно снять Password на VBA проект?
> serg
Насколько мне известно, никак.
Нет такого свойства как Protection в програмном интерфейсе VBA.
> LeonidSN
Да ну?!?
> serg
Advanced VBA Password Recovery - снимает любой пароль с проектов VBA.
Необходимо только пользоваться VBA BackDoor->Launch Application. Оттуда запускаешь Acad.exe Из AutoCAD'a запускаешь любой .dvb файл и на запрос ввести пароль нажимаешь ОК. Проект открыт
> Паша
Вопрос стоял:
как программно можно снять Password на VBA проект?
А то, что против лома нет приема, известно давно.
> LeonidSN
Прошу прощения. Неверно понял вопрос.
Непонятно только зачем это автору темы?
Прошу прощения за некорректный вопрос. У меня имеется запароленный VBA проект, при наступлении какого-либо условия в программе (их несколько) программа удаляет свои же модули. Все нормально если проект не имеет пароля, но если он есть-не может удалить.
> serg
А зачем тебе это? Форма защиты? Если пользователь ввёл неверный пароль, то включается режим самоуничтожения?
Да-форма защиты. Но пользователь никаких паролей не вводит, программа сама отслеживает события и самоуничтожается если наступило какое либо условие.
> serg
По поводу защиты. Может быть пристроить сбоку какой-нибудь LISP, который запускается из VBA при наступлении соответствующего события, выгружает твой VBA-проект из AutoCAD и стирает его файл ко всем ...? А что, вполне радикально!
В том то и проблема, не умею я в Лиспе
> serg
В свой VBA-проект вставляешь что-то вроде:
Sub MyProtection() If (MyEvent = True) Then ThisDrawing.SendCommand "my_command" End If End Sub
и загружаешь в рисунок LISP-файлик.
Я в LISP'е не силен, но думаю этого хватит:
(defun C:my_command ( / fname) (setq fname "D:\\Temporary\\MyProject.dvb") (command "_VBAUNLOAD" fname) (vl-file-delete fname) (princ) ) ;;C:my_command
Если для защиты, то абсалютно безсмысленная вещь. Какой смысл защищать то, что элементарно вскрывается и удаляется код защиты? Какой смысл удалять хоть часть кода, хоть весь файл, если всегда есть копия?
Но если очень надо, то программно через VBA пароль не снимается.
Поэтому при возникновении некого условия, приложение предварительно выгружает само себя, а дальше есть три пути:
1) в тупую удаляет свой файл;
2) портит свой код, открыв файл приложения для записи и перебивает его содержимое на произвольное или просто заменяет пробелами, но при этом не меняя его объём;
3) самый красивый. В VBA приложении резервируется стринговая константа необходимой длины. После создаётся второе небольшое VBA приложение, например ввиде сообщения об окончании работы программы и данных на её приобретение. Затем, через двоичный редактор, код второго приложения внедряется на место константы в первом.
Ну а дальше, при возникновение условия, ваше приложение считывает содержимое константы, и заменяет им код основного приложения, методом второго варианта.
> Dron
Что-то сильно хитро... и не очень понятно, как реализовать. И еще: вы не путаете VBA с другими языками программирования?
В VBA приложении резервируется стринговая константа необходимой длины. ... Затем, через двоичный редактор, код второго приложения внедряется на место константы в первом.
А насчет бессмысленности выбранного автором вопроса способа защиты, то:
- философия защиты программного продукта это отдельная и не маленькая тема, и копий там поломано...Во всяком случае, вопрос до конца не решен. И на сегодняшний день "Каждый выбирает по себе - женщину, религию, защиту.."
- один из принципов защиты уважаемый serg нарушил. Он гласит: Никогда и никому не рассказывай, как устроена защита твоей проги!
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → Снятие пароля на проект VBA
Форум работает на PunBB, при поддержке Informer Technologies, Inc