Как обсуждалось в аналогичных вопросах here и here Я хочу защитить свой код от обратного проектирования.Защита моего кода от обратного проектирования
Моей ситуация, как Simucal описывает в своем (отлично) ответе here:
В принципе, что это сводится к тому, только у вас есть шанс будучи целевых для кражи источника, если вы есть какой-то очень специфичный, сложный для инженер, алгоритм, связанный с вашим доменом , который дает вам преимущество на вашем соревнованиях. Это примерно в только время было бы экономически эффективным , чтобы попытаться переделать небольшую часть вашего приложения.
У меня именно такая ситуация. Трудный инженерный алгоритм, который является элегантным и ценным для нашего конкретного домена.
После долгих месяцев тонкой настройки и разработки этого конечный результат является очень компактным (около 100 строк кода) и элегантным. Я хочу защитить эту часть кода от обратной инженерии или, по крайней мере, сделать ее разумной.
Сценарий - это приложение с богатым клиентом, написанное на C#, и мне нужно развернуть эту часть кода - я не могу выполнить его из веб-службы.
Я думаю, что извлечение кода и переписывание его в неуправляемом родном двоичном файле не является вариантом из-за причин производительности (и проблем с перекрестными границами).
Первоначально я хотел сделать простое обфускацию, но учитывая небольшой размер кода, я не думаю, что это обеспечит большую защиту.
В идеале я хотел бы защитить все мое приложение, но есть две основные проблемы, которые, кажется, делают обычные obfuscaters и 3-й партии упаковщики трудно использовать:
Приложение предлагает интерфейс плагинов и поэтому некоторые сборки (и интерфейсы/классы) не должны быть запутаны и упакованы.
Мы по-прежнему хотим иметь возможность получить реальную трассировку стека при получении отчетов об ошибках - возможно, это может быть сделано для сопоставления объектов с реальным кодом.
Установка этих вопросов в сторону (хотя я был бы признателен за любую информацию по этому, а), что является хорошим способом, чтобы защитить маленькую часть моего кода с обратной инженерии? Меня не волнует кто-либо, кто меняет или взламывает код, но хочет затруднить его понимание и перепроектировать.
Как это отличается от многих вопросов, которые были заданы раньше? http://stackoverflow.com/questions/506282/protect-net-code-from-reverse-engineering и http://stackoverflow.com/questions/106794/what-do-you-use-to-protect-your- net-code-from-reverse-engineering –
Я спрашиваю, как защитить относительно небольшую часть моего кода, встроенного в сложное приложение (с архитектурой плагина).Хотя этот вопрос аналогичен другим вопросам (и я упомянул их), я задаю очень конкретный сценарий. (небольшая часть кода) –
На самом деле не обман, но я действительно удивляюсь, почему у людей есть эти заблуждения, что у них есть невероятно ценный алгоритм. Даже если алгоритм является удивительным, он не делает программу, кроме того, алгоритмы должны быть бесплатными для всех, и вы должны держать своих клиентов за качество и обслуживание. –