Dotfuscator, кажется, не придерживается переименования исключений RegEx

Мы решили использовать Dotfuscator для обфускации нашего кода. У нас приложение для Windows Phone, и мы используем Dotfuscator Windows Phone Edition версии 4.9.7000.29303. Мы узнали, что класс System.Reflection.ObfuscationAttribute недоступен в Silverlight, поэтому невозможно использовать атрибуты исключения для некоторых типов, которые нам нужно исключить. Теперь мы планируем использовать вкладку Rename>Exclude в dotfuscator и исключать типы с некоторыми специфическими суффиксами. Перед внедрением мы создали пробный проект и протестировали на нем обфускацию. В ходе нашего тестирования мы обнаружили, что выходные данные не соответствуют правилам выполнения. Хотя окно предварительного просмотра показывает ожидаемый результат, вывод по-прежнему включает те типы, которые должны были быть исключены. См. скриншот окна Dotfuscator ниже. Окно предварительного просмотра слева от стрелки правильно отображает заштрихованный тип, который будет исключен из обфускации, но справа от стрелки вывод того же самого типа по-прежнему запутывает эти типы. Что происходит? Окна предварительного просмотра показывают правильный результат, но вывод не в порядке


person amrahs    schedule 04.04.2013    source источник


Ответы (1)


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

Включаемая библиотека обычно находится в

C:\Program Files(x86)\PreEmptive Solutions\Dotfuscator (version and edition)\Attributes\Windows Phone\PreEmptive.ObfuscationAttributes.dll

Вот пример того, как исключить что-то из переименования, например:

[Obfuscation(Feature = "renaming", Exclude = true)]
public int Foo{get;set;}

Вы можете найти более подробную информацию об управлении запутыванием с помощью атрибутов по этой ссылке и общее руководство пользователя доступно здесь

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

person Earlz    schedule 04.04.2013
comment
Пожалуйста, снова обратитесь к снимку экрана, в разделе предварительного просмотра Dotfuscator затенил типы App, MainPage и testClass на основе предоставленного нами пользовательского регулярного выражения, что означает (согласно справочным документам), что эти типы будут исключены из обфускации. Это правильно, и у нас нет проблем с предварительным просмотром. Но, см. Вывод, Dotfuscator по-прежнему запутывает App, MainPage и testClass, чего он не должен делать в соответствии с предварительным просмотром. Не могли бы вы объяснить, почему это ожидается? Тем не менее, большое спасибо за указание на сборку атрибутов обфускации PreEmptive, я думаю, мы можем использовать ее и избежать маршрута RegEx. - person amrahs; 05.04.2013
comment
@amrahs аааа, хорошо, я понимаю, что ты имеешь в виду. Вам нужно будет щелкнуть правой кнопкой мыши правило регулярного выражения, а затем добавить это правило регулярного выражения в качестве правила метода, свойства и т. д. Раньше он исключал только имя типа, а не весь тип и все его члены. - person Earlz; 05.04.2013