Опция Obfuscator «Запретить Microsoft IL Disassembler открывать мою сборку» - PullRequest
5 голосов
/ 19 июля 2011

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

Единственный вариант, который работает для негоэто: Запретить Microsoft IL Disassembler открывать мою сборку .

Справка Red-Gates описывает его как: SmartAssembly может добавить в вашу сборку атрибут, которыйне позволяет дизассемблеру общего промежуточного языка (IL) Microsoft (ildasm.exe) открывать вашу сборку .

Интересно, насколько серьезна эта защита, стоит ли ее применять, если код на самом деле не запутан.Или, другими словами, что это за дизассемблер общего промежуточного языка (IL) Microsoft (ildasm.exe) ?Является ли это основной частью каждого известного инструмента обратного инжиниринга .NET или это только один из многих таких инструментов?

1 Ответ

9 голосов
/ 19 июля 2011

ildasm.exe - дизассемблер IL, поставляемый с .Net Framework. Это единственный инструмент, который есть у всех, если у них есть .Net. Это не компонент, поэтому другие дизассемблеры не основаны на этом или чем-либо еще.

Атрибут, о котором идет речь, это SuppressIldasmAttribute. Я не знаю, уважают ли другие атрибуты дизассемблера, такие как Reflector или ILSpy, но я сомневаюсь в этом. Беглый поиск в Google показывает, что это не так, и что SuppressIldasmAttribute влияет только на сам ildasm.exe.

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

...