Снять пароль с макроса excel

Снять пароль с макроса excel

Здравствуйте, друзья!
Последние дни бился над такой задачей:
Имеется файл .xls, в нем макрос на VBA, защищенный паролем. Файл создается путем экспортирования из программы ГрандСмета и содержит в себе смету, которая должна обрабатываться макросом.
На 32х разрядных версиях — отрабатывает без проблем.

На 64х столкнулся со следующей ошибкой:

Справка Microsoft дает однозначный ответ:

Связывался с Тех.Поддержкой, объяснял причину. Ответ был один:

У нас все работает. Проверяли на 64х разрядных версиях.

Тогда я решился самостоятельно править код макроса. Сложность, с которой столкнулся — модуль защищен паролем. О том, как сбросить/изменить пароль не используя специализированное ПО для взлома пароля
Итак, приступим. Заранее предупрежу — я не профессиональный программист, а скорее ЭниКейщик, так что возможны некорректные формулировки, а кому-то может и вовсе не понравиться выбранный мной путь.
Первым делом я стал бороздить просторы Сети в поисках решения. В основном полным-полно ссылок на ПО, из разряда PasswordCracker. Одно из решений опубликованное на Ru-Board’e полностью удаляло код модуля VBA.
В конце концов, мои старания вознаградились — предлагаю Вам вольный перевод найденного решения (к сожалению не могу указать первоисточник — не помню) + попытка понять суть выявленной «уязвимости».

Думаю, что ни для кого не секрет, что начиная с Excel 2007 использует Microsoft Office Open XML в качестве своего основного формата.

FarManager превосходно открывает xls файл с отображением всей структуры документа.
1. Запускаем FarManager.
2. Открываем файл для редактирования.
3. Ищем строку с определением ключа DPB, и изменяем имя ключа на DPW.
4. Сохраняем.
4. Открываем файл в Excel.
5. Подтверждаем загрузку проекта, не смотря на некорректный ключ (который мы сами и сделали некорректным в п.3):

6. В окнах с сообщениями об ошибке смело жмем ОК.
7. С помощью комбинации Alt+F11 — запускаем VBA Editor и, вуаля, код макроса доступен для редактирования.

Теперь причина возникавшей ошибки при запуске макроса в среде x64 — очевидна!

Компилятор подсказывает о том, что код в данном проекте должен быть обновлен для использования на 64х разрядных системах, конкретно указав, что надо было всего лишь добавить ключевое слово PtrSafe при объявлении функции.

Изменения внес, пересохранил, проверил. Все работает. Порадовал коллег решением наболевшей проблемы + приобрел опыт.

Пытаюсь решить последний вопрос, на котором я и застопорился:
Как вразумительно, и не обидев, объяснить Тех.Поддержке о решении возникшей проблемы с запуском макроса? Не должен же я самостоятельно перелапачивать все шаблоны (а их порядка 50), чтобы макрос корректно отрабатывал на x64 версиях Офиса. К тому же вопрос этики — пришлось «обходить» защиту кода макроса.

Время от времени ко мне попадают файлы Excel страницы которых защищены от изменений. Авторы таким способом пытаются защитить документ от внесения изменений. Если бы у вас был пароль, то вы могли поступить как на рисунке ниже.

Но эта статья для тех у кого пароля нет, а снять защиту с листа Excel очень надо.

Как снять защиту от редактирования с листа книги Excel с помощью офисного пакета программ OpenOffice

Это самый простой способ снятия защиты. Достаточно открыть файл Excel в редакторе таблиц OpenOffice Calc и снять галочку в меню «Сервис -> Защитить документ -> Лист». При этом не нужно вводить никаких паролей и т.д. Да, да — это всё. Осталось только сохранить разблокированный файл Excel.

Читайте также:  Можно ли подрезать защитное стекло для смартфона

Я так понимаю, что разработчики OpenOffice чихать хотели на защиту, которую придумали в компании MicroSoft. К слову сказать, подобные манипуляции с другим бесплатным пакетом LibreOffice желаемого результата не принесут. То есть при попытке разблокировки у вас запросят пароль, как и в случае использования оригинального MicroSoft Office.

Разблокировка данным способом проводилась с использованием OpenOffice версии 4.1.2 от 28 октября 2015

Как снять защиту от редактирования листа Excel с помощью макроса MicroSoft Office

Будем снимать защиту от редактирования с листов Excel с помощью самой же программы Excel. Для это воспользуемся встроенной поддержкой макросов.

