Различаются ли скорости работы программ запутывания, которые вы получаете? - PullRequest
6 голосов
/ 15 сентября 2008

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

Ответы [ 3 ]

8 голосов
/ 15 сентября 2008

Отказ от ответственности: мой работодатель - PreEmptive Solutions, создатель обфускатора Dotfuscator .NET.

Это может зависеть от используемого вами обфускатора и включенных в него параметров. Я собираюсь говорить из опыта с Dotfuscator.

Может быть улучшение времени загрузки и занимаемой памяти обфусцированных сборок, если вы используете переименование и удаление, частично потому, что все / большинство ваших методов, полей и т. Д. Переименованы в гораздо меньшие имена (например, ThisVeryLongMethodName (SomeVeryLongParameterName) «a (a)», так что вы получаете некоторое преимущество в размере сборки и, как правило, со временем загрузки. Помимо удаления, вы удаляете методы и т. д., которые никогда не вызывают, и снова уменьшаете размер ваших двоичных файлов.

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

Если вы используете любые другие системы / методы, например технологию безопасного виртуального компьютера Microsoft SLP, чтобы сделать методы нечитаемыми, что также приведет к снижению производительности во время выполнения из-за безопасного виртуального компьютера.

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

5 голосов
/ 15 сентября 2008

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

2 голосов
/ 15 сентября 2008

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

...