LINUX.ORG.RU
ФорумTalks

Умышленная порча открытого кода

 ,


0

2

В рамках пятничного бреда:

Я тут подумал, а что если какой-нибудь хитрый поц, решит заработать на свободном ПО с лицензией типа GPlv3, но, не желая делиться результатами своей работы (т.е. модифицированным исходным кодом, как того требует лицензия), вместо публикации реального исходного кода своего проекта, опубликует обфусцированный. Причём не обфусцированный в плане абсолютной нечитаемости, т.е. с удалёнными пробелами, заменой переменных на a,b,c; а более замороченный в виде запутанного исходного кода, на анализ которого уйдёт почти столько же времени, сколько на дизассемблирование бинарника и воспрозведение алгоритма. Этакий автоматизированный убер-говнокодер, который перелопатил все исходники проекта, включая оригинальные гплные. С текущим развитием компиляторов и прочих средств это должно быть технически возможно, особенно если допустить небольшой оверхед по производительности из-за дополнительных обвязок. Можно ещё исхитриться так, что оптимизирующий компилятор будет эти куски выкидывать. Главное чтобы это было нечитаемо для человека.

Понятное дело, что в GPL есть слова про «preferred form», но сей хитрый поц всегда может сказать, что он художник и так видит, а что у него на самом деле в исходниках никто никогда и не узнает, ибо они не публичны, а выложен только результат обфускации. Удачи гнутым юристам доказать умышленную порчу исходников.



Последнее исправление: cocucka_B_TECTE (всего исправлений: 1)

Не выйдет. С массовым внедрением ИИ такой код легко будет приведён к удобочитаемому виду автоматически.

tiinn ★★★★★
()

Что-то вроде индусского стиля, когда

if(condition) {
   doSmthLogical();
}

превращается в

if(String.valueOf(condition).length == 4) {
   visitor.visit(handler);
}

ну выпонели

cocucka_B_TECTE
() автор топика
Ответ на: комментарий от vbcnthfkmnth123

Ну возни примерно как с оптимизирующей компиляцией – разборка в AST, применение хитрой логики, генерация кода.

cocucka_B_TECTE
() автор топика
Ответ на: комментарий от cocucka_B_TECTE

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

tiinn ★★★★★
()
Ответ на: комментарий от Aber

Это, кстати, навеяно старой дискуссией на LWN про шапку и публикацию исходников в «неудобном» виде

cocucka_B_TECTE
() автор топика

А потом окажется, что код таким и был изначально, неловко выйдет.

Irma ★★
()
Ответ на: комментарий от cocucka_B_TECTE

Ну возни примерно как с оптимизирующей компиляцией – разборка в AST, применение хитрой логики, генерация кода.

То есть хитрый поц собрался продавать GCC?

skiminok1986 ★★★★★
()

опубликует обфусцированный

Незачем. Достаточно опубликовать вывод gсс -S. Типа «написано на асме, собственноручно».

dataman ★★★★
()

В GPL есть лазейки и посущественнее, например, она не устанавливает никаких сроков выполнения публикации (да и не возможно это для произвольного ПО), и поэтому производитель может выкладывать какие-то части, которые хрен кто соберёт, и вообще не полные. И на вопросы комьюнити, мол, давайте уже как следует выкладывайте, делать маленькие шапочки навстречу, но так и не выложить всё необходимое. Или пример - PocketBook. Дали какой-то SDK, а исходники типа у нас тут очень тесно связаны с DRM контентом, так что извините. И если ты не корпа с армией юристов, никак ты её ни к чему не обяжешь.

seiken ★★★★★
()
Последнее исправление: seiken (всего исправлений: 1)

Достаточно объявить байт-код для виртуальной машины исходным кодом. Удачной отладки, *уки.

PPP328 ★★★★★
()

Вы про систем-д или про весь линукс?

vaddd ★☆
()
Ответ на: комментарий от cocucka_B_TECTE

Что-то вроде индусского стиля

