Открыть запароленный excel vba

0 / 0 / 1

Регистрация: 19.01.2016

Сообщений: 149

1

Открытие запароленой книги программно

15.02.2019, 17:34. Показов 4358. Ответов 4


Студворк — интернет-сервис помощи студентам

Добрый день. Нашел как запаролить книгу excel стандартной функцией.
Теперь возникает вопрос — можно ли программно (например макросом из другой книги) открыть запароленую книгу? Я имею в виду не взламывать а просто открыть, зная, конечно, пароль.
Запись макроса макроредактором не помогла.



0



4131 / 2235 / 940

Регистрация: 01.12.2010

Сообщений: 4,624

15.02.2019, 17:46

2

F1 — и далее

Opens a workbook.
Syntax

expression.Open(FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)



0



saray

3 / 2 / 1

Регистрация: 05.02.2019

Сообщений: 27

15.02.2019, 17:47

3

Visual Basic
1
2
3
Sub Open_file()
    Workbooks.Open Filename:= "Полный пусть к файлу с расширением", Password:="Указываем пароль"
End Sub



0



0 / 0 / 1

Регистрация: 19.01.2016

Сообщений: 149

15.02.2019, 17:52

 [ТС]

4

Большое спасибо!



0



653 / 246 / 88

Регистрация: 28.10.2015

Сообщений: 520

15.02.2019, 17:52

5

Я однажды создал Вордовский файл для хранения паролей. Решил запаролить сам файл. А потом забыл пароль!

Пришлось создавать в той же папке второй вордовский файл, прописывать в нём список всех комбинаций пароля (все варианты паролей, которые я придумывал, плюс вариации) и писать макрос, который перебирая все мои пароли, пытался открыть файл.
По серьёзному, брутфорс давно канул в прошлое, но для домашнего использования можно и примитивный брутер с атакой по словарю содеять!



0



Всем добрый вечет.
???Кто может помогите!!! ???
Задача:
Есть документ Excel защищенный (извесным) паролем, его надо открыть из проекта VBA.

Пытаюсь открыть через: Workbooks.Open (Name), в Help’e пишут что есть опциональный параметр Password

«Open(FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)»

Но ни как не могу его ввести через VBA!!!
В каком формате (виде) он вводится?

Или кинте ссылку где глянуть

Заранее всем спасибо.


строчку кода, где файл открываете, приведите для наглядности…


Цитата: Andrey Lenets от 26.11.2008, 18:18
строчку кода, где файл открываете, приведите для наглядности…

Вот часть кода:
‘ Начало
Public Const conPathToF = «H:….»  в коде стоит реальный путь к файлу
Public Const conNameF = «… .xls»    в коде стоит реальное имя файла

‘ Открытие документа
Workbooks.Open (conPathToF & conNameF) — эту строчку надо записать так, чтобы она открывала запороленый файл!?
Worksheets(conListNameF).Activate                           
‘ Конец

Я пробовал писать так (к примеру пароль у файла:12345): Workbooks.Open (conPathToF & conNameF,,,,12345) — сразу выводится ошибка «Compile error: Expected:=»
Насколько я понял я не правильно записываю пароль в поле переменных функции. Как он должен быть записан в Help’е не говориться!


                mesto = «\EnergypoleÎò÷åò_1 ().xls»
                Workbooks.Open Filename:=mesto, Password:=»Sweta»

Путей к вершине — множество. Этот один из многих!



Внимательно посмотрите Help! Пароль может быть как на полное открытие, так и на доступ только для просмотра, без права редактирования!

Путей к вершине — множество. Этот один из многих!


Макрос предназначен для программного подбора и снятия защиты с листа Excel.

Подобранный пароль не совпадает с установленным — но, тем не менее, защита снимается.

Sub Unlock_Excel_Worksheet()
    t = Timer
    If UnlockSheet(ActiveSheet) Then
        MsgBox "Защита снята. Потребовалось времени: " & Format(Timer - t, "0.0 сек.")
    Else
        MsgBox "Не удалось снять защиту листа", vbCritical
    End If
End Sub
Function UnlockSheet(ByRef sh As Worksheet) As Boolean
    Dim i%, j%, k%, l%, m%, n As Long, i1%, i2%, i3%, i4%, i5%, i6%, txt$
    On Error Resume Next
    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
        txt$ = 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
            sh.Unprotect txt$ & Chr(n)
            If Err Then
                Err.Clear
            Else
                Debug.Print "Пароль: " & txt$ & Chr(n)
                UnlockSheet = True
                Exit Function
            End If
        Next
    Next: Next: Next: Next: Next: Next
    Next: Next: Next: Next: Next
End Function

Аналогичный макрос снимает защиту книги Excel:

Sub Unlock_Excel_Workbook() ' снятие защиты книги Excel
    t = Timer
    If UnlockWorkbook(ActiveWorkbook) Then
        MsgBox "Защита снята. Потребовалось времени: " & Format(Timer - t, "0.0 сек.")
    Else
        MsgBox "Не удалось снять защиту книги", vbCritical
    End If
