Скрыть код

Автор Тема: Скрыть код  (Прочитано 15850 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн sash-2007Автор темы

  • ADN OPEN
  • Сообщений: 21
  • Карма: -1
Скрыть код
« : 04-06-2018, 14:32:24 »
Здравствуйте !

Подскажите пожалуйста  как можно скрыть часть кода от посторонних  глаз  :)
делаю DLL  для Автокада 2010   на NET
нужно чтоб,  нельзя было посмотреть часть кода ILDASM , NET Reflector  и другими дизассемблерами.

пробовал:  подключать класс С++(unmanaged),   подключать библиотеку DLL на С++(unmanaged) не работает
может я не правильно делаю.

 windows 7  x64 , Автокад 2010, Visual Studio 2008

Может кто то сталкивался с чем то подобным, подскажите в какую сторону смотреть( копать)  :)

Еще вопрос: Можно ли в принципе подключить библиотеку DLL на С++(unmanaged) ,  к DLL для Автокада .NET

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Скрыть код
« Ответ #1 : 04-06-2018, 15:53:13 »
пробовал:  подключать класс С++(unmanaged),   подключать библиотеку DLL на С++(unmanaged) не работает
может я не правильно делаю.
Наверное делаешь неправильно.
Еще вопрос: Можно ли в принципе подключить библиотеку DLL на С++(unmanaged) ,  к DLL для Автокада .NET
Да. Можно.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн sash-2007Автор темы

  • ADN OPEN
  • Сообщений: 21
  • Карма: -1
Re: Скрыть код
« Ответ #2 : 04-06-2018, 16:46:40 »
Спасибо за ответы :)

Не могли бы дать какую нибудь ссылку на данный материал
или пример кода.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Скрыть код
« Ответ #3 : 04-06-2018, 16:50:02 »
sash-2007,
Встречный вопрос. Что должна делать dll (C++)? Она должна обращаться к AutoCAD (использовать ObjectARX) ? От этого многое зависит.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн sash-2007Автор темы

  • ADN OPEN
  • Сообщений: 21
  • Карма: -1
Re: Скрыть код
« Ответ #4 : 05-06-2018, 14:14:31 »
Добрый день :)

DLL на С++  должна шифровать строку  по ключу
переданную из NET  DLL

к ObjectARX  обращаться   не нужно

Отмечено как Решение sash-2007 06-06-2018, 13:29:27

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Скрыть код
« Ответ #5 : 05-06-2018, 14:19:52 »
к ObjectARX  обращаться   не нужно
Ну тогда всё еще проще. Читай статью: https://docs.microsoft.com/ru-ru/cpp/dotnet/how-to-call-native-dlls-from-managed-code-using-pinvoke
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Пекшев aka Modis

  • ADN Club
  • *****
  • Сообщений: 1658
  • Карма: 366
  • Отец modplus.org
    • ModPlus
Re: Скрыть код
« Ответ #7 : 05-06-2018, 18:08:48 »
Можно использовать обфускаторы кода.
Но на мой взгляд, прежде чем тратить время на скрытие кода, нужно ответить на один простой вопрос - а он (код) кому-то нужен?

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: Скрыть код
« Ответ #8 : 06-06-2018, 12:07:17 »
Можно использовать обфускаторы кода.
Именно так. Посмотрите готовые решения по защите .NET библиотек. Даже если Вы вынесете проверку лицензии в C++, всё равно код .NET останется незащищённым. Можно будет выполнить, например, подмену C++ библиотеку проверки. Либо пересобрать .NET библиотеку таким образом, чтобы она вообще не обращалась к функциям проверки в библиотеке C++. Так что, обфускация, хоть и не гарантирует 100% надёжности, но сильно усложнит жизнь тому, кто захочет покопаться во внутренностях вашей dll. В большинстве случаев этого будет достаточно.

Оффлайн sash-2007Автор темы

  • ADN OPEN
  • Сообщений: 21
  • Карма: -1
Re: Скрыть код
« Ответ #9 : 06-06-2018, 12:33:28 »
Спасибо за ответы  :)

Обфускаторы  +  DLL на С++  = хорошая защита

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Скрыть код
« Ответ #10 : 06-06-2018, 12:34:15 »
Даже если Вы вынесете проверку лицензии в C++, всё равно код .NET останется незащищённым.
Только если C++ код занимается проверкой лицензии, а не выполняет какую-то нетривиальную работу на основе информации из лицензии.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: Скрыть код
« Ответ #11 : 06-06-2018, 12:47:07 »
Единственное, обфускаторы надо проверять на возможность использования именно в контексте приложений под AutoCAD. У меня был опыт использования такого, который все ссылочные DLL упаковывал вместе с основной в одну сборку, даже AcDbMgd, AсMgd и AcCoreMgd. Естественно, что эта сборка потом не грузилась в AutoCAD.
Только если C++ код занимается проверкой лицензии, а не выполняет какую-то нетривиальную работу на основе информации из лицензии.
Да, конечно, согласен.

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: Скрыть код
« Ответ #12 : 06-06-2018, 12:55:30 »
Кстати, если интересно, сейчас как раз изучаю Sentinel LDK. Помимо, собственно, обширнейшего механизма лицензирования, у них достаточно неплохой обфускатор. И после него сборка нормально грузится в AutoCAD и работает как надо, но уже зашифрована и защищена. Правда, использование этого механизма в среднем добавляет 1,5-2,0 тыс руб к стоимости одного рабочего места для приложения. Так что, имеет смысл использовать, если цена рабочего места сопоставима с этой суммой.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Скрыть код
« Ответ #13 : 06-06-2018, 14:36:50 »
Кстати, если интересно, сейчас как раз изучаю Sentinel LDK
Это которая с аппаратным (USB) ключом? Когда-то мы пользовались такими для защиты МАЭСТРО. Стоимость ключа была около $20, т.е. это была добавка к стоимости нашего ПО. Аналогичную систему защиты использовал и Autodesk до 2000-го года.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Re: Скрыть код
« Ответ #14 : 06-06-2018, 15:00:44 »
Да, когда-то давно изначально у них был только аппаратный ключ. Сейчас у них есть как аппаратные ключи защиты, так и программные ключи. Есть API, что позволяет наиболее полно итегрировать их механизм лицензирования в свою систему реализации ПО. Очень интересный продукт.