Если у вас нет вкладки для разработчиков, то включите ее в настройках:

Затем выбираем пункт «Макросы» на вкладке для разработчиков:

Вводим название нашего макроса и нажимаем кнопку «Создать»:

В появившемся окне

вставляем следующий код:

У вас должно получиться примерно так:

Закрываем главное окно:

снова нажимаем на вкладке для разработчиков кнопку «Макросы»

и в появившемся окне нажимаем кнопку «Выполнить»

Через некоторое время вы получите уведомление, что все готово:

Осталось только сохранить файл. При этом Excel спросит вас сохранять ли макрос:

Разблокировка данным способом проводилась с помощью MicroSoft Office Excel 2010.

Разблокировка с помощью архиватора и текстового редактора

Это способ для тех, кто хочет знать как защита от редактирования устроена изнутри.
Измените расширение файла XLSX на ZIP.

Если у вас файл в формате XLS, то в начале, чтобы воспользоваться этим способом, сохраните его в XLSX.

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

Распакуйте необходимый лист из книги Excel используя путь в архиве «xl -> worksheets».
Откройте полученный файл, к примеру sheet1.xml в любом текстовом редакторе, можно даже в блокноте.

Табличный процессор Excel был разработана Microsoft ещё в 1985 году, с того времени его функциональность значительно расширилась, а интерфейс стал более удобным. Программа активно используется как финансистами, бухгалтерами, аналитиками, так и обычными пользователями. Функционал позволяет составлять сложные таблицы и делать расчёты по имеющимся в программе или внесёнными пользователем самостоятельно формулам, строить графики и диаграммы. Работа происходит на так называемых листах, которые включены в книгу (один документ Excel).

Снятие защиты паролем с Эксель

В Microsoft понимают, что файл может попасть не в те руки, поэтому дают возможность пользователю задать пароль для доступа к конкретному листу или всему документу. Есть возможность даже заблокировать отдельные ячейки от редактирования и/или просмотра. Но что делать, если забыли пароль, а в файле находятся важные данные? Пароль можно снять самостоятельно при помощи стандартных программ Windows.

Способ 1: Снять пароль при помощи архиватора

Данный способ лучше всего работает со старыми версиями программы (до версии от 2010 года). В последних версиях есть риск потери данных из-за новых параметров безопасности. Суть способа заключается в том, чтобы получить доступ к каждому листу отдельно. Для этого вам понадобится любой архиватор, который умеет работать с файлами .zip и инструмент для редактирования кода (подойдёт даже стандартный блокнот от Windows).

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

Работа может осуществляться только с файлами .xlsx, поэтому обратите внимание на то, в каком формате сохранён документ, т.к. старые версии Excel сохраняют документе в .xls формате. Если файл имеет расширение .xls, то пересохраните. Для этого откройте его в Excel и в верхнем меню выберите файл, а из выпадающего меню “Сохранить как”, далее в разделе “Тип файла” выбирайте “Книга Excel (.xlsx)”.

Далее требуется поменять расширение .xlsx на .zip. Для этого нажмите правой кнопкой мыши по файлу и выберите переименовать. В конце названия меняете расширение на .zip. Пример: “Таблица1.xlsx” переименовываете в “Таблица1.zip”.

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

  1. Перейдите в «Панель управления».
  2. Выберите тип просмотра “Мелкие значки” и найдите “Параметры папок” (также может называться “Параметры Проводника”).

Зайдите в раздел “Вид”, затем в поле “Дополнительные параметры” найдите пункт “Скрывать расширения для зарегистрированных типов файлов” и снимите с него галочку. Примените изменения.

После проделанной процедуры вы без проблем сможете вручную пометь расширение любого файла.

Далее открываете архив и переходите в папку «xl», после в “worksheets”, где находятся листы в формате .xml. Листы в этом случае называются “sheet” и нумеруются по дате создания (sheet1, sheet2 и т.д.). Открыть файл нужно при помощи стандартного блокнота или специального реактора кода (например, NotePad++).

В открывшемся файле найдите фрагмент “sheetProtection”. Т.к. в файле будет много кода, рекомендуется воспользоваться быстрым поиском по содержимому при помощи сочетания клавиш Ctrl+F. Находите нужный блок, имеющий данную структуру ““sheetProtection переменная1=”” переменная2=””…”, более подробно можно видеть на скриншоте ниже. Для сброса пароля удаляете весь этот блок.

