Можно ли конвертировать DLL в исходный код? - PullRequest
5 голосов
/ 10 октября 2010

Возможно ли преобразовать библиотеку dll обратно в исходный код?

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

Код в соответствующей dll - это не весь код.Мне удалось включить в библиотеку только необходимый код, но я все равно не хотел бы, чтобы другие парни копировали мой код.

Стоит ли мне волноваться?

Ответы [ 3 ]

8 голосов
/ 10 октября 2010

возможно? Да.

Легко? Это зависит.

Если вы написали свою dll в .NET, декомпиляция совсем несложно, используя такие инструменты, как Reflector , если только вы не запутали свой код.

Даже если это не код .NET, это все же возможно, хотя и гораздо сложнее. И вы можете все усложнить, если запутаете свой код одним из существующих инструментов.

В общем, если вы передадите кому-то свой код (скомпилированный или нет), он сможет декомпилировать его из ассемблера / байт-кода, даже если он будет запутан.

Это не всегда легко и обычно слишком много усилий. Это действительно зависит от того, насколько ты параноидален и насколько ценен твой код для третьей стороны.

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

5 голосов
/ 10 октября 2010

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

Чтобы защитить себя от декомпиляции, вы можете использовать обфускатор , который работает, изменяя двоичный файл, чтобы его было сложнее декомпилировать. Примером метода, используемого обфускатором, является замена имен элементов, видимых в двоичном файле, бессмысленными именами (например, a001, a002, ...), чтобы декомпилированный код имел меньше смысла. Некоторые даже используют ключевые слова для этих имен (например, for, while, ...), чтобы наивный декомпилятор создавал код, который даже не компилируется. Они также могут использовать другие методы, такие как шифрование строк, чтобы они не читались при просмотре двоичного файла.

Запутывание не идеальная защита. Достаточно талантливый и решительный злоумышленник может восстановить что-то похожее на ваш исходный код, даже если вы используете обфускацию.

2 голосов
/ 15 октября 2010

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

То, что у вас есть, а он нет: идея, как сделать из этого бизнес. А если ты боишься, что он это делает, предложи ему NDA, и у тебя не будет никаких сомнений.

Так что я предлагаю вам не беспокоиться о технологиях здесь.

...