Тёмный

Reversing a python program, why python is not safe 

ZProger [ IT ]
Подписаться 111 тыс.
Просмотров 33 тыс.
50% 1

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.donationalerts.com/r/zproger
📁 PyInstallerExtractor: bit.ly/31ZXq4x
📁 Installing uncompyle6: pip install uncompyle6

Опубликовано:

 

3 сен 2020

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 140   
@zproger
@zproger 3 года назад
⭐Курс ООП и Приват канал: zproger-school.com/ ⭐Телеграм канал: t.me/+ltjhP8CCll80NTAx Не забывайте оставлять свои идеи для следующих видео в комментариях, большинство из них реализовывается на канале. Также подписывайтесь на канал, так как именно у нас публикуется отборный материал, который позволит вам изучать программирование и другие технологии в разы быстрее.
@mel-vs3rd
@mel-vs3rd 3 года назад
спасибо тебе, огромное!!!! то, что нужно, подпишусь и поставлю лайк!!
@zproger
@zproger 3 года назад
спасибо за поддержку :)
@user-mm2wr1bl8p
@user-mm2wr1bl8p 3 года назад
Спасибо огромное, зарёкся больше не забывать про гитхаб и контроль версий. Хорошо, что хотя бы exe был
@zproger
@zproger 3 года назад
:D
@MrNichosik
@MrNichosik 2 года назад
какая версия python нужна для uncompyle6? Установил версию 3.9.0 - пишет не поддерживается версия. Установил более раннюю (пробовал 3.8.0, 3.7.3) - пишет поддерживается только python 3.9.0
@REDwolfs
@REDwolfs Год назад
а как быть с ошибкой Unknown magic number при создании main?
@maksim4334
@maksim4334 3 года назад
Было приятно послушать, какие книги были прочитаны и не большую рецензию к ним. Мне больше интересны по этичному хакингу, криптографии, разработке ПО. Прям 10-20 минут подкаста 2-4 книги.
@zproger
@zproger 3 года назад
Была идея заснять про это, книг конечно у меня целая куча годных, как будет время сделаю что-то подобное
@development-eg8ir
@development-eg8ir Год назад
Привет! А если .exe распаковывается, но при этом файла с его названием нету в папке extracted?
@user-cl3ng7wz6m
@user-cl3ng7wz6m 7 месяцев назад
Всем привет! Потерялся у меня исходный код на питоне, остался только exe (компилировал с помощью auto-py-to-xe). Пытался восстановить код как показано в видео, но у меня выходит на финальном шаге ошибку KeyError: '3.11.7'. С чем это можем быть связано?
@0nly0n3
@0nly0n3 2 года назад
Четко, и понятно. Без воды. Жалко автор только про питон видео делает
@zproger
@zproger 2 года назад
Благодарю за фидбэк :)
@imai_official
@imai_official Год назад
А как конверировать много файловый проект на .exe файл? У меня ощибка выходит
@sledleo
@sledleo 2 года назад
Спасибо, наглядно и понятно, респект! А использование dll поможет защитить программу? И как самому создавать и использовать dll в Python?
@zproger
@zproger 2 года назад
DLL частично поможет, так как чтобы реверснуть её, нужны будут знания в ассемблере.
@tobemaguire7389
@tobemaguire7389 3 года назад
годно! спасибо
@zproger
@zproger 3 года назад
Пожалуйста :)
@DA-fc7ry
@DA-fc7ry 2 года назад
Молодец. Спасибо. Узнал о небезопасности питона.
@zproger
@zproger 2 года назад
Много других языков можно также преобразовать :)
@antonvorobiev9507
@antonvorobiev9507 2 года назад
Спасибо за Ваш труд. Предлагаю тему для видео - деобфускации кода... Например, разобрать обфускацию от pyarmor.
@zproger
@zproger 2 года назад
Хорошая идея, спасибо
@megher
@megher 3 года назад
3.9 уже не возможно вскрыть? В консоле пишет, uncompyle6 requires Python 2.6-3.8. При откате на питон 3.8 пишет, что эта программа написана для другой версии
@zproger
@zproger 3 года назад
Не тестировал на 3.9, возможно модуль не поддерживает его.
@user-ly6ox7xm9c
@user-ly6ox7xm9c 9 месяцев назад
данный алгоритм не работает для python 3.9. как-то можно его оптимизировать или модифицировать для python 3.9?
@Minecraft-li8qs
@Minecraft-li8qs 3 года назад
Unsupported pyinstaller version or not a pyinstaller archive, не подскажите что делать, пожалуйста?:
@zproger
@zproger 3 года назад
Вставьте в гугл переводчик, и всё станет ясно
@f1denj
@f1denj 2 года назад
Вопросик, а если нету ни abc, ни файла без расширения. А сам ехе, который в темпе лежит, накрыт вмп 3.5
@zproger
@zproger 2 года назад
Способ работает только с abc
@user-iu6xg8wo8l
@user-iu6xg8wo8l 2 года назад
Я вообще сторонник open source, но это довольно интересно. Конечно в идеологических целях)
@zproger
@zproger 2 года назад
Согласен :)
@wowlikon
@wowlikon Год назад
Я тоже за open source, но некоторые разработчики его не поддерживают.
@ladislawrainbow
@ladislawrainbow 7 месяцев назад
​@@wowlikonпочему человек, продумавший технологию работы, должен бесплатно отдать любому желающему зиму технологию?
@lumus7671
@lumus7671 2 года назад
Такой Вопрос, а если файл скомпилирован не в один файл, а вот там папка, тобиш без -f также надо просто переместить пайэстрактор в папку к нему?
@zproger
@zproger 2 года назад
Не совсем, там как правило все библиотеки уже и лежат в открытом виде
@lumus7671
@lumus7671 2 года назад
@@zproger ро там нет того файла, который без расширения
@barkas2589
@barkas2589 Год назад
Ок, спасибо
@user-ws1cf7cw8t
@user-ws1cf7cw8t 2 года назад
А куда сохранился файл то?
@OasisWordLessons
@OasisWordLessons 2 года назад
Очень полезная информация. У меня вопрос, если не знаешь накаком языке была написана программа, как быть в такой ситуации? Возможно ли сделать декомпиляцию?
@zproger
@zproger 2 года назад
Этот способ работает только под Python, под другие языки нужно другой подход искать :)
@dimonzakiev
@dimonzakiev 2 года назад
C# - dotPeek, Java - там своя утилитка, C/C++/Rust - дизассемблирование(ida)
@anonim19992
@anonim19992 Год назад
многие библиотеки может показать банальный virustotal =) (вкладка relations
@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 года назад
Пока что и сам такого не находил, большинству просто это не нужно. Если что-то найду на эту тему, будет также видео и под линукс.
@_OverNiko_
@_OverNiko_ 3 года назад
Ну, раз есть способ вскрыть, значит должен быть способ защитить, как насчет снять видео на эту тему ?
@zproger
@zproger 3 года назад
Они уже есть на канале
@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....
@kovaleyv
@kovaleyv 6 месяцев назад
А как открыть полностью программу кодом то?)
@tihon4979
@tihon4979 3 года назад
Пиздато! :)
@zproger
@zproger 3 года назад
спасибо :)
@EdGull
@EdGull 3 года назад
Спасибище!
@zproger
@zproger 3 года назад
Пожалуйста :)
@kossst9170
@kossst9170 3 года назад
@@zproger Почему-то у меня не вышло. В cmd пишет, что pyinstxtractor.py не является внутренней или внешней командой, исполняемой программой или пакетным файлом. Пробовал добавлять в PATH, но всё равно не получилось.
@fedor_ado
@fedor_ado 3 года назад
Когда где-то коммент прочёл, всё забыл, кроме немного смысла. Если собрать самому питон из исходников, вроде как, и что-то там поменять, то скомпилированный на нём из test.py test.pyc файл уже не так просто будет вскрыть методом из этого видео, потому как ты не будешь знать чего там в hex редакторе копировать, надеюсь понятно объяснил. Ну и работать этот pyc, соответственно, будет только на твоём экземпляре питона, но это мелочи уже. Автор, что скажете по такому методу?
@zproger
@zproger 3 года назад
Этот метод работает только для exe и python версии ниже 3.8. Версии выше уже нельзя вскрыть этим способом, хотя есть много инструментов на гитхабе, которые позволяют делать подобное.
@aleksey_y
@aleksey_y Год назад
Интересна также тема ии
@zproger
@zproger Год назад
Спасибо за идею, учту
@squeaks6130
@squeaks6130 Год назад
Привет щас это тема работает?
@limtime3054
@limtime3054 2 года назад
Есть ли способ сделать такое в версии python 3.9?
@zproger
@zproger 2 года назад
Пока что такое сделать нельзя
@Katar1x
@Katar1x 2 года назад
@@zproger На сегодняшний день не поменялось? Для версии 3.9
@f1denj
@f1denj 2 года назад
@@Katar1x на сегодняшний день, я плачу от безысходности по этой причине
@user-ev5vb7rk7b
@user-ev5vb7rk7b Год назад
@@zproger Что-то поменялось?
@CAHCrawlAdaptHide
@CAHCrawlAdaptHide 4 дня назад
nuitka - транспиляция -> компиляция плюсов
@dikago8258
@dikago8258 2 года назад
а у меня пишет тип не поддерживается 3.9 питон
@zproger
@zproger 2 года назад
Выше 3.8 не работает к сожалению, пофиксили
@rucat284
@rucat284 2 года назад
Хорошо что уже вышла новая версия python где это по фиксили
@zproger
@zproger 2 года назад
Это да =)
@_XeaN_
@_XeaN_ 2 года назад
@@zproger А сейчас, уже никак не посмотреть исходный код?
@lexelfs
@lexelfs 3 месяца назад
))) посмеялся от души)))
@zproger
@zproger 3 месяца назад
;)
@lexelfs
@lexelfs 3 месяца назад
@@zproger давай я сделаю для тебя экзешник из скрипта питона и попробуешь разобрать.
@-tg_soft3661
@-tg_soft3661 Год назад
Бро она уже не вытаскивает ничего я имею ввиду экстрактор
@zproger
@zproger Год назад
Ну оно ведь не может работать вечно, видео то уже сколько лет =)
@user-ut1mb4by9o
@user-ut1mb4by9o 3 года назад
А кто Вы по профессии конкретно по направлению? Или Вы фрилансер?
@zproger
@zproger 3 года назад
Обычный программист) Фрилансить пока не пробовал
@user-ut1mb4by9o
@user-ut1mb4by9o 3 года назад
@@zproger а в каком-нибудь отдельном направлениии планируете развиваться и работать? Web, Game dev, Protecting?
@zproger
@zproger 3 года назад
Разработка ПО и вирусная аналитика. Эти 2 темы достаточно интересны, возможно в будущем будет отдельный курс по анализу вредоносов и защите систем.
@wordpreslabs
@wordpreslabs 3 года назад
Вот по этому вся логика защиты должна работать на сервере)
@zproger
@zproger 3 года назад
От части правильно, но и сервер также можно взломать, тут лишь вопрос выгодно это делать или нет
@exception_
@exception_ 2 года назад
перехват пакетов никто не отменял
@SashaGun_GD
@SashaGun_GD Год назад
@@exception_ шифрование никто не отменял
@cheesingtodeath
@cheesingtodeath Год назад
так мамкинам программистам такая инфа бесполезна
@MrTASGER
@MrTASGER 3 месяца назад
как собрать всё это дело обратно в exe?
@zproger
@zproger 3 месяца назад
Через Pyinstaller
@bleedy7589
@bleedy7589 3 года назад
а нельзя сделать так чтобы программа сама чистила следы работы?
@zproger
@zproger 3 года назад
Эти файлы сами удаляются после завершения работы программы, но extractor запускает программу на выполнение и в этот же момент извлекает эти файлы, защититься от этого стандартными средствами нельзя, так как по такому принципу и работает интерпретатор. Могу посоветовать посмотреть видео о nuitka в одном из видео на канале, это должно помочь.
@bleedy7589
@bleedy7589 3 года назад
@@zproger Спасибо
@user-mh5yb3ub3r
@user-mh5yb3ub3r 3 года назад
Познавательное видео, взломал свою прогу приблизительно 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 года назад
Далеко не всё получается преобразовать обратно в читаемый код
@dicloniusN35
@dicloniusN35 2 года назад
а на чем проги безопасны? на java ?
@zproger
@zproger 2 года назад
Ни на чем, к сожалению. Но как минимум тот же Rust или Go будут достаточно безопасными
@ramilgaziev2541
@ramilgaziev2541 Месяц назад
Я тут решил сделать програмку для хранения паролей, а тут такое. _.
@zproger
@zproger Месяц назад
Бывает)
@Rixed6154
@Rixed6154 2 года назад
Если русский текст неправильно вскрывается, то пароль можно сделать на русском
@zproger
@zproger 2 года назад
Так можно энкод сделать в нужную кодировку и будет нормально)
@sweatysweaty7280
@sweatysweaty7280 Год назад
а можно просто через socket проверку пароля,но если вскроют программу то просто вырежут проверку(
@user-px1rc4zn1t
@user-px1rc4zn1t 2 года назад
го скину прогу достанешь исходник на пайтоне?
@zproger
@zproger 2 года назад
не :)
@user-px1rc4zn1t
@user-px1rc4zn1t 2 года назад
@@zproger 100 Р
@maksim4334
@maksim4334 3 года назад
Лайк я конечно поставил, но написать мне нечего.
@zproger
@zproger 3 года назад
Спасибо, это круто что вы написали комментарий, любая активность для меня очень важна
@maksim4334
@maksim4334 3 года назад
@@zproger понимаю, поэтому и пишу. Хотя смысловой нагрузки они, конечно же, не несут.
@user-jt6ig9yx9d
@user-jt6ig9yx9d Год назад
в 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.
@atheroot
@atheroot 2 года назад
CPython в помощь.
@zproger
@zproger 2 года назад
=)
@software9256
@software9256 2 года назад
чето не работает(((( способ(((
@zproger
@zproger 2 года назад
В версиях выше 3.8 пофиксили
@bro_fedka3951
@bro_fedka3951 3 года назад
Неужели нет никакого способа ?
@zproger
@zproger 3 года назад
Способ есть, о нем в будущем будет отдельное видео
@bro_fedka3951
@bro_fedka3951 3 года назад
@@zproger От души душевно в душевно в душу !
@zproger
@zproger 3 года назад
От опытного реверсера не спасет, но от новичка вполне, об этом способе в будущем будет отдельное видео.
@aleksandrmakedonskiy3808
@aleksandrmakedonskiy3808 3 года назад
@@zproger ждём 👍
@zproger
@zproger 3 года назад
Видео уже есть на канале :)
@alexmay9615
@alexmay9615 3 года назад
Антивирусник напишите
@zproger
@zproger 3 года назад
Спасибо за идею
@user-po6zs4gn6w
@user-po6zs4gn6w 2 года назад
увы у меня получилось
@zproger
@zproger 2 года назад
На Python 3.9 такое уже не должно работать
@ramzbew5674
@ramzbew5674 11 месяцев назад
Файлы .рус 3.11 версии питона нельзя зареверсить, пользуйтесь
@deeffestt
@deeffestt 9 месяцев назад
а 3.10?
@master8920
@master8920 2 года назад
Эм, ну тогда нет смысла вообще за безопасность думать, по ходу python был создан для опенсорщиков 😅
@zproger
@zproger 2 года назад
Не) После версии 3.8 это уже не работает))
@master8920
@master8920 2 года назад
@@zprogerа тогда всё безопаснее стало?
@zproger
@zproger 2 года назад
Уже да, как минимум такой способ больше не работает. Ещё пару обновлений и Python будет сложно распаковать)
@master8920
@master8920 2 года назад
@@zproger Уже радует что безопасность в python не стоит на месте )
@valera_kardan
@valera_kardan Год назад
@@zproger Интересно на 3.11 хоть какой-то способ остался? Спрашиваю не для вскрытия, а для понимания насколько сейчас программы защищены.
Далее
КАК УСТРОЕН EXE ФАЙЛ?
25:38
Просмотров 305 тыс.
Who has won ?? 😀 #shortvideo #lizzyisaeva
00:24
Просмотров 30 млн