End Sub
Function UnlockWorkbook(ByRef wb As Workbook) As Boolean
    Dim i%, j%, k%, l%, m%, n As Long, i1%, i2%, i3%, i4%, i5%, i6%, txt$
    On Error Resume Next
    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
        txt$ = 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
            wb.Unprotect txt$ & Chr(n)
            If Err Then
                Err.Clear
            Else
                Debug.Print "Пароль: " & txt$ & Chr(n)
                UnlockWorkbook = True
                Exit Function
            End If
        Next
    Next: Next: Next: Next: Next: Next
    Next: Next: Next: Next: Next
End Function

Перейти к содержимому

В данной статье описаны несколько способов разблокировки (снятия защиты, пароля) в запароленном  файле  «Эксель» и приведен макрос подбора пароля к файлу.

Категорически рекомендую использовать данные способы для разблокировки и снятия защиты только со своих собственных файлов, когда забыли (запамятовали) пароль и ни в коем случае не применять данные способы для взлома паролей защиты на чужих файлах не принадлежащих Вам.

Способ номер 1.  Использование бесплатной офисной программы Open Office Calc

Это один из самых простых способов снятия забытого пароля с файла.

Что нужно делать:

  1. Скачать и установить бесплатную программу  Open Office.
  2. Открыть запароленный файл в программе Open Office Calc.
  3. Перейти во вкладку «Сервис»
  4. Далее выбрать пункт «Защитить документ»
  5. Снять флажок (галочку) с пункта с названием защищенного листа.
    Снять пароль в Open Office
    Снять пароль в Open Office
  6. Пароль с файла будет снят.
  7. Теперь остается только сохранить незапароленный файл и открыть его в «Excel», при необходимости.

Способ номер 2. Использование программы-архиватора для снятия пароля с листа «Excel»

Что нужно делать:

  1. Установить программу для открытия архивов и архивирования документов, если таковая не установлена на Вашем ПК. Например WinRar или 7Zip ;
    7Zip man
    7Zip man
  2. Запустить программу архиватор ;
  3. Сохранить защищенный файл в формате .xlsx ;
    Сохранить как xlsx
    Сохранить как xlsx
  4. Открыть защищенный документ в этой программе, как архив ;
  5. Далее перейти в папку архива Название файла.xlsxxlworksheets ;
    Снятие пароля через архив
    Снятие пароля через архив
  6. Открыть интересующий вас лист для редактирования ;
  7. Найдите фрагмент кода начинающийся с «<sheetProtection password=» и заканчивающийся «/>». Удалите его ;
    Удаление строки с паролем
    Удаление строки с паролем
  8. Сохраните архив с измененным файлом ;
  9. Закройте программу-архиватор и откройте файл в «Excel» ;
  10. Защита листа снята.

Способ номер 3. Макрос VBA «Excel» для подбора пароля и снятия защиты листа.

Этот способ немного сложнее, так как от Вас потребуются хотя бы начальные знания в написании макросов «Excel».

Как пишется простейший макрос в «Excel» Вы можете посмотреть на странице сайта по ссылке:

Как написать простой макрос в программе Excel

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

  1. Открыть редактор макросов во вкладке разработчик.
  2. Записать следующий код макроса:
  • Sub podbor_ruexcel()
  • Dim E1, E2, E3, E4, E5, E6, i, j, k, l, m, n As Integer
  • Dim ruexcel As String
  • Dim t!
  • 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 E1 = 65 To 66
  • For E2 = 65 To 66: For E3 = 65 To 66: For E4 = 65 To 66
  • For E5 = 65 To 66: For E6 = 65 To 66
  • ruexcel = Chr(i) & Chr(j) & Chr(k) & Chr(l) & Chr(m) & Chr(E1) & Chr(E2) & Chr(E3) & Chr(E4) & Chr(E5) & Chr(E6)
  • For n = 32 To 126
  • Unprotect ruexcel & Chr(n)
  • MsgBox «Пароль снят » & 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
  1. Запустить полученный макрос.
  2. После выполнения макроса пароль с листа «Excel» будет снят.

Результат редактирования макроса:

Макрос подбора пароля к листу Excel в редакторе

Макрос подбора пароля к листу Excel в редакторе

Время на прочтение
2 мин

Количество просмотров 17K

Здравствуйте, друзья!
Последние дни бился над такой задачей:
Имеется файл .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 версиях Офиса. К тому же вопрос этики — пришлось «обходить» защиту кода макроса.

Благодарен за внимание. Надеюсь, что для некоторой части сообщества информация была полезна.

P.S. Вдохновленный решением возникшей проблемы, и оставшись только с одним вопросом, который задал чуть выше, я решился создать свой первый топик на Хабре, в надежде на профессиональный дружеский совет.

Понравилась статья? Поделить с друзьями:
  • Открыть запароленный excel 2016
  • Открыть документов word в adobe
  • Открыть документ с помощью word онлайн
  • Открыть документ word сочетание клавиш
  • Открыть документ word с помощью конвертера резервных копий