Возможно ли в .NET сбросить IL из запущенного приложения? - PullRequest
1 голос
/ 13 марта 2012

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

Итак, мой вопрос: возможно ли для реверс-инженера сбросить IL сборок из памяти запущенного приложения?

Почему бы не использовать запутывание?Ну, мое приложение довольно сложное, и все обфускаторы .NET, которые я видел, не могут правильно его обработать.

Ответы [ 2 ]

4 голосов
/ 13 марта 2012

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

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

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

Если они не должны иметь доступ к вашему алгоритму, распространение исполняемого файла не является началом: рассмотрите возможность размещения решений (например, Citrix, Virtual Desktops и т. Д.).

2 голосов
/ 13 марта 2012

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

...