Найти - Пользователи
Полная версия: Достать/получить исходник из exe-файла, который был "скомпилирован" при помощи nuitka и mingw64
Начало » Python для экспертов » Достать/получить исходник из exe-файла, который был "скомпилирован" при помощи nuitka и mingw64
1 2 3
Pes
Ребята, есть серьёзный вопрос)
В сети не могу найти внятного/точного ответа на некоторые нюансы.
На всякий случай спрошу тут.

Знающие люди разъясните, пожалуйста, такой момент:

Допустим я написал программу на пайтоне (program.py) и сделал exe-обертку для неё при помощи pyinstaller… а затем бесплатно скинул в сеть…Для того, чтоб прогой пользовались (+1 к карме и тщеславию).
Однако, я не сильно хочу, чтоб кто-то брал мой код и подгонял его под свои нужды…или что-то переделывал в нём, а затем юзал…
Как известно, exe-обертку можно будет легко “декомпилировать” и вытащить исходник.
(При помощи pyinstxtractor.py и uncomply6 в cmd-шке любой юзер может достать мой program.py из exe-обертки).
Собственно, я сам это проделал со своей прогой (достал исходник за 2 минуты). Код как на ладони. Ничего не спрятать.

Есть вариант “защитить” код при помощи обфускации (потом попробую это выполнить).
Но сейчас у меня другой важный вопрос.

При помощи nuitka и mingw64 я “скомпилировал” прогу в небольшой экзешник. Все работает, все норм, вес проги маленький) Круть.
CMD: python -m nuitka –windows-disable-console –mingw64 program.py

При помощи pyinstxtractor теперь исходник не достанешь (ибо через nuitka все “компилировалось”).
Однако, наверное и на такой вариант есть свой способ достать исходник…
(В сети я что-то не нашёл такого способа)…

1) Не подскажете насколько серьёзно защищен исходник через компиляцию nuitka (понятно, что “декомпилировать” можно всё… но можно ли будет достать “целый” исходник?

2) Возможно ли будет вытащить из такого экзешника код так, как в экзешнике “скомпилированного” pyinstaller-ом (типо насколько читабелен будет исходник?)?
При обертке через pyinstaller в исходнике все практически точно также, только пробелы и отступы слегка съехали…читай не хочу

3) Насколько серьёзной будет защита если я сначала пропущу через обфускатор свой пайтон-файл, а потом скомпилирую его через nuitka/mingw64 ?

P.S.
С pyinstaller все понятно (как запускается и работает прога).

Если не сложно, то объясните, пожалуйста, пошагово то, как именно все работает в экзешнике полученным через nuitka… Мой исходник получается теперь переписан языком “С” и при его запуске все загружается в память устройства и исполняется программой?? (пардон, если вопрос бредовый).
PEHDOM
Pes
но можно ли будет достать “целый” исходник?
Ну вот не скажу на все 100% но вроде ж нуитка транслирует питонячий код в Си, а уже потом его компилирует. На самом деле компилирует, а не “компилирует”. Тоесть дизасемблировать то его конечно можно но вот “целый” (ваш) исходник" на пайтоне получить наврядли будет возможно.

Pes
Насколько серьёзной будет защита если я сначала пропущу через обфускатор свой пайтон-файл, а потом скомпилирую его через nuitka/mingw64 ?
ровно такаяже если действать без обфускации, почему читай выше. Но это мое ИМХО, я не настоящий сварщик, я просто маску нашел и аппарт сварочный, может меня поправят более опытные “товарисчи”.
py.user.next
Pes
Однако, я не сильно хочу, чтоб кто-то брал мой код и подгонял его под свои нужды…или что-то переделывал в нём, а затем юзал…
Как известно, exe-обертку можно будет легко “декомпилировать” и вытащить исходник.
Вопросы “как защитить свой код?” возникают очень часто. Это естественный этап при переходе от разработки к дистрибуции.
Опыт показывает, что никому твой код и даром не нужен, даже в открытом виде. А тем более, если его ещё и распаковывать надо или вообще декомпилировать. Ты сам вспомни, много ли кодов ты извлёк из готовых чужих программ. Думаю, ни одной не вспомнишь, потому что тебе просто похрен, что там внутри.
Единственное, о чём тебе надо позаботиться, - это о том, чтобы тебе не запретили писать свой собственный код, который ты всегда писал изначально. Для этого ты его должен пролицензировать изначально и поставить там своё авторство. Иначе в каких-то странах могут начать тебе что-то предъявлять и сервисы начнут блокировать твои аккаунты и так далее. История с Nginx - пример такого случая. Но только не этот эпизод, который случился недавно, а ещё более ранний. Тогда компания Рамблер просто хотела забрать себе права на Nginx, ссылаясь на то, что Nginx разрабатывался её сотрудником в рабочее время и чуть ли не по заданию самой компании. Но они не смогли доказать, что Nginx был проектом Рамблера, и поэтому у них ничего не вышло. Просто пока Nginx был ничем, на него внимание никто не обращал. А когда Nginx стал продуктом, который можно начать продавать, тогда чайки сразу подъехали, чтобы попробовать нажиться на чужом. Так что и у тебя так может произойти. Если твой проект случайно выстрелит и начнёт делать миллионы из ничего, то юридические моменты сразу будут проверены всеми, кто к твоему проекту не имеет отношения, включая и компании, которые типа просто что-то предоставляют тебе бесплатно и типа просто ни в чём не участвуют.
FishHook
Pes
Что это хоть за программа то? Вот не верю я в то, что она представляет собой хоть какую-нибудь ценность. Логика размышлений тут простая. Если вы заранее знали, что надо будет защищать код от вмешательства, то есть планировали, что вы собираетесь вообще получить в итоге, ну тогда питон это не подходящий инструмент, зачем вы его выбрали? Думаю, что питон был выбран потому что ничего другого вы не умеете. А в чудеса, типа “студент червертого курса сделал поисковик лучше яндекса” я не верю.
Pes
>>> Единственное, о чём тебе надо позаботиться, - это о том, чтобы тебе не запретили писать свой собственный код, который ты всегда писал изначально. Для этого ты его должен пролицензировать изначально и поставить там своё авторство.

