Reversing a python program, why python is not safe

แชร์
ฝัง
  • เผยแพร่เมื่อ 30 ก.ย. 2024
  • Reversing a python program, why python is not safe
    📗 All links to useful materials are below 📗
    In this video, we will learn how to get the source code of ready-made exe programs in python.
    After viewing it, you will learn how the packaging takes place and why Python programs are not secure. We will also look at the process of unpacking the finished exe file.
    ⭐ Free version of Kite: bit.ly/3cKz97C
    ⭐ PyQt5 Python Course: pyqt5.ru
    ⭐ Channel with useful material: t.me/codeblog8
    📁 Website scraping course: bit.ly/394VKtG
    📁 Selenium Python Course: bit.ly/3p669ef
    📁 Contact me: zproger777@gmail.com
    📁 Support channel: www.donational...
    📁 PyInstallerExtractor: bit.ly/31ZXq4x
    📁 Installing uncompyle6: pip install uncompyle6

ความคิดเห็น • 141

  • @zproger
    @zproger  3 ปีที่แล้ว +4

    ⭐Курс ООП и Приват канал: zproger-school.com/
    ⭐Телеграм канал: t.me/+ltjhP8CCll80NTAx
    Не забывайте оставлять свои идеи для следующих видео в комментариях,
    большинство из них реализовывается на канале. Также подписывайтесь
    на канал, так как именно у нас публикуется отборный материал, который позволит
    вам изучать программирование и другие технологии в разы быстрее.

  • @_OverNiko_
    @_OverNiko_ 3 ปีที่แล้ว +7

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

    • @zproger
      @zproger  3 ปีที่แล้ว +3

      Они уже есть на канале

  • @maksim4334
    @maksim4334 4 ปีที่แล้ว +7

    Было приятно послушать, какие книги были прочитаны и не большую рецензию к ним. Мне больше интересны по этичному хакингу, криптографии, разработке ПО. Прям 10-20 минут подкаста 2-4 книги.

    • @zproger
      @zproger  4 ปีที่แล้ว +5

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

  • @JustRixed
    @JustRixed 2 ปีที่แล้ว +5

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

    • @zproger
      @zproger  2 ปีที่แล้ว +1

      Так можно энкод сделать в нужную кодировку и будет нормально)

    • @sweatysweaty7280
      @sweatysweaty7280 ปีที่แล้ว

      а можно просто через socket проверку пароля,но если вскроют программу то просто вырежут проверку(

  • @sledleo
    @sledleo 2 ปีที่แล้ว +4

    Спасибо, наглядно и понятно, респект!
    А использование dll поможет защитить программу?
    И как самому создавать и использовать dll в Python?

    • @zproger
      @zproger  2 ปีที่แล้ว +3

      DLL частично поможет, так как чтобы реверснуть её, нужны будут знания в ассемблере.

  • @MrNichosik
    @MrNichosik 2 ปีที่แล้ว +2

    какая версия python нужна для uncompyle6? Установил версию 3.9.0 - пишет не поддерживается версия. Установил более раннюю (пробовал 3.8.0, 3.7.3) - пишет поддерживается только python 3.9.0

  • @0nly0n3
    @0nly0n3 2 ปีที่แล้ว +6

    Четко, и понятно. Без воды. Жалко автор только про питон видео делает

    • @zproger
      @zproger  2 ปีที่แล้ว

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

  • @antonvorobiev9507
    @antonvorobiev9507 2 ปีที่แล้ว +6

    Спасибо за Ваш труд.
    Предлагаю тему для видео - деобфускации кода... Например, разобрать обфускацию от pyarmor.

    • @zproger
      @zproger  2 ปีที่แล้ว +1

      Хорошая идея, спасибо

  • @user-vv5hh4ci4j
    @user-vv5hh4ci4j หลายเดือนก่อน

    Что если попросить got переписать код python например на go? А go уже скомпилить.

  • @CAHCrawlAdaptHide
    @CAHCrawlAdaptHide 2 หลายเดือนก่อน

    nuitka - транспиляция -> компиляция плюсов

  • @ЭдКалумнуз
    @ЭдКалумнуз 3 ปีที่แล้ว +4

    Я вообще сторонник open source, но это довольно интересно. Конечно в идеологических целях)

    • @zproger
      @zproger  3 ปีที่แล้ว +3

      Согласен :)

    • @wowlikon
      @wowlikon ปีที่แล้ว +1

      Я тоже за open source, но некоторые разработчики его не поддерживают.

    • @ladislawrainbow
      @ladislawrainbow 10 หลายเดือนก่อน +1

      ​@@wowlikonпочему человек, продумавший технологию работы, должен бесплатно отдать любому желающему зиму технологию?

  • @squeaks6130
    @squeaks6130 2 ปีที่แล้ว +1

    Привет щас это тема работает?

  • @megher
    @megher 3 ปีที่แล้ว +1

    3.9 уже не возможно вскрыть? В консоле пишет, uncompyle6 requires Python 2.6-3.8. При откате на питон 3.8 пишет, что эта программа написана для другой версии

    • @zproger
      @zproger  3 ปีที่แล้ว

      Не тестировал на 3.9, возможно модуль не поддерживает его.

  • @Minecraft-li8qs
    @Minecraft-li8qs 3 ปีที่แล้ว +1

    Unsupported pyinstaller version or not a pyinstaller archive, не подскажите что делать, пожалуйста?:

    • @zproger
      @zproger  3 ปีที่แล้ว

      Вставьте в гугл переводчик, и всё станет ясно

  • @Даня-ы3м
    @Даня-ы3м ปีที่แล้ว

    в main.py выводит
    I don't know about Python version '3.10.5' yet.
    Python versions 3.9 and greater are not supported.
    I don't know about Python version '3.10.5' yet.
    Python versions 3.9 and greater are not supported.
    I don't know about Python version '3.10.5' yet.
    Python versions 3.9 and greater are not supported.
    I don't know about Python version '3.10.5' yet.
    Python versions 3.9 and greater are not supported.
    I don't know about Python version '3.10.5' yet.
    Python versions 3.9 and greater are not supported.
    I don't know about Python version '3.10.5' yet.
    Python versions 3.9 and greater are not supported.

  • @f1denj
    @f1denj 2 ปีที่แล้ว +1

    Вопросик, а если нету ни abc, ни файла без расширения. А сам ехе, который в темпе лежит, накрыт вмп 3.5

    • @zproger
      @zproger  2 ปีที่แล้ว

      Способ работает только с abc

  • @fedor_ado
    @fedor_ado 3 ปีที่แล้ว +1

    Когда где-то коммент прочёл, всё забыл, кроме немного смысла. Если собрать самому питон из исходников, вроде как, и что-то там поменять, то скомпилированный на нём из test.py test.pyc файл уже не так просто будет вскрыть методом из этого видео, потому как ты не будешь знать чего там в hex редакторе копировать, надеюсь понятно объяснил. Ну и работать этот pyc, соответственно, будет только на твоём экземпляре питона, но это мелочи уже. Автор, что скажете по такому методу?

    • @zproger
      @zproger  3 ปีที่แล้ว +1

      Этот метод работает только для exe и python версии ниже 3.8.
      Версии выше уже нельзя вскрыть этим способом, хотя есть много инструментов на гитхабе, которые позволяют делать подобное.

  • @wordpreslabs
    @wordpreslabs 3 ปีที่แล้ว +3

    Вот по этому вся логика защиты должна работать на сервере)

    • @zproger
      @zproger  3 ปีที่แล้ว

      От части правильно, но и сервер также можно взломать, тут лишь вопрос выгодно это делать или нет

    • @exception_
      @exception_ 2 ปีที่แล้ว

      перехват пакетов никто не отменял

    • @SashaGun_GD
      @SashaGun_GD 2 ปีที่แล้ว +1

      @@exception_ шифрование никто не отменял

    • @cheesingtodeath
      @cheesingtodeath ปีที่แล้ว

      так мамкинам программистам такая инфа бесполезна

  • @OasisWordLessons
    @OasisWordLessons 2 ปีที่แล้ว +2

    Очень полезная информация. У меня вопрос, если не знаешь накаком языке была написана программа, как быть в такой ситуации? Возможно ли сделать декомпиляцию?

    • @zproger
      @zproger  2 ปีที่แล้ว

      Этот способ работает только под Python, под другие языки нужно другой подход искать :)

    • @dimonzakiev
      @dimonzakiev 2 ปีที่แล้ว

      C# - dotPeek, Java - там своя утилитка, C/C++/Rust - дизассемблирование(ida)

    • @anonim19992
      @anonim19992 2 ปีที่แล้ว +1

      многие библиотеки может показать банальный virustotal =) (вкладка relations

  • @DA-fc7ry
    @DA-fc7ry 2 ปีที่แล้ว +2

    Молодец. Спасибо. Узнал о небезопасности питона.

    • @zproger
      @zproger  2 ปีที่แล้ว

      Много других языков можно также преобразовать :)

  • @АлександрВолков-й6х8к
    @АлександрВолков-й6х8к 3 ปีที่แล้ว +1

    Познавательное видео, взломал свою прогу приблизительно 1300строк, 90% вскрыло, остальные 10% выглядят так
    L. 880 50 DUP_TOP
    52 LOAD_GLOBAL ValueError
    54 COMPARE_OP exception-match
    56 POP_JUMP_IF_FALSE 70 'to 70'
    58 POP_TOP
    -> 60 POP_TOP
    62 POP_TOP
    Instruction context:

    L. 993 834 LOAD_GLOBAL calendar
    -> 836_0 COME_FROM 470 '470'
    836_1 COME_FROM 174 '174'
    836 LOAD_FAST 'sklad'
    838 LOAD_FAST 'order'
    840 LOAD_FAST 'd_res'
    хотел узнать можно ли вскрыть все, в консоли появляется надпись Deparsing stopped due to parse error
    , я так понимаю что-то не так с синтаксисом

    • @zproger
      @zproger  3 ปีที่แล้ว

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

  • @-tg_soft3661
    @-tg_soft3661 2 ปีที่แล้ว +1

    Бро она уже не вытаскивает ничего я имею ввиду экстрактор

    • @zproger
      @zproger  2 ปีที่แล้ว

      Ну оно ведь не может работать вечно, видео то уже сколько лет =)

  • @ramilgaziev2541
    @ramilgaziev2541 3 หลายเดือนก่อน

    Я тут решил сделать програмку для хранения паролей, а тут такое. _.

    • @zproger
      @zproger  3 หลายเดือนก่อน

      Бывает)

  • @limtime3054
    @limtime3054 3 ปีที่แล้ว +2

    Есть ли способ сделать такое в версии python 3.9?

    • @zproger
      @zproger  3 ปีที่แล้ว

      Пока что такое сделать нельзя

    • @Katar1x
      @Katar1x 2 ปีที่แล้ว

      @@zproger На сегодняшний день не поменялось? Для версии 3.9

    • @f1denj
      @f1denj 2 ปีที่แล้ว

      @@Katar1x на сегодняшний день, я плачу от безысходности по этой причине

    • @AveEfrol-w5p
      @AveEfrol-w5p ปีที่แล้ว

      @@zproger Что-то поменялось?

  • @dikago8258
    @dikago8258 2 ปีที่แล้ว +1

    а у меня пишет тип не поддерживается 3.9 питон

    • @zproger
      @zproger  2 ปีที่แล้ว

      Выше 3.8 не работает к сожалению, пофиксили

  • @REDwolfs
    @REDwolfs ปีที่แล้ว

    а как быть с ошибкой Unknown magic number при создании main?

  • @dicloniusN35
    @dicloniusN35 2 ปีที่แล้ว +1

    а на чем проги безопасны? на java ?

    • @zproger
      @zproger  2 ปีที่แล้ว

      Ни на чем, к сожалению.
      Но как минимум тот же Rust или Go будут достаточно безопасными

  • @АнтонОрлов-п7ъ
    @АнтонОрлов-п7ъ ปีที่แล้ว

    данный алгоритм не работает для python 3.9. как-то можно его оптимизировать или модифицировать для python 3.9?

  • @lumus7671
    @lumus7671 2 ปีที่แล้ว +1

    Такой Вопрос, а если файл скомпилирован не в один файл, а вот там папка, тобиш без -f также надо просто переместить пайэстрактор в папку к нему?

    • @zproger
      @zproger  2 ปีที่แล้ว

      Не совсем, там как правило все библиотеки уже и лежат в открытом виде

    • @lumus7671
      @lumus7671 2 ปีที่แล้ว

      @@zproger ро там нет того файла, который без расширения

  • @ДенисКуликов-л1в
    @ДенисКуликов-л1в 9 หลายเดือนก่อน

    Всем привет! Потерялся у меня исходный код на питоне, остался только exe (компилировал с помощью auto-py-to-xe). Пытался восстановить код как показано в видео, но у меня выходит на финальном шаге ошибку KeyError: '3.11.7'. С чем это можем быть связано?

  • @mel-vs3rd
    @mel-vs3rd 3 ปีที่แล้ว +1

    спасибо тебе, огромное!!!! то, что нужно, подпишусь и поставлю лайк!!

    • @zproger
      @zproger  3 ปีที่แล้ว

      спасибо за поддержку :)

  • @atheroot
    @atheroot 2 ปีที่แล้ว +1

    CPython в помощь.

  • @software9256
    @software9256 3 ปีที่แล้ว +1

    чето не работает(((( способ(((

    • @zproger
      @zproger  3 ปีที่แล้ว

      В версиях выше 3.8 пофиксили

  • @ВладЧебан-ю3ж
    @ВладЧебан-ю3ж 3 ปีที่แล้ว +1

    увы у меня получилось

    • @zproger
      @zproger  3 ปีที่แล้ว

      На Python 3.9 такое уже не должно работать

  • @rucat284
    @rucat284 2 ปีที่แล้ว +1

    Хорошо что уже вышла новая версия python где это по фиксили

    • @zproger
      @zproger  2 ปีที่แล้ว

      Это да =)

    • @_XeaN_
      @_XeaN_ 2 ปีที่แล้ว

      @@zproger А сейчас, уже никак не посмотреть исходный код?

  • @aleksey_y
    @aleksey_y ปีที่แล้ว +1

    Интересна также тема ии

    • @zproger
      @zproger  ปีที่แล้ว

      Спасибо за идею, учту

  • @kabyldasarsekey3059
    @kabyldasarsekey3059 3 ปีที่แล้ว

    у меня пишет ошибку "uncompyle6 RezTOP_WH_V1.exe_extracte\RezTOP.pyc > mais.py
    File 'RezTOP_WH_V1.exe_extracte\RezTOP.pyc' doesn't exist. Skipped"

    • @zproger
      @zproger  3 ปีที่แล้ว

      extracted, а не extracte....

  • @development-eg8ir
    @development-eg8ir ปีที่แล้ว

    Привет! А если .exe распаковывается, но при этом файла с его названием нету в папке extracted?

  • @bleedy7589
    @bleedy7589 3 ปีที่แล้ว +1

    а нельзя сделать так чтобы программа сама чистила следы работы?

    • @zproger
      @zproger  3 ปีที่แล้ว

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

    • @bleedy7589
      @bleedy7589 3 ปีที่แล้ว

      @@zproger Спасибо

  • @imai_official
    @imai_official ปีที่แล้ว

    А как конверировать много файловый проект на .exe файл? У меня ощибка выходит

  • @kovaleyv
    @kovaleyv 8 หลายเดือนก่อน

    А как открыть полностью программу кодом то?)

  • @ДенисГалкин-э1р
    @ДенисГалкин-э1р 3 ปีที่แล้ว +1

    Спасибо огромное, зарёкся больше не забывать про гитхаб и контроль версий. Хорошо, что хотя бы exe был

  • @ДанилВахрушев-т4э
    @ДанилВахрушев-т4э 4 ปีที่แล้ว +1

    А кто Вы по профессии конкретно по направлению? Или Вы фрилансер?

    • @zproger
      @zproger  4 ปีที่แล้ว

      Обычный программист) Фрилансить пока не пробовал

    • @ДанилВахрушев-т4э
      @ДанилВахрушев-т4э 4 ปีที่แล้ว

      @@zproger а в каком-нибудь отдельном направлениии планируете развиваться и работать? Web, Game dev, Protecting?

    • @zproger
      @zproger  4 ปีที่แล้ว +2

      Разработка ПО и вирусная аналитика.
      Эти 2 темы достаточно интересны, возможно в будущем будет отдельный курс по анализу вредоносов и защите систем.

  • @alexmay9615
    @alexmay9615 4 ปีที่แล้ว +1

    Антивирусник напишите

    • @zproger
      @zproger  4 ปีที่แล้ว

      Спасибо за идею

  • @master8920
    @master8920 2 ปีที่แล้ว +1

    Эм, ну тогда нет смысла вообще за безопасность думать, по ходу python был создан для опенсорщиков 😅

    • @zproger
      @zproger  2 ปีที่แล้ว

      Не) После версии 3.8 это уже не работает))

    • @master8920
      @master8920 2 ปีที่แล้ว +1

      @@zprogerа тогда всё безопаснее стало?

    • @zproger
      @zproger  2 ปีที่แล้ว

      Уже да, как минимум такой способ больше не работает.
      Ещё пару обновлений и Python будет сложно распаковать)

    • @master8920
      @master8920 2 ปีที่แล้ว

      @@zproger Уже радует что безопасность в python не стоит на месте )

    • @valera_kardan
      @valera_kardan ปีที่แล้ว

      @@zproger Интересно на 3.11 хоть какой-то способ остался? Спрашиваю не для вскрытия, а для понимания насколько сейчас программы защищены.

  • @tihon4979
    @tihon4979 4 ปีที่แล้ว +2

    Пиздато! :)

    • @zproger
      @zproger  4 ปีที่แล้ว

      спасибо :)

  • @Ятвойротнаоборот-д9ю
    @Ятвойротнаоборот-д9ю 2 ปีที่แล้ว

    А куда сохранился файл то?

  • @MrTASGER
    @MrTASGER 6 หลายเดือนก่อน

    как собрать всё это дело обратно в exe?

    • @zproger
      @zproger  6 หลายเดือนก่อน +1

      Через Pyinstaller

  • @barkas2589
    @barkas2589 ปีที่แล้ว

    Ок, спасибо

  • @САНЯбАТЬК
    @САНЯбАТЬК 2 ปีที่แล้ว

    го скину прогу достанешь исходник на пайтоне?

  • @lexelfs
    @lexelfs 6 หลายเดือนก่อน

    ))) посмеялся от души)))

    • @zproger
      @zproger  6 หลายเดือนก่อน

      ;)

    • @lexelfs
      @lexelfs 6 หลายเดือนก่อน

      @@zproger давай я сделаю для тебя экзешник из скрипта питона и попробуешь разобрать.

  • @maksim4334
    @maksim4334 4 ปีที่แล้ว

    Лайк я конечно поставил, но написать мне нечего.

    • @zproger
      @zproger  4 ปีที่แล้ว

      Спасибо, это круто что вы написали комментарий, любая активность для меня очень важна

    • @maksim4334
      @maksim4334 4 ปีที่แล้ว

      @@zproger понимаю, поэтому и пишу. Хотя смысловой нагрузки они, конечно же, не несут.

  • @tobemaguire7389
    @tobemaguire7389 3 ปีที่แล้ว

    годно! спасибо

    • @zproger
      @zproger  3 ปีที่แล้ว

      Пожалуйста :)

  • @live-lh4du
    @live-lh4du 3 ปีที่แล้ว

    как тоже самое сделать для linux? если компилировать через pyinstaller на linux, то создается не exe, а бинарный файл, при запуске этого бинарного файла так же появляется папка в tmp, но файла .pyc там нет.

    • @zproger
      @zproger  3 ปีที่แล้ว

      Линукс не поддерживает exe файлы и temp у него работает совсем по-другому. Как вариант можно использовать wine.

    • @live-lh4du
      @live-lh4du 3 ปีที่แล้ว

      @@zproger ну вот представь, я через на linux mint через pyinstaller компилирую код в бинарный файл, что теперь этот бинарный файл обратно декопилировать не получится? Pyinstaller на window и на linux ведёт себя по разному, на win по компиляции кода мы получим exe, а на Линукс мы получим бинарный файл без расширения, так вот в чем суть, как теперь его декопилировать

    • @zproger
      @zproger  3 ปีที่แล้ว

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

    • @live-lh4du
      @live-lh4du 3 ปีที่แล้ว

      @@zproger Есть свободное ПО, а есть проприетарное, вот у меня к сожалению попался второй вариант, в интернете к сожалению не нашел инфы как сделать такое же с ELF

    • @zproger
      @zproger  3 ปีที่แล้ว +1

      Пока что и сам такого не находил, большинству просто это не нужно. Если что-то найду на эту тему, будет также видео и под линукс.

  • @bro_fedka3951
    @bro_fedka3951 4 ปีที่แล้ว

    Неужели нет никакого способа ?

    • @zproger
      @zproger  4 ปีที่แล้ว +1

      Способ есть, о нем в будущем будет отдельное видео

    • @bro_fedka3951
      @bro_fedka3951 4 ปีที่แล้ว

      @@zproger От души душевно в душевно в душу !

    • @zproger
      @zproger  4 ปีที่แล้ว

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

    • @aleksandrmakedonskiy3808
      @aleksandrmakedonskiy3808 3 ปีที่แล้ว

      @@zproger ждём 👍

    • @zproger
      @zproger  3 ปีที่แล้ว

      Видео уже есть на канале :)

  • @ramzbew5674
    @ramzbew5674 ปีที่แล้ว +1

    Файлы .рус 3.11 версии питона нельзя зареверсить, пользуйтесь

  • @EdGull
    @EdGull 3 ปีที่แล้ว +1

    Спасибище!

    • @zproger
      @zproger  3 ปีที่แล้ว

      Пожалуйста :)

    • @kossst9170
      @kossst9170 3 ปีที่แล้ว

      @@zproger Почему-то у меня не вышло. В cmd пишет, что pyinstxtractor.py не является внутренней или внешней командой, исполняемой программой или пакетным файлом. Пробовал добавлять в PATH, но всё равно не получилось.