Size: a a a

Язык программирования Julia / Julia programming language

2021 July 08

RS

Roman Samarev in Язык программирования Julia / Julia programming language
Есть средства, сильно затрудняющие дизассемблирование. Например динамическая распаковка, адреса, вычисляемые по таймеру и пр.
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
Контрольная сумма репозитория
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Да, но так как машинный код в конечном итоге должен быть прочитан и однозначно исполнен, все эти средства лишь усложняют задачу, но не делают её нерешаемой. Я имею в виду, что это не то же самое, что например шифрование, которое нельзя обратить если у тебя нет ключа.
источник

RS

Roman Samarev in Язык программирования Julia / Julia programming language
Конечно это не 100% защита. Во времена компакт дисков защищали игры от копирования. Но их же всё равно ломали. А самый надёжный способ защиты - облачные сервисы. Когда код посторонним ни в какой форме не доступен
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Да, надо продавать людям не код, а сервис, это многие уже поняли.
источник

MW

Merlin Wizard in Язык программирования Julia / Julia programming language
Сервис через интернет имеет тоже свои минусы: тут тебе и проблемы с безопасностью, если кто то взломает то ты будешь ответственен перед огромной кучей народа за утечку конфидец. данных, защита авторских прав, если кто-то выложит на твоем сайте запрещённую информацию то жди исков, траться на модераторство и т.д.
Вон например человек сделал на javascript приложение, но боится выкладывать т.к. в яваскрипте легко получить исходники
https://habr.com/ru/post/566410/   да и в комментах люди требуют приложение не зависящее от интернета, т.к. намного безопаснее.
источник

MW

Merlin Wizard in Язык программирования Julia / Julia programming language
А сделал бы на C++ например не потерял бы часть клиентов (немалую), а так он теперь кусает локти, выложишь desktop программу - вмиг реверс-​инжиниринг проведут и появятся куча таких же приложений.
источник

A

Alexandr in Язык программирования Julia / Julia programming language
ИМХО не очень удачный пример. В данном случае (как и в большинстве случаев) идея гораздо ценнее кода. А чтобы провести ревирс-инженеринг идеи в код лезть не обязательно.  Какие-нибудь хитрые алгоритмы, напрямую не видимые пользователю или как-то хитро оптимизированные/производительные - их да, жалко если реверснут (хотя опять таки жалко не если код получат, а если реверснут и поймут идею/фишку алгоритма). А с трекером - там же все на виду, можно брать идею и реализовывать ее на чем хочешь...
источник

MW

Merlin Wizard in Язык программирования Julia / Julia programming language
ИМХО так можно сказать почти про любую программу, исключение составляют мб 5% программ содержащих "Какие-нибудь хитрые алгоритмы, напрямую не видимые пользователю или как-то хитро оптимизированные/производительные"
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
А где у него написано, что он боится выкладывать из-за того, что исходники украдут?

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

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Софта в современном мире много, желающих его писать гораздо меньше. Проще заплатить разработчику, чтобы он добавил фичи, чем тратить время на собственную разработку.

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

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Хм, обидно, DataPipes.jl не работает с Rocket.jl
источник

AP

Alexander Plavin in Язык программирования Julia / Julia programming language
С  трансдьюсерами тоже не очень
Но в них и свой пайпинг более удобный,  чем base функции
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Зато хорошо работает с Underscores.jl

using Rocket
using Underscores

source = @_ from(1:100) |>
   filter(_ % 2 === 0) |>
   map(Int, _^2) |>
   sum()

subscribe!(source, logger())
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
В Underscores как раз идеально анонимные функции писать.
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Хотя правда такая жёсткая перегрузка базовых функций меня пугает 😊
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Это пока что не совсем type piracy, но очень к этому близко.
источник

AP

Alexander Plavin in Язык программирования Julia / Julia programming language
Вроде как раз type piracy, filter(function)
источник

AP

Alexander Plavin in Язык программирования Julia / Julia programming language
Не значит что это плохо :)
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Ну да 😊
источник