Если вы проделаете данную процедуру с листом, который был сохранён в программе версии 2010 года и выше, то потеряете все данные. В качестве решения данной проблемы удалите не весь блок, а только значение переменной “password”. Что касается версии начиная с 2016 года, то там нет переменной “password”, поэтому снять пароль при помощи архиватора в этом случае невозможно.

Когда закончите сохраните изменения и измените расширение файла обратно в .xlsx аналогичным образом, как меняли на .zip.

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

Способ 2: Удаление пароля через Макрос

В этом случае вам понадобится только сама таблица Excel и умение работать с консолью разработчика. По умолчанию панель разработчика не отображается в файле, чтобы её включить воспользуйтесь следующей инструкцией:

  1. Перейдите в пункт “файл” в левой части верхнего меню программы.
  2. Затем зайдите в “параметры”, в левом меню выберите “настройка ленты”.
  3. В поле “Основные вкладки” (находится справа) поставьте галочку напротив пункта “Разработчик”.

В открывшемся окне разработчика найдите кнопку “Макрос” или воспользуйтесь комбинацией клавиш Alt+F8.

Заполняем поле с именем макроса (можно придумать любое имя, но в нём не должно быть русских букв и пробелов). Нажимаем “Создать”. Система открывает окно для ввода кода.

Читайте также:  Как удалить себя из твиттера

Вводите следующий код:

Sub Password_Cracker()
Dim t!
Dim i As Integer, j As Integer, k As Integer
Dim l As Integer, m As Integer, n As Long
Dim i1 As Integer, i2 As Integer, i3 As Integer
Dim i4 As Integer, i5 As Integer, i6 As Integer
Dim kennwort As String
t = Timer
On Error GoTo err_
For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
For i5 = 65 To 66: For i6 = 65 To 66
kennwort = Chr(i) & Chr(j) & Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6)
For n = 32 To 126
ActiveSheet.Unprotect kennwort & Chr(n)
MsgBox "Done in " & Format(Timer — t, "0.0 sec")
Exit Sub
nxt_: Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next
Exit Sub
err_: Resume nxt_
End Sub

Закрываем окно, сохранив при этом изменения. В режиме разработчика снова используйте комбинацию клавиш Alt+F8, чтобы увидеть созданный макрос. Выберите его и нажмите “Выполнить” в правом углу.

Макрос будет выполняться приблизительно 10-60 секунд в зависимости от мощности вашего компьютера и размера документа.

Заключение

Для самостоятельного снятия пароля с таблицы Excel не нужно обладать навыками профессионального хакера или скачивать дополнительное программное обеспечение. Последнее делать категорически не рекомендуется, т.к. вы можете подхватить вирус, который причинит серьёзный вред системе.

Расскажи друзьям в социальных сетях

комментариев 14

Спасибо большое за статью. Написано четко, лаконично, без идиотских исковерканных словечек, которыми грешат многие в интернете.
Но я не смог воспользоваться отличными способами, описанными в статье.
Я попробовал первый вариант. У меня Microsoft Office 2010. Но после замены расширения .xlsx на .zip получил ответ программы:
«Не удается открыть папку.
Путь к сжатой ZIP-папке «С:UsersCompDesktopЛогин 25.02.2017- копия.zip» содержит недопустимые знаки, из-за которых извлечение невозможно:-, »
Попробовал второй вариант. Но при создании макроса возможно использовать только для открытых книг Excell, а открыть книгу невозможно без пароля. Если пароль есть, то зачем его искать? Так что у меня ничего не получилось. а в файле Excele я хранил пароли к многим сайтам и службам. А теперь вдруг он перестал открываться с паролем, которым я его открывал сотни раз.

Данный макрос написан для снятия защиты с листа, а не с книги в целом.

Ссылка на основную публикацию
Снять пароль с роутера tp link
Домашняя беспроводная сеть Wi-Fi должна быть защищена паролем. Но ведь бывают разные случаи, скажете вы. Например, вы хотите пригласить друзей...
Скопировать контакты с андроид на компьютер
Мы уже рассказывали о том, как скопировать контакты со смартфона на смартфон. Но иногда проще перебросить контактную книгу на компьютер....
Скопировать строку таблицы значений 1с в другую
Не претендуя на полноту описания функций и методов работы с таблицей значений 1с привожу некоторые аспекты, которые в своё время...
Снять пароль с макроса excel
Здравствуйте, друзья! Последние дни бился над такой задачей: Имеется файл .xls, в нем макрос на VBA, защищенный паролем. Файл создается...
Adblock detector