Есть ли способ предотвратить открытие DLL в программном обеспечении, как отражатель? - PullRequest
3 голосов
/ 14 мая 2009

HI, Есть ли способ предотвратить открытие конкретной DLL в C # в отражателе. Я могу открыть многие из DLL и получить код с помощью отражателя. Но при попытке открыть некоторые библиотеки DLL появляется сообщение об ошибке, в котором говорится, что "соответствующая библиотека DLL не содержит заголовок CLI."

Как я могу сделать DLL, как это ??

Ответы [ 4 ]

11 голосов
/ 14 мая 2009

Вы уверены, что эти DLL-библиотеки являются управляемыми кодами? Я так не думаю, если они не содержат заголовок CLI, они не написаны на C #.

И по вашему вопросу, вы не можете предотвратить открытие управляемой DLL в декомпиляторе, все, что вы можете сделать - это запутать ее.

4 голосов
/ 14 мая 2009

Если вы хотите защитить вашу .net dll, вы можете запутать вашу сборку

Бесплатные инструменты .NET для запутывания

У тебя тоже есть коммерческие ...

"У конкретной DLL нет заголовка CLI." сообщение появляется в Reflector, потому что они не являются управляемыми библиотеками (.net).

2 голосов
/ 11 августа 2011

Невозможно запретить Reflector открывать сборки .Net, но вы делаете это бессмысленным, запутывая свои сборки. После запутывания класс / метод / поля переименовываются, строковые строки в методах шифруются, вызовы методов скрываются, поток управления методами шифруется и так далее. Таким образом, любой, кто использует Reflector, увидит много мусора и не сможет осмыслить большую его часть.

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: я работаю на LogicNP Software, разработчики Crypto Obfuscator

2 голосов
/ 14 мая 2009

Я думал, что когда-то был определенный код IL, который вызвал сбой в отражателе. Но эта ошибка исправлена.

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

Вы не можете предотвратить его отражение отражателем.

...