Индус выпустил Shittier — утилиту, которая делает код нечитаемым ©.
Автор проекта отмечает, что разработал его в качестве развлечения :)

quickquest ★★★★★
()

О технологиях разработки, а не алгоритмах.

Исходные коды многих проектов имеют мало комментариев.
В результате бывает не просто разобраться в многих вопросах: архитектуре проекта, алгоритмах, ...
Поэтому в большинстве случаев весьма не просто помочь развитию проекта.
Такие проекты мало приносят пользы, хотя они и разработаны профессионалами.

Почему всё так?

Sorry (много раз об этом говорил), нынешние технологии разработки проектов - «НАСКАЛЬНЫЕ».

Forum0888
()
Последнее исправление: Forum0888 (всего исправлений: 1)
Ответ на: комментарий от aiqu6Ait

Так его и не надо в апстрим пихать. Ты просто нагло пользуешься плодами трудов сообщества, а лицензию «соблюдаешь» выкладывая свои обфусцированные модификации.

cocucka_B_TECTE
() автор топика
Ответ на: комментарий от PPP328

Не, тут фишка в том, что тебе нужно публиковать изменения в исходниках опенсорсной поделки, на которой ты основываешь свой проприетарный продукт. Язык должен быть тот же.

cocucka_B_TECTE
() автор топика
Ответ на: комментарий от dataman

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

cocucka_B_TECTE
() автор топика
Ответ на: комментарий от skiminok1986

Не, поц будет продавать, скажем либреофис с нескучными скинами, но публиковать будет исходники пропущенные через его секретный поцgcc.

cocucka_B_TECTE
() автор топика
Ответ на: комментарий от aiqu6Ait

Причём тут аппрув? Суть в том, что он создаст свой форк и де-факто «закроет» исходники. Хотя де-юре исходники будут открыты и GPL соблюдена.

CrX ★★★
()

если обфускация выполнена машиной это не исходники, если руками, то ссзб, не угонится за апстримом, а без этого код за пару лет превратится в тыкву

Syncro ★★★★★
()
Ответ на: комментарий от cocucka_B_TECTE

Язык должен быть тот же.

Где это сказано? Я поменял в исходниках синтаксис языка на опкоды. Вот мои изменения, смотрите.

PPP328 ★★★★★
()
Ответ на: комментарий от romanlinux

так там же на глаз будет видно если своровано из зрелого опенорца, у каждого продукта есть особенности

Syncro ★★★★★
()
Ответ на: комментарий от cocucka_B_TECTE

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

Syncro ★★★★★
()

Это слишком сложно, и никто серьезнее Дениски Попова не будет этим заморачиваться.

Зарабатывают не на ПО с лицензией GPlv3, а используя ПО с лицензией GPlv3 - это немного разные понятия.

Просто свой код сделают под EULA, а используемые либы GPlv3 выложат согласно правилам в открытом доступе, как есть.

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

Тогда гнутым юристам придется доказывать, что if (argc == "start") { start(); } == inp = argc;if (inp == "begin") { begin(); }

Плюс если очень хочется, то дергать функции с GPlv3-кода можно и транслятором, который уже будет под EULA, этому ты тоже никак не воспрепятствуешь.

GPlv3:

int test(int dig)
{
return dig+10;
}

EULA:

<include GPlv3>
int lol(int num)
{
return test(num);
}

Исходники GPlv3 я дам. Исходники EULA нет. Все по чесноку, да.

windows10 ★★★★★
()
Ответ на: комментарий от cocucka_B_TECTE

С фига ли? Беру GPL код, компилирую его в объектник, беру «CODE» секцию. Потом заменяю этот файл в проекте по сути блоком полученных опкодов. Поменял? Поменял. Сорцы? Вот они.

