Крутой заказ на фрилансе | Подбираем забытый пароль к Excel файлу с помощью Python

Поделиться
HTML-код
  • Опубликовано: 7 фев 2025

Комментарии • 325

  • @PythonToday
    @PythonToday  3 года назад +15

    Таймкоды для вас:
    00:00 - Интро
    00:15 - Описание проекта
    01:19 - Пишем код для генерации как простых так и сложных паролей
    02:44 - Код для выбора длины пароля
    03:36 - Код для выбора сложности пароля
    05:46 - Пишем цикл подбора пароля
    07:54 - Установка необходимой библиотеки
    08:56 - Необходимые настройки для открытия Excel файла
    12:48 - Запуск скрипта

    • @wasafas2793
      @wasafas2793 3 года назад

      А как возможно автоматизировать выбор длины пароля?

    • @wasafas2793
      @wasafas2793 3 года назад

      Возможно ли вообще?

  • @eminaliyev3989
    @eminaliyev3989 3 года назад +6

    Редко когда пишу комментарии к видео или ставлю лайк т.к. раздражают эти прелюдии. Но тут такой случай, когда автор имеет восхитительную дикцию, шикарно излагает мысль, приятного глазу оформляет канал без кричащих надписей как у инфо-цыган, укладывается 5 минут видео когда можно уложить в 5 минут и в 20, когда нужно в 20. Большое уважение автору! Браво!

    • @PythonToday
      @PythonToday  3 года назад +1

      Большое спасибо за фидбэк и поддержку!

  • @plxgboi3602
    @plxgboi3602 3 года назад +16

    Ого. Вот это контент. На канале и есть что посмотреть и чему научиться. Очень круто. Делайте дальше. Я сам пайтон не так давно начал учить и понял, что это того стоит

    • @PythonToday
      @PythonToday  3 года назад +1

      Благодарю 💪 Успехов в изучении!

  • @gurin.shorts
    @gurin.shorts Год назад

    Python Today, вы лучшие в объяснение, давно хотел сделать подобную программку, но не знал как сделать данные подбор, в ютубе роликов не нашёл и тут наткнулся на вас, спасиьо огромное!

  • @Bloody_River
    @Bloody_River 3 года назад +3

    Очень полезно видеть всё от начала работы и до конца с объяснениями! Лике и субскрибе :}

    • @PythonToday
      @PythonToday  3 года назад

      Спасибо за фидбэк!

  • @Tokhab
    @Tokhab 3 года назад +6

    Супер!
    Жду с нетерпением Tensorflow и все что связано с ИИ

  • @ОлегМазур-с1я
    @ОлегМазур-с1я 3 года назад +11

    Интересный материал, прям захотелось повторить))
    Из идей по поводу скорости: когда мы пытаемся разлочить файлик паролем мы обращаемся к external файлу, а значит это I/O bound -> если код будет асинхронный или мультипоточный (не мультипроцессорный), работать все будет гораздо быстрее. Тут имхо приоритет за async/await
    А из мелкого, вместо counter лучше использовать enumerate))

    • @PythonToday
      @PythonToday  3 года назад +1

      Спасибо за фидбэк. Я пока только вникаю в async и процессы.

    • @Steven-uj5sp
      @Steven-uj5sp 2 года назад +2

      @@PythonToday Я бы еще обратил внимание на проверку слов указанной длины (например из словаря Windows. Если пароль будет состоять из 4-8 символов, а паролем окажется "Password" =) Потребуется намного меньше времени, чтобы перебрать слова длинной от 4 до 8) и введение символов, которые пользователь помнит, т.к. это тоже облегчит поиск (например знание того, что в слове хотя бы одна буква "a" даст значительный выигрыш)
      Надеюсь, что Вы заметите идею)

  • @1speede1
    @1speede1 2 года назад

    Здорово, Python очень полезный инструмент. Реально заинтересовал. Раньше часто пароли в ексель файлах забывал.

    • @PythonToday
      @PythonToday  2 года назад

      Для этих задач есть гораздо более быстрые программы) Было интересно опробовать самому. Но скорость очень медленная.

    • @1speede1
      @1speede1 2 года назад

      Здорово что есть готовые решения. Но чувство когда сделал сам значительно ценнее, его не сравнить ни с чем.
      Даже когда пишешь говн@код, радуешься как ребенок если он работает как ожидалось)))
      А тут, оказывается, можно вполне реальные задачи решать, даже на моем уровне.

    • @PythonToday
      @PythonToday  2 года назад

      Полностью согласен, главное практика) Хоть и много говн0кода)

  • @romanperekatov2745
    @romanperekatov2745 2 года назад

    Спасибо,в конце ролика наглядно осознаешь про то что очень важно создавать сложные пароли)

    • @PythonToday
      @PythonToday  2 года назад

      Это точно, спасибо за фидбэк!

  • @КириллГончаров-ь7о
    @КириллГончаров-ь7о 3 года назад +12

    Следующие возможные шаги улучшения:
    1) распараллелить подбор
    2) использовать jit например numba, половина скорости улетает в интерпретацию
    3) и наверное не идти по порядку символов, а брать в разнобой, но при этом так, чтобы не повторяться

    • @spamcolector
      @spamcolector 3 года назад +1

      Как сделать 3 пункт?

    • @cens6457
      @cens6457 3 года назад +1

      @@spamcolector можно попробовать перемешать список possible_symbols перед тем, как генерировать пароль

    • @achavusov7372
      @achavusov7372 2 года назад

      @@spamcolector возможно - бинарный поиск?

    • @Rizz_The_One
      @Rizz_The_One 2 года назад

      а нельзя допустим скомпилировать какую то часть и не высчитывать её а как то использовать?

  • @eYVgeni
    @eYVgeni 3 года назад +6

    сюжеты не привязанные к конкретной операционной системе гораздо интереснее :-)

  • @patience5298
    @patience5298 3 года назад

    Редко оставляю лайки, а коментарии пишу на 1 из миллиона роликов, но чёрт возьми ты лучший этот скрипт на хак локальных забытых паролей просто великолепен и бесконечно полезен. Не думал написать что-нибудь по сложнее, например, как этот скрипт улучшить что бы он обходил банальную защиту в кол-во неверно введенных паролей и тп

    • @PythonToday
      @PythonToday  3 года назад

      Большое спасибо за фидбэк, но это лишь проба написать брутфорс средствами python самому. Для решения таким проблем есть специальные, гораздо более эффективные и скоростные инструменты)

  • @deus7204
    @deus7204 3 года назад +4

    Спасибо за видео! Интересные проекты делаешь.

    • @PythonToday
      @PythonToday  3 года назад +1

      Благодарю за фидбэк 👍

  • @shuwiku
    @shuwiku 2 года назад

    Моё мнение по поводу всего
    Видео хорошее, я узнал про 2 новые библиотеки, узнал про работу с API Winsows через Python.
    Что я предлагаю
    1. Убрать все printы, ибо они ну кпц как замедляют работу программы. Если надо знать, что происходит, лучше использовать логирование в .txt файл, оно будет куда быстрее (модуль logging)
    2. Я всё ещё до конца не разобрался с асинхронными функциями, но, если я правильно понимаю, то конкретно ввод пароля можно запихнуть в асинхронную функцию, и оно может станет чуть быстрее
    3. Ввод данных пользователем можно запихнуть в один try-exept-finally, но это так, просто предложение

  • @PeterPike1982
    @PeterPike1982 2 года назад

    Интересный канал, интересные темы, интересная подача

    • @PythonToday
      @PythonToday  2 года назад

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

  • @伝説の
    @伝説の 3 года назад +1

    За тобой уже выехали!

  • @НикитаКорнеев-б2р
    @НикитаКорнеев-б2р 3 года назад +32

    Когда в вин открывает Эксель файлик - она создаёт процесс, который нужно в конце заканчивать.
    Выполните программу несколько раз и каждый раз смотрите диспетчер задач в процессах.

    • @PythonToday
      @PythonToday  3 года назад +6

      Да, уже понял. Благодарю за пояснение 💪

    • @spamcolector
      @spamcolector 3 года назад +1

      Можно фрагмент кода которий убивает процес?

  • @MrFerting
    @MrFerting 3 года назад

    Очень крутая подача и последовательность.

    • @PythonToday
      @PythonToday  3 года назад

      Благодарю за фидбэк!

  • @coryasan
    @coryasan 3 года назад

    Смотрю Ваши ролики по питону как сериал😄

  • @staskazakovcom
    @staskazakovcom 2 года назад

    Отличный контент. Больше бы видео по взломам.

  • @Колобожко
    @Колобожко 3 года назад +3

    применение такого сомнительное, но для получения нового опыта самое то.
    я своим пользователям сделал просто удаление пароля (на сишарпе). пусть сами вводят новый.

  • @fromtheshadow8280
    @fromtheshadow8280 3 года назад +2

    Способы оптимизации, которые мне с ходу пришли в голову:
    1. Сделать многопоточность - самое очевидное и пояснять ничего не надо
    2. Вместо вывода в консоль каждой попытки перебора пароля сделать что-то другое. Например, графический интерфейс со статус баром. Вывод строк в консоль оооооочень много времени отжирает в вычислениях, проверено на чистом си

    • @quadroninja2708
      @quadroninja2708 2 года назад +1

      второе актуально в олимпиадах по информатике, один раз задача не зашла из-за endl вместо '
      '

    • @fromtheshadow8280
      @fromtheshadow8280 2 года назад

      @@quadroninja2708 почему только олимпиады, если это практическое наблюдение? Скорость работы очень хорошо бустится без лишних выводов в консоль

    • @quadroninja2708
      @quadroninja2708 2 года назад +1

      @@fromtheshadow8280 не, просто наблюдение. Иногда вывести тоже нужно правильно

    • @oreh350
      @oreh350 2 года назад

      Поставил пароль 492 и с выводом в командную строку у меня ломает пароль за 1:45, без вывода за 1:37 так что да работает быстрее, но незначительно. Есть какие-либо еще идеи? Может кто поправил код с реализацией многопоточности? Если так то киньте пожалуйста Git

    • @fromtheshadow8280
      @fromtheshadow8280 2 года назад

      @@oreh350 рост времени от увеличения длины пароля будет расти по экспоненте, так что если попробовать на 7 знаках в пароле, то получится интереснее

  • @vigauss1889
    @vigauss1889 3 года назад +14

    Чувак! Ты просто какой-то безумец! Спасибо тебе огромное за проделанную работу! Ответь пожалуйста в ТГ, по поводу уроков.

    • @PythonToday
      @PythonToday  3 года назад +1

      Спасибо) Ответил

  • @alexprodeveloper
    @alexprodeveloper 3 года назад +2

    проблемму с кешированием, можно решить просто удалением файлов *.pyc
    а про многопоточность можно попробовать:
    def batch_iterator(items_iter, batch_size=5000):
    items_list = filter(bool, items_iter)
    count = len(items_list)
    for i in range(int(math.ceil(float(count) / batch_size)) + 1):
    offset = i * batch_size
    batch = items_list[offset:batch_size + offset]
    if batch:
    yield batch
    opened_doc = client.Dispatch("Excel.Application")
    flag_stop = False
    def try_passwords(passwords):
    global flag_stop
    if flag_stop:
    return
    try:
    for password in passwords:
    opened_doc.Workbooks.Open(
    r"C:\Users\User\PycharmProjects\brute_excel\fsociety.xlsx",
    False,
    True,
    None,
    password
    )
    flag_stop = True
    return password
    except:
    pass
    pool = ThreadPool(processes=50)
    password = None
    for pass_length in range(password_length[0], password_length[1] + 1):
    if flag_stop:
    break
    iters = itertools.product(possible_symbols, repeat=pass_length)
    for batch in batch_iterator(iters):
    password = next(filter(bool, pool.map(try_passwords, batch)), None)
    pool.close()
    pool.join()
    print (password)

    • @PythonToday
      @PythonToday  3 года назад +1

      Если есть возможность, можешь ссылку на github код дать, с удовольствием гляну.

  • @KosmoWarriorGames
    @KosmoWarriorGames 2 года назад

    Коммент на 13:55 : вероятнее всего при повторном запуске после Успешного входа в файл - он просто остается висеть в системе в незакрытом процессе. и при повторном запуске скрипт считывает успешное открытие на первой итерации и вываливается с поздравлением.

  • @MrAndrewam3
    @MrAndrewam3 3 года назад +1

    Ну да, простой способ есть ) excel - это zip архив, переименовываем, открываем, редактируя 1 файл удаляем пароль, архивируем. Привет Майкрософт и псевдобезопасность )

    • @PythonToday
      @PythonToday  3 года назад

      На свежем 2021 у тебя это сработало?

  • @Andrey-yh6yw
    @Andrey-yh6yw 3 года назад +3

    Если хотите добавить многопроцессорность, то, я думаю, будет лучше не разбить множество всевозможных вариантов пароля на куски и дать по куску каждому процессу, а сделать так чтобы этот список вариантов был единым и хранился в главном родительском процессе, а все остальные процессы брали бы оттуда пароли. Это можно реализовать с помощью класса Queue модуля multiprocessing. Такой подход лучше потому, что все потоки распределят нагрузку равномерно и гарантированно закончат работать в одно и то же время. Об этих вещах хорошо рассказано в четвёртой лекции Тимофея Хирьянова из курса анализа данных на python

    • @PythonToday
      @PythonToday  3 года назад

      Спасибо большое, гляну обязательно, не силен в процессах. Но думал нужно копировать файл и отдавать каждому процессу, чтобы каждый процесс открывал и закрывал свой файл. Не пробовал пока, но думаю могут возникнуть проблемы если каждый процесс будет долбиться в один файл.
      И как быть с тем, если не разбивать лист паролей для каждого процесса, каждый из процессов будет работать по одному и тому же списку ведь и будет выполнять идентичную работу и это не приведет к ускорению перебора. Или я не так понял?

    • @Andrey-yh6yw
      @Andrey-yh6yw 3 года назад +1

      @@PythonToday так я же писал, что это делается с помощью Queue из модуля multiprocessing - это специальный канал связи между процессами, который выдаётся операционной системой - список, из которого можно брать и в который можно класть всё что угодно асинхронно из разных процессов, и не возникнет никаких проблем типа "race condition", так как эта Queue сделана специально для асинхронного обмена информацией между процессами.

    • @PythonToday
      @PythonToday  3 года назад +1

      Еще раз спасибо, посмотрю сначала лекцию, пока не понимаю как работает.

    • @rapture-dev
      @rapture-dev 3 года назад +1

      Или программа упадет с OutOfMemoryError (посчитай количество возможных паролей длины 10 из цифр и латиницы)
      К тому же синхронизация коллекции тоже использует ресурсы, не говоря про невозможность кэширования thread safe коллекции
      В таком случае правильнее передать в поток номер начала и конца, внутри потока его один раз декодировать в нужные индексы циклов. Количество нужной памяти O(1), а не O(C^N), а также никакой конкуренции за ресурсы и накладных ресурсов на синхронизацию (разве что чекать одну атомарную переменную флаг раз в Х итераций)

  • @Отсутствиеновостей-хорошаяново

    Отличное видео! Спасибо.

  • @itdepartament3333
    @itdepartament3333 2 года назад

    Красавчик

  • @ВладимирЛюдмирский
    @ВладимирЛюдмирский 3 года назад +2

    Я ничего не хочу сказать, видео классное! Но это самый бессмысленно сложный способ подбора пароля для Excel)

  • @tonykardio4451
    @tonykardio4451 3 года назад +1

    Следующий шаг - import multiprocessing . Размножить файл до нужного уровня параллелизма. И затем скормить каждому процессу свой кусок комбинаций. Многопоточность (import threading) не подойдёт из-за особенностей интерпретатора питона (он не позволяет по умолчанию выполняться многопоточно). Если предполагается посадить бота на сервер, то выгодно заранее сгенерировать данные и потом "быстренько" плодить процессы и параллелить перебор.

    • @PythonToday
      @PythonToday  3 года назад

      Буду пробовать, но количество процессов напрямую ведь зависит от процессора ПК? Я к тому, что на бюджетном хостинге, будет беда. Или не прав? Если есть опыт поделись пожалуйста, либо примером кода.

    • @tonykardio4451
      @tonykardio4451 3 года назад +2

      @@PythonToday Да, если на сервере мало оперативки, то будет не очень. Можно руками подобрать оптимальное количество процессов. Количество ядер на самом кристалле пк влияет на то, сколько по-настоящему одновременных задач может исполняться. Если ядро одно, то, возможно, и пытаться смысла нет. Скорость только лишь уменьшится, из-за затрат на создание процессов и переключение между ними.

    • @Max_Kheler
      @Max_Kheler 3 года назад

      @@PythonToday будет продолжения на шаблоны и улучшения кода если будет то он будет скрыт тут или в телеграмме если не вопрос или вообще это единственное произведения?

  • @mister_robot01
    @mister_robot01 3 года назад +1

    Очень нравится ваш канал, хотелось бы еще увидеть посмотреть как работать так же и с сайтами) Ждем продолжение на эту тему. Спасибо за ваш труд!

    • @sergeikrasnovskii9767
      @sergeikrasnovskii9767 3 года назад +1

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

    • @PythonToday
      @PythonToday  3 года назад +3

      Благодарю за фидбэк. Но это не та платформа, на которой можно обсуждать, делать и выкладывать подобные темы.

    • @smileportal1601
      @smileportal1601 3 года назад +1

      @@PythonToday снимай и залей на тг группу пж :)

    • @АсланЦагуев
      @АсланЦагуев 3 года назад +1

      @@sergeikrasnovskii9767 для примера можно взять стандартную WP админку, где по умолчанию нет никакой защиты от брутфорса.

  • @georgii2012
    @georgii2012 3 года назад +3

    Hashcat one love
    Способ рабочий, но очень медленный и не оптимизированный) Если уж и самому делать, то нужно хотя бы постараться максимально оптимизировать код, не вызывать каждый раз функции winapi и т. д.

  • @konfuze_top
    @konfuze_top 3 года назад +3

    Спасибо! Сделал brute force паролей md5. И компилировал в C код, чтобы быстрее было. (с помощью nuitka компилировал)

    • @PythonToday
      @PythonToday  3 года назад

      Благодарю за фидбэк. Можешь ссылку на код дать? С удовольствием бы глянул.

    • @konfuze_top
      @konfuze_top 3 года назад +1

      @@PythonToday Вот ссылка pastebin.com/2WH2uRUH

    • @PythonToday
      @PythonToday  3 года назад

      Благодарю, думал может добавил процессы или потоки.

    • @konfuze_top
      @konfuze_top 3 года назад

      @@PythonToday я в потоках не шарю(

    • @dizel3938
      @dizel3938 3 года назад

      @@konfuze_top Объясни дураку, куда в твоем коде ты указываешь путь к файлу и непосредственно файл? Совсем не понял но очень интересно

  • @vardges6482
    @vardges6482 3 года назад

    Хороший броутфоос получился можно для зим файла использиввть

  • @Stepan_bendera
    @Stepan_bendera 3 года назад

    День добрый подскажите есть урок по подбору паролей к веб приложениям.

  • @gu8ka
    @gu8ka 3 года назад +1

    Продолжай в том же духе

    • @PythonToday
      @PythonToday  3 года назад +1

      Спасибо за фидбэк 👍

  • @ivanfedorov7934
    @ivanfedorov7934 3 года назад

    Есть топ видео а есть 🔥🔥🔥🔥🔥как это, супер спасибо

  • @andreyandrey1004
    @andreyandrey1004 3 года назад

    Просто взрыв мозга ) класс

    • @PythonToday
      @PythonToday  3 года назад

      Благодарю за фидбэк!

  • @muresda2047
    @muresda2047 3 года назад +5

    Во время перебора не выводи ничего в консоль. Так скорость в несколько раз быстрее)

    • @PythonToday
      @PythonToday  3 года назад

      А разве это связано в данном случае? Как понял к файлу можно делать запрос не чаще чем 0.1с, что вполне отрабатывает и с принтами. Возможно я не прав.

    • @muresda2047
      @muresda2047 3 года назад +1

      @@PythonToday Я особо в этом не разбираюсь, просто из совсем небольшого опыта, говорю. Например когда проходишь в цикле по фотографии, и каждый пиксель обрабатываешь, а затем ещё выводишь информацию, то обработка фотографии занимает раз в 100 больше времени, если не в тысячу, чем без вывода информации. Также я часто встречал это когда писал другие большие циклы. Кстати, есть ещё одна идея.... это попробовать использовать мультипоточность. Но тут я совсем не разбираюсь, но думаю что это должно ускорить процесс перебора.

    • @alexdeadykhin5203
      @alexdeadykhin5203 3 года назад +3

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

  • @forthesoul1176
    @forthesoul1176 3 года назад

    Очень классно делаете!

  • @samoiloff90
    @samoiloff90 3 года назад

    Очень крутой контент!

  • @evgen3790
    @evgen3790 3 года назад

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

    • @PythonToday
      @PythonToday  3 года назад +1

      Благодарю за фидбэк! Пароль можно было подобрать за пару минут тем же hashcat, интерес был попробовать сделать переборщик самому.

  • @agalko
    @agalko 3 года назад

    Мне таки любопытно - ты это сделал просто из интереса? На подбор паролей есть специализированные софтины. К примеру JohnTheRipper - многопоточен, написан на сях, дико быстр и понимает кучу форматов и вариантов перебора, от хитрых словарей-гибридов до параметризированного брутфорса.
    Но таки да - тут оч прикольно было бы разделить это всё на потоки. В основном треде генератор паролей, в дочерних потоках - их проверка, например (я б так сделал). Было б быстрее. =)

    • @PythonToday
      @PythonToday  3 года назад

      Конечно потому, что было интересно разобраться самому.

  • @aleksandr_muga
    @aleksandr_muga 3 года назад

    За имя xlsx файла отдельный лайк)

  • @chumazzzz
    @chumazzzz 3 года назад +5

    Жду продолжения парсинга тик-тока. Нигде не могу найти, как парсить тик-токи по хештегам. Особенно хотелось бы их сортировать по дате публикации

    • @ВладимирЛюдмирский
      @ВладимирЛюдмирский 3 года назад

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

    • @Н.Игорь
      @Н.Игорь 3 года назад

      Посмотрите не публичный апи на питоне для тиктока

  • @tmrmln2780
    @tmrmln2780 Год назад

    Привет. Может я что то упускаю , но мне кажется что для длины пароля достаточна начальная длина и если длина пароля во вермя брута увеличивается, то влюбом случаи , при совпадении , брут сработает . Не значю как повлияет на скорость , но мы в коде сокращаем человеческий фактор на 50 процентов , вдруг человек забывший пароль точно не помнит какая конечная длина пароля, и если он ограничит этот параметр придется перебирать занового с увеличиным порогом , а так в любом случаи брут будет брутить пока не нарвется на совпадениее! Поправте если не прав.

  • @Rizz_The_One
    @Rizz_The_One 2 года назад

    а нельзя допустим скомпилировать какую то часть и не высчитывать её а как то использовать?

  • @sjakabelch
    @sjakabelch 2 года назад

    а в MS точно надо подбирать пароль? Вроде Office Password Recovery умеет просто его подсмотреть

  • @antonkaster
    @antonkaster 3 года назад

    Вывод чего-либо в консоль замедляет перебор. Не стоит выводить информацию на каждом шаге.
    Инициализация объекта Excel.Application в теле цикла замедляет работу. Возможно, эту инициализацию можно провести один раз перед всеми циклами.
    Получение информации о неверном пароле через исключение замедляет работу. Стоит поискать возможность иначе узнавать что пароль неверен.
    Стоит поискать возможность открывать документ не из файловой системы, а из памяти. На крайний случай использовать ramdisk.
    Возможно, попытка открытия документа блокирует файл. Тогда стоит создавать нужное количество копий документа для параллельной обработки или для уменьшения паузы.
    Стоит поискать альтернативную библиотеку для работы с файлами Excel. Судя по всему, эта использует приложение Excel, возможно даже создаёт его экземпляр. Это медленно и мы натыкаемся на механизмы безопасности Ecxel.

  • @ДжэкПотрошитель-ш9б
    @ДжэкПотрошитель-ш9б 3 года назад +3

    Если мои расчеты верны, я подберу пароль из 7 цифр и латинских букв в большом и маленьком регистре за 11000 лет

    • @puturoi
      @puturoi 3 года назад +2

      небыстро. Не мог бы привести расчеты для тех, кто не знает как считать, но кому интересно? Например мне

    • @SCSFom
      @SCSFom 3 года назад

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

    • @nikolay.tixonics
      @nikolay.tixonics 3 года назад

      @@SCSFom я разархивировал и что дальше? где пароль лежит?

  • @MyNameIsChira
    @MyNameIsChira 3 года назад

    Привет, не знаю увидишь ты или нет, но тем не менее. Посмотрел некоторые из твоих роликов и обратил внимание на то что ты очень любишь много консольного вывода. Это может быть проблемой с производительностью для твоих скриптов. Чтобы наглядно увидеть как это влияет, просто сделай цикл, от нуля до например ста тысяч. И в одной версии сделай вывод в каждой итерации, а в другой версии - вывод только последнего числа. И замерь время. Увидишь что оно различается на порядки. Так же обрати внимание что скорость вывода - не постоянна. В различных эмуляторах терминала она может быть разной.

    • @PythonToday
      @PythonToday  3 года назад +1

      Приветствую, благодарю за фидбэк! Принты добавляю для визуализации на ютубе, чтоб люди понимали, что происходит. Единственное, зря не проговорил это)

  • @snorchellomad6267
    @snorchellomad6267 2 года назад +1

    Только начал изучать python, но с профессиональным софтом по бруту паролей к документам неоднократно сталкивался. В какой-то программе реализован перебор на GPU, что сильно ускоряет процесс.
    В идеале, наверное, распараллелить задачу именно на графический процессор (ядер сильно больше, память шустрее, соответственно и операций за такт намного больше, почему они и стали такими эффективными в майнинге), но я, к сожалению, понятия не имею, как это сделать :)

    • @oreh350
      @oreh350 2 года назад

      Сударь если вы когда либо сделаете такое, скиньте пожалуйста код

  • @sasi911
    @sasi911 Год назад

    13:02 а в чем смысл сравнивать скорость если ты таймслип добавил?

  • @МаксимЛи-е6ъ
    @МаксимЛи-е6ъ 3 года назад +9

    Супер 🙌🏻 было бы не плохо развить тему об проведении трансляции в соц сетях рабочего стола или другого окна через питон 🐍

  • @АлексейСамаркин-ы2н

    Как всегда интересно и полезно!!!!!!! можно использовать многопоточность с модулем threading будет быстрее

    • @mihun4ik
      @mihun4ik 3 года назад

      > threading будет быстрее
      Не будет. threading в Python использует псевдопотоки (вместо нативных на процессоре). Соответственно для числомолотилок (перебор пароля подходит под такую классификацию) не подойдет threading из Python.

  • @obriensmith6091
    @obriensmith6091 3 года назад

    Хм, а для libre в mint есть подобная библиотека?

  • @longgo1234
    @longgo1234 2 года назад

    А как можно сделать так чтобы он вводил в программу? как взять управление в виндоус, чтобы он вводил в окошку программу?

  • @АлексейХаневский-ъ9ю
    @АлексейХаневский-ъ9ю 3 года назад +92

    переименовать файл в расширения в .zip и достать пароль, не благодарите )

    • @SCSFom
      @SCSFom 3 года назад +3

      Можно даже не переименовывать.

    • @SuperWolchara
      @SuperWolchara 3 года назад

      Открыть любым архиватором

    • @ВладимирЛюдмирский
      @ВладимирЛюдмирский 3 года назад +10

      Я тебе больше скажу - можно написать макрос прямо в экселе, который подберет пароль примерно за полсекунды (там очень кривой хэш). Лично мне кажется уморительным, что можно взломать пароль используя только эксель)
      А пароль напрямую кстати достать не получиться, там его хэш записан, а не сам пароль... но можно просто удалить строчку с sheet protection и все будет работать

    • @faktorial6218
      @faktorial6218 3 года назад +6

      У нас тут мануал по написанию брутфорса на питоне. Да есть варианты выполнить именно эту задачу быстрее. А что вы будете делать к примеру с забытым паролем от файла данных оутлука? Ваши варианты тут не сработают. А этот более чем.

    • @АлексейХаневский-ъ9ю
      @АлексейХаневский-ъ9ю 3 года назад

      @@faktorial6218 я вижу вы и файл Сноудена расшифровали ) куда мне )

  • @OKaIroN
    @OKaIroN 2 года назад

    Интересный видос👍🏻
    Один вопрос, почему везде принт, есть же логгер.

  • @Fizznt123
    @Fizznt123 2 года назад

    есть идеальная идея. импортнуть нумбу и использовать prange вместо range

  • @Daibend
    @Daibend 3 года назад

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

    • @PythonToday
      @PythonToday  3 года назад +1

      Да прям, я новичок и только учусь. Но спасибо)

  • @DmanBR
    @DmanBR 3 года назад

    По поводу потоков, в питоне быстрей не сделают, может даже медленей - один instance of interpreter

  • @ИгорьИванов-ь4ч4г
    @ИгорьИванов-ь4ч4г 2 года назад

    Интересно. Не совсем понял, что в Kali нет своего инструмента для установления пароля? По-моему, он даже в файловых менеджерах, типа Total Commander есть (открыть пароль под звездочками)... Или я чего не понимаю? Обязательно свой скрипт писать?

    • @PythonToday
      @PythonToday  2 года назад

      Есть множество инструментов, был интерес попробовать написать самому.

  • @Elgias02
    @Elgias02 3 года назад +4

    молодец, что прогрессируешь, но я думаю брутфорс - не лучшая задача для питона, так как довоольнооо медленноооо

    • @PythonToday
      @PythonToday  3 года назад

      Спасибо за фидбэк. Это опыт, для меня самый важный именно он.

    • @evalinor
      @evalinor 3 года назад

      Да не неси хуйню, нахуй в данном случае твой СИ не нужен, если заказ на 500 рублей.. Async в руки и вперёд.

    • @tentacle8148
      @tentacle8148 3 года назад +1

      @@evalinor Это вы не несите хуйню. Давайте сравним перфоманс на примере бинарных деревьев C++ и питона. Написать подобный код на C++ довольно таки мало времени занимает. Async это не решение проблемы. Тем более где он написал что-то про C++

    • @Kitulous
      @Kitulous 3 года назад

      ещё лучше писать на шарпе с помощью класса Parallel, он автоматически распределяет нагрузку по потокам, так что даже если один поток будет делать легкую задачу и будет недогружен, шарп ему добавит работёнки

    • @tentacle8148
      @tentacle8148 3 года назад

      @@Kitulous Это не лучше но проще.

  • @Alukard-789
    @Alukard-789 3 года назад

    Клас!)

  • @kykyqq3133
    @kykyqq3133 2 года назад

    Привет,вопрос не по теме.
    Интересует информация по курсам Python для не граждан России,очень много гомнокурсов на просторах интернета и хотелось бы их обойти стороной,может кто подскажет стоющий внимания курс?спасибо.
    П.с онлайн курс конечно же..

  • @gaidjiin9977
    @gaidjiin9977 3 года назад

    Привет, только пришел с твоего видео о фрилансе)))Научился парсить сайты по твоим видео) Спасибо тебе огромное:)
    И ещё хотел спросить,могу ли я уже выполнять хоть маленькие заказы только со знанием парсинга сайтов?

    • @PythonToday
      @PythonToday  3 года назад +1

      Привет, конечно можешь. Это одна из самых больших и активных ниш.

    • @gaidjiin9977
      @gaidjiin9977 3 года назад

      @@PythonToday понял, спасибо огромное)

    • @why-ej2xo
      @why-ej2xo 3 года назад +1

      @@gaidjiin9977 как успехи?

  • @90000nik
    @90000nik 2 года назад

    в password_lenght вы используете list comprehension, но можно ведь использовать generator expressions для ускорения программы чтобы не читать всю все значения в строке а только нужные на данный момент. Если нельзя использовать generator expressions можете объяснить почему?

  • @НиколайГринько-ф2м
    @НиколайГринько-ф2м 3 года назад

    у меня вопрос вот к примеру есть у меня слово привет и есть алфавит где к каждой букве приставлен спец символ как мне заменять буквы на определёные символы?

  • @nargan1129
    @nargan1129 2 года назад

    У меня почему-то при вводе неправильного пароля ошибки не вызывается и try/except не срабатывает

  • @РоманБодю
    @РоманБодю 3 года назад

    Если опустить все более адекватные способы извлечения пароля и попробовать довести до ума этот, то таки имею что сказать. 1) проверке пароля передаётся пусть, а значит файл читается заново с носителя => чем больше размер файла, тем всё будет печальнее. Решение - попробовать поместить файл в оперативку и работать с ним там, будет это объект внутри приложения или какой-то RAM-диск - по идее не принципиально. 2) Как уже было верно предложено, можно использовать многопоточность, но только внутри функции, так же можно попробовать посмотреть в сторону кластерности - Torch/Celery, тут уже комбайн может получиться знатный.

  • @LastWeg
    @LastWeg 3 года назад

    Спасибо за видос.

  • @War-_-ThunderAbrams
    @War-_-ThunderAbrams 9 месяцев назад

    Что делать если пишет can only concateate str (not "int") to str.

  • @ac130kz
    @ac130kz 3 года назад

    Дядь, какой ручной перебор, используй hashcat

  • @Sfinxsx
    @Sfinxsx 3 года назад +2

    А как подобрать пароль к листу или книге, который установлен на защиту от изменений (редактирований), а не при открытии файла?

    • @ВладимирЛюдмирский
      @ВладимирЛюдмирский 3 года назад

      Загуглить и узнать, что существуют буквально макросы, которые подбирают пароли и к листу, и к книге.

    • @Sfinxsx
      @Sfinxsx 3 года назад

      @@ВладимирЛюдмирский Благодарю!

  • @Anton_Holovin
    @Anton_Holovin Год назад

    Как для попрактиковаться интересно. Но вообще в екселе пароль любой сложности убирается блокнотом за 3 минуты

    • @МаксимЦарьков-э2т
      @МаксимЦарьков-э2т 10 месяцев назад

      Нет если вы про хекс редактор он просто не разархивирует файл с паролем! Только если пароль на листе или в ВБА

  • @djdkdkrk
    @djdkdkrk 3 года назад

    у меня вопрос низнаю насколько глупый, сколько времени уйдет на перебор всех от6 до8 символов??? хоть приблизительно.

  • @Daniel_Zhu_a6f
    @Daniel_Zhu_a6f 3 года назад +1

    Парсить данные последовательно через try/except не очень технологично, лучше через argparse. или сделать код в виде нормального модуля, чтобы пользователь сам импортировал этот код через питон и запускал main. и лучше не выводить попытки через print, а сделать шкалу загрузки с помощью tdqm и обновлять ее, скажем, раз в 500 попыток, чтобы терминал не засорять, но пользователь видел, сколько осталось времени (это оч просто, tqdm сам все вычисляет, исходя из заданного кол-ва итераций).

    • @PythonToday
      @PythonToday  3 года назад

      Спасибо за фидбэк!

  • @Silver_men_rev
    @Silver_men_rev 3 года назад

    Спасибо дружище, очень полезно и очень интересно, по одноклассникам не намечается парсир?

    • @МишаКузнецов-х7ъ
      @МишаКузнецов-х7ъ 3 года назад

      что там парсить, если не секрет?

    • @PythonToday
      @PythonToday  3 года назад

      Благодарю! А что там парсить? Последний раз заходил туда году в 2008 😀

  • @War-_-ThunderAbrams
    @War-_-ThunderAbrams 9 месяцев назад

    Как преобразовать еденичку в строке 36 там где ...[1] +1)...

  • @syracuse4612
    @syracuse4612 3 года назад +2

    а как подключить этот код к , например, вк или другим соцсетям?типо что бы это не только в консоли работало)

    • @abdurakhmanov__g
      @abdurakhmanov__g 3 года назад

      пахпахпа, я тож поэтому зашел

  • @dyb541
    @dyb541 3 года назад +2

    чтобы было быстрее надо убрать все принты из цикла

  • @danielbobrivich6849
    @danielbobrivich6849 3 года назад

    @pythonToday не работает если ставить только буквенный выдает стандартный aaaa при любом раскладе как пофиксить знаешь?

  • @RicardoMichael-et4dy
    @RicardoMichael-et4dy 2 года назад

    Ролик полезный, но писать брут на питоне - это шутка дьявола, если, конечно, это не несколько забытых символов, что вполне, целесообразно, т.к. на питоне код будет написан за 10-15 минут, и начнет работать)

    • @PythonToday
      @PythonToday  2 года назад

      Спасибо за фидбэк! Конечно есть множество специальных утилит в тысячи раз быстрее, просто было интересно попробовать самому.

  • @vetalvetalb485
    @vetalvetalb485 3 года назад

    Код выводит ошибку
    Подскажите чего не хватает
    Traceback (most recent call last):
    File "C:/Users/Vetal/PycharmProjects/pythonProject1/zdfg.py", line 73, in
    main()
    File "C:/Users/Vetal/PycharmProjects/pythonProject1/zdfg.py", line 69, in main
    print(brute_excel_doc())
    File "C:/Users/Vetal/PycharmProjects/pythonProject1/zdfg.py", line 41, in brute_excel_doc
    for pass_length in range(password_length[0], password_length[1] + 1):
    IndexError: list index out of range

  • @archeboom
    @archeboom 3 года назад

    Второй раз пароль находит моментально так как питон его запомнил можно вызвать id() и посмотреть так же dir() покаже что сохраненно

  • @WS-VIDEO
    @WS-VIDEO 3 года назад +8

    Там ничего взламывать не надо) меняешь расширение на zip, и в нем открываешь любым редактором листы и для параметра protection меняешь с 1 на 0)

    • @PythonToday
      @PythonToday  3 года назад

      На последнем офисе пробовал?

  • @kr37tik
    @kr37tik 2 года назад

    можете добавить графический интерфейс

  • @alexzeek8985
    @alexzeek8985 3 года назад

    круто

  • @darksniper407
    @darksniper407 3 года назад

    Доброго времени суток
    Насчет подбора - не понял, зачем так.
    Мой вариант генерации:
    import random, re, time
    from string import digits, punctuation, ascii_letters
    symbols = [f'{digits}', f'{ascii_letters}', f'{digits}{ascii_letters}', f'{digits}{ascii_letters}{punctuation}']; pot_symbols = ''
    chosen = input('...'); rand = 0
    pass_lenth = input('...')
    pass_lenth = [ int(item) for item in pass_lenth.split("-")]
    if re.match('^[1-4]$', chosen):
    pot_symbols = symbols[int(chosen)-1]
    st = time.time()
    for i in range(20000):
    print(f'{rand} - ', end=''); print(''.join(random.choice(pot_symbols) for _ in range(random.randint(pass_lenth[0], pass_lenth[1])))); rand += 1
    fin = time.time(); print(f"Created {rand} in {fin-st}.")
    Как-то так.

    • @PythonToday
      @PythonToday  3 года назад +1

      Привет, так у каждого свой код, если твой вариант работает - отлично

  • @DJEERY74
    @DJEERY74 3 года назад

    Строка остается на тех же 023 поэтому при повторном запуске у тебя и вылетает сразу результат! P.s.
    необходимо в наборе символов после первого перебора что бы возвращал строку на начало!

    • @PythonToday
      @PythonToday  3 года назад

      А разве не потому, что файл открыть но не закрыт?

    • @DJEERY74
      @DJEERY74 3 года назад

      ​@@PythonToday Ну если пере-открыть файл то соответственно курсор будет с начала строки, или же его можно перевести в начало строки. P.s это мои догадки )) я только учусь ))

    • @DJEERY74
      @DJEERY74 3 года назад

      @@PythonToday ну все верно, если пере открыть файл то строка вернется в начало, а можно ее вернуть в начало командой

  • @sergeishamanov1597
    @sergeishamanov1597 Год назад

    Если есть желание могу сказать алгоритм взлома по проще. Если конечно файл не зашифрован при этом

  • @LOGOSTT
    @LOGOSTT 3 года назад

    5:10 почему использовалась функция "if", а не "case"?

    • @lollopin3362
      @lollopin3362 3 года назад

      В пайтоне такого нет

    • @LOGOSTT
      @LOGOSTT 3 года назад

      @@lollopin3362
      Есть же альтернативные варианты замены if-else, а так же новая "match-case".
      _Я только изучаю Python, но знаю другие языки._

  • @safetymark8654
    @safetymark8654 3 года назад

    Попались питонисты, я с вами)

    • @PythonToday
      @PythonToday  3 года назад

      В наших рядах прибыло 😀

  • @White___Crow
    @White___Crow 3 года назад

    Это еще что за "***Hello friend!***"? Традиции чтить нужно! Все программирование на "Hello world" держится.

  • @aleksandr_muga
    @aleksandr_muga 3 года назад

    А если попробовать cuda, будет еще быстрее, так вычисления будет производить видео-карта.

    • @PythonToday
      @PythonToday  3 года назад +1

      Мне был интересен сам процесс) Есть множество программ предназначенных специально для таких целей.

  • @dhvriwokdoakemwfk
    @dhvriwokdoakemwfk 2 года назад

    Что за программа в которой он писал код, подскажите пожалуйста кто может.

  • @justieku
    @justieku 3 года назад +2

    Было бы неплохо задействовать многопоточность

    • @Славский-ш4п
      @Славский-ш4п 3 года назад +1

      в пайтене потоки не потоки

    • @justieku
      @justieku 3 года назад

      @@Славский-ш4п Лучше асинхронность

  • @sergeysobolenko871
    @sergeysobolenko871 3 года назад

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

    • @PythonToday
      @PythonToday  3 года назад

      Приветствую, да, как один из вариантов. Но есть и другие способы и программы быстро расколоть. Было интересно попробовать самому)