Как заблокировать распределенную DLL? - PullRequest
0 голосов
/ 16 февраля 2011

У меня есть общая .Net DLL, которая используется несколькими приложениями, и общедоступный API. Я планирую распространять API DLL, но из-за ссылки придется также распространять совместно используемую dll.

Каков наилучший вариант предотвращения использования ненужных классов и данных?

Объявить все в разделяемой DLL как внутреннее, что не используется в API?

Создать новую библиотеку DLL, которая содержит все общие элементы между API и другими проектами?

Редактировать: Все вещи были созданы в C #. Я также в основном заинтересован в предоставлении пользователю приятного и дружественного API. Насколько я понимаю, что бы я ни делал, пользователь всегда мог использовать отражатель, чтобы посмотреть на него.

Ответы [ 2 ]

2 голосов
/ 16 февраля 2011

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

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

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

Я использовал этот продукт до того, как RedGate купил его, и он был УДИВИТЕЛЬНЫМ. Это выбило меня из моего кода, который был собран из случайных постов в сети. Но это может быть то, что вы хотели бы использовать.

http://www.red -gate.com / продукция / DotNet-разработка / smartassembly /

0 голосов
/ 16 февраля 2011

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

...