Посмотрите, как пираты модифицируют образы NES игр. Там именно так и происходит. Так как нет исходного исходника, работать приходится в опкодах (вполне комфортно, когда позанимаешься этим с неделю). Изменения? Вот они, сам сиди со «словарем». Кто мешает то же самое для х86 делать? Да никто. А если это еще сверху покрыть проприетарным транслятором как в какой-нибудь Denuvo и всё. Сами сидите и думайте, чему соответствует FA 31 69 42 0F. А декомпиляция системы защиты это грех, да. Пройдите в камеру, пожалуйста.

PPP328 ★★★★★
()
Ответ на: комментарий от windows10

мне кажется, вы смотрите на присвоенный код как на актив, а он еще и пассив если не дохлый. Вот даже все эти опенсурс либы постоянно обновляются, и вам придется свою поделку под них приспосабливать, а если есть свои доработки это не простое/дешевое дело.

Syncro ★★★★★
()
Ответ на: комментарий от PPP328

Посмотрите, как пираты модифицируют образы NES

так их никто не дорабатывает, а используют «как есть», вот героев дорабатывают и там эфорты сравнимы с полостью собственной разработкой или даже превышают вариант с наличием нормальных исходников

Syncro ★★★★★
()
Последнее исправление: Syncro (всего исправлений: 1)
Ответ на: комментарий от CrX

И какой в этом глубокий смысл, если код продукта развивается независимо от форка? Оно ж рано или поздно станет несовместимым.

aiqu6Ait ★★★★
()
Ответ на: комментарий от aiqu6Ait

Естественно станет. Именно в этом и проблема.

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

CrX ★★★
()

Можно даже без этого. Художественно переписываешь GPL-код в «чистой комнате» и всё. Это как новый аудиоплеер не является автоматически плагиатом другого старого, хоть и делают они одно и то же.

Жопаэли все эти имхо говорят не о том и игнорируют реальные проблемы. Весело хейтили в нулевых проприетарный софт. Покупаемый один раз в вечное пользование, пока его есть где запускать. Поизучать можно в дебаггере и даже немного подправить. Пришли к *aaS параше, где у юзера прав нет вообще никаких, тебя отключить могут с той стороны без объяснений. И посмотреть тебе никто ничего не даст в принципе. Так-то оно всё на опенсорсе, вот ядро, сустемды, веб-сервер - всё открытое, вот ссылка на гитхаб. А полезная логика, которая на этом всём крутится - перебьёшься, частная собственность.

yu-boot ★★★★
()
Ответ на: комментарий от t184256

Ну и сиди, как дурак, с нераспространяемым бинарем.

На распространяемость влияет востребованность, а не лицензия.

windows10 ★★★★★
()
Ответ на: комментарий от windows10

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

Ты почитал бы GPL что ли, там весело и наркомания.

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)

А так и происходит. Китайские чуваки просто выдают тарбол с исходниками ядра лялекса, при этом не указывая ни версию, ни список изменений, ничего. Часто вообще непонятно, с какой версии ядра там взят код, потому что diff от любой мажорной выдаёт просто конский патч с кучей бэкпортов из более новых версий. Ну и код у них часто тоже полное говно.

hateyoufeel ★★★★★
()

так сейчас так и делают в «новом опенсурсе», наговнят 100мильонов строк кода, а потом продают энтерпрайз эдишн

nerfur ★★★
()

А зойчем? Ну сделал ты жоповытиралку из открытого кода со своими нескучными иконками - зачем вообще код выкладывать? Скомпилил и всё, само написало

DumLemming ★★
()

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

MKuznetsov ★★★★★
()

Обфускация кода

Вот стало интересно: а если я возьму какой-нибудь gpl-проект, переделаю, буду продавать бинарные сборки, а при запросе кода предоставлю обфуцированное нечитаемое гно? Были ли случаи?

2013 год

трудно сейчас что-то принципиально новое придумать

greenman ★★★★★
()
Последнее исправление: greenman (всего исправлений: 1)
Ответ на: комментарий от cocucka_B_TECTE

Выглядит как не очень классный бизнес-план. Хотя, на дошики может и заработает.

skiminok1986 ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)