Еще одна головная боль) В дистрибуции я вообще не шарю(


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


>>> История с Nginx - пример такого случая.

Тоже подвыбесила меня эта история. Работаю в крупной компании (не на должности программиста). В моей компании во главе такая же наглая чайка.
Программу свою я писал тоже в свободное от работы время. Ну писец. Как тогда мне ее защитить/лицензировать?
(пардон, давайте пофантазируем и представим, что она выстрелит).


>>> Что это хоть за программа то? Вот не верю я в то, что она представляет собой хоть какую-нибудь ценность. Логика размышлений тут простая. Если вы заранее знали, что надо будет защищать код от вмешательства, то есть планировали, что вы собираетесь вообще получить в итоге, ну тогда питон это не подходящий инструмент, зачем вы его выбрали? Думаю, что питон был выбран потому что ничего другого вы не умеете. А в чудеса, типа “студент червертого курса сделал поисковик лучше яндекса” я не верю.


Обязательно нужно ложку дёгтя добавить)
Проект изначально ставился как хобби, планировал юзать программу самостоятельно, никому не скидывать… затем он перерос в нечто большее…

Ну я действительно не знаю в достаточной мере другие ЯП.
+ ко всему, если бы я писал ее в одни руки на C++, то ушло бы у меня на это ооочень много времени))
В 3,14зду такое хобби…
Пайтон хорош скоростью разработки…)) я бы не смог самостоятельно ее написать на сях…


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

Тогда не подскажите, пожалуйста, что делать с моментом лицензирования/авторством/защитой кода?


py.user.next
Pes
Как именно его пролицензировать и поставить там своё авторство.?
Поучись у других, кто уже делает это. Скачай их программы и посмотри, как их авторство там закреплено и как эти программы пролицензированы. Почитай лицензии.
FishHook
Обязательно нужно ложку дёгтя добавить)
Проект изначально ставился как хобби, планировал юзать программу самостоятельно, никому не скидывать… затем он перерос в нечто большее…
да ни во что он не перерос, перестаньте. Ну или дайте ссылку на посмотреть. Ну хотя бы опишите, что программа делает. Или это из разряда “не скажу, а то ты у меня идею украдешь и мои миллионы заработаешь”?
doza_and
FishHook Правильно говорит. Если вы можете написать интересную программу, то при такой квалификации вопрос защиты и лицензирования вы уже давно знаете как решать.

Так что не надо тратить впустую свое и чужое время. Спокойно выкладывайте исходники в свободный доступ. Никому они и даром не нужны.
FishHook
doza_and
Спокойно выкладывайте исходники в свободный доступ. Никому они и даром не нужны.
более того, если проект и правда инетересный, то сообщество поможет его развитию, а может и инвестор найдется
PEHDOM
Pes
Тогда не подскажите, пожалуйста, что делать с моментом лицензирования/авторством/защитой кода?
Лицензирование , тут все просто, в программу ложите файлик license.txt, где собвтвенно и описываете под какой лицензией распространяется ваше ПО. Можно воспользваться готовй лицензией (GNU\GLP\BSD\CCL\Apache…) достаточно большой список лицензий на все случаи жизни можно найти тут: https://www.gnu.org/licenses/license-list.ru.html Выбираете ту котороая вам боьше всего подходит.
Советую не изобретать велосипед. Поскольку любое законодательство это натуральный страх и ужас где черт переломает все конечности, то любая самодеятедльность может присети к тому что лицензия будет признана недейситвтельной, а эти всеже составляли профессиональные юристы.

По поводу защиты авторства. В принципе право авторства возникает с момента создания произведения автором, и не требует какойто обязательной регистрации. В идеале достаточно указать в начале что “product by Takoyto Takoyto”. Но это в идеале , ИРЛ какойнить “Денис Попов” может заменить эту строчку на “product by Denis Popoff”, и выдавать его за свой. И тогда встает вопрос, о защите, тоесть как доказать что это он у вас с3.14здил, а не наоборот. И опять вопрос в том чего вы таки хотите, что значит защищить?. Подать на него в суд? Автором произведения считается лицо указанное на оригинале или экземпляре опубликованного произведения. Тут работает принцип кто первый того и тапки. Тоесть для суда оригиналом будет код с самой ранней датой “публикации”. Можно, наверно, отправить емейл самоу себе с исходниками, или выложить в свободный доступ на гите не всеь исходник, а только его часть достаточную по вашему мнению, для ее идентификации. Тогда для суда автором будет тот у кого дата “публикации” первее.

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

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB