Отключить переименование в dotfuscator - PullRequest
1 голос
/ 06 октября 2009

Я использовал dotfuscator для защиты своего исходного кода и отключил переименование (чтобы обеспечить правильность публичных методов и имен классов), но заметил, что при использовании отражателя для просмотра сборок после шифрования они не сильно изменились. Я до сих пор вижу исходный код. Любая информация?

Ответы [ 3 ]

3 голосов
/ 17 января 2010

Можно точно указать, что будет исключено из фазы переименования, используя атрибут Обфускация . Например, для свойства:

[Obfuscation(Feature = "renaming", Exclude = true)]
public int MyProperty
{
    get { return this.prop; }
}
1 голос
/ 06 октября 2009

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

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

Кроме того, переименование само по себе не приведет к тому, что в Reflector не будет отображен декомпилированный источник. Чтобы прервать декомпиляцию, вы должны быть уверены, что у вас также включена обфускация потока управления.

0 голосов
/ 06 октября 2009

dotfuscator только запутывает ваш код, он не скрывает его полностью от посторонних глаз.

Если вы действительно хотите "скрыть" тело метода от Reflector, я предлагаю вам использовать Clisecure . Clisecure может заставить логическое тело исчезнуть при сохранении всех имен методов.

У вас есть возможность запутать логику? Вы должны использовать это; это усложнит понимание вашей логики.

...