├── .gitignore ├── main.py └── requirements.txt /.gitignore: -------------------------------------------------------------------------------- 1 | venvBrute 2 | *.pyc 3 | .idea -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | import itertools 2 | from string import digits, punctuation, ascii_letters 3 | import win32com.client as client 4 | from datetime import datetime 5 | import time 6 | 7 | 8 | def brute_excel_doc(): 9 | print("***Hello friend!***") 10 | 11 | try: 12 | password_length = input("Введите длину пароля, от скольки - до скольки символов, например 3 - 7: ") 13 | password_length = [int(item) for item in password_length.split("-")] 14 | except: 15 | print("Проверьте введенные данные") 16 | 17 | print("Если пароль содержит только цифры, введите: 1\nЕсли пароль содержит только буквы, введите: 2\n" 18 | "Если пароль содержит цифры и буквы введите: 3\nЕсли пароль содержит цифры, буквы и спецсимволы введите: 4") 19 | 20 | try: 21 | choice = int(input(": ")) 22 | if choice == 1: 23 | possible_symbols = digits 24 | elif choice == 2: 25 | possible_symbols = ascii_letters 26 | elif choice == 3: 27 | possible_symbols = digits + ascii_letters 28 | elif choice == 4: 29 | possible_symbols = digits + ascii_letters + punctuation 30 | else: 31 | possible_symbols = "O.o что ты хочешь сынок?" 32 | # print(possible_symbols) 33 | except: 34 | print("O.o что ты хочешь сынок?") 35 | 36 | # brute excel doc 37 | start_timestamp = time.time() 38 | print(f"Started at - {datetime.utcfromtimestamp(time.time()).strftime('%H:%M:%S')}") 39 | 40 | count = 0 41 | for pass_length in range(password_length[0], password_length[1] + 1): 42 | for password in itertools.product(possible_symbols, repeat=pass_length): 43 | password = "".join(password) 44 | # print(password) 45 | 46 | opened_doc = client.Dispatch("Excel.Application") 47 | count += 1 48 | 49 | try: 50 | opened_doc.Workbooks.Open( 51 | r"C:\Users\User\PycharmProjects\brute_excel\fsociety.xlsx", 52 | False, 53 | True, 54 | None, 55 | password 56 | ) 57 | 58 | time.sleep(0.1) 59 | print(f"Finished at - {datetime.utcfromtimestamp(time.time()).strftime('%H:%M:%S')}") 60 | print(f"Password cracking time - {time.time() - start_timestamp}") 61 | 62 | return f"Attempt #{count} Password is: {password}" 63 | except: 64 | print(f"Attempt #{count} Incorrect password: {password}") 65 | pass 66 | 67 | 68 | def main(): 69 | print(brute_excel_doc()) 70 | 71 | 72 | if __name__ == '__main__': 73 | main() 74 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | pywin32==300 2 | --------------------------------------------------------------------------------