Как защитить dlls?

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

$timezone = new DateTimeZone( 'America/Toronto' );
$start    = ( new DateTime( 'monday this week', $timezone ) )->setTime( 18, 0 );
$end      = ( new DateTime( 'friday this week', $timezone ) )->setTime( 18, 0 );
$now      = new DateTime( 'now', $timezone );

if ( $now > $start && $now < $end ) {
    echo "Hello World";
}
15
задан Josh 30 April 2009 в 05:32
поделиться

7 ответов

Посмотрите на атрибут StrongNameIdentityPermission . Это позволит вам объявить доступ к вашей сборке. В сочетании с хорошим средством защиты кода (например, CodeVeil (заявление об отказе от продажи CodeVeil)) вы будете вполне довольны.

(Обратите внимание, что это, скорее всего, даст вам ложные срабатывания от AV-инструментов.)

Несмотря на это, достаточно решительный пользователь все еще может найти способы его использования. Приличный дизассемблер быстро предоставит всю необходимую информацию.

Обратите внимание, что если ваша DLL действительно является COM-объектом или, что еще хуже, сборкой CLR, то существует огромное количество информации о типах среды выполнения, без которой вы не сможете удалить нарушая его предполагаемое использование.

РЕДАКТИРОВАТЬ: Поскольку вы повторно отметили, что C # и .NET являются средой, а не чистой Win32 DLL, написанной на C, тогда я действительно должен изменить вышеприведенное на «You Can» t, но ... "

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

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

Многое будет зависеть от вашего варианта использования. Если вы просто хотите предотвратить случайное использование, вы можете найти решение, которое подходит именно вам. Если вы хотите защитить ценные торговые секреты от обратного проектирования и повторного использования, вы, возможно, не будете так счастливы.

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

Многое будет зависеть от вашего варианта использования. Если вы просто хотите предотвратить случайное использование, вы можете найти решение, которое подходит именно вам. Если вы хотите защитить ценные торговые секреты от обратного проектирования и повторного использования, вы, возможно, не будете так счастливы.

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

Многое будет зависеть от вашего варианта использования. Если вы просто хотите предотвратить случайное использование, вы можете найти решение, которое подходит именно вам. Если вы хотите защитить ценные торговые секреты от обратного проектирования и повторного использования, вы, возможно, не будете так счастливы.

Если вы просто хотите предотвратить случайное использование, вы можете найти решение, которое подходит именно вам. Если вы хотите защитить ценные торговые секреты от обратного проектирования и повторного использования, вы, возможно, не будете так счастливы.

Если вы просто хотите предотвратить случайное использование, вы можете найти решение, которое подходит именно вам. Если вы хотите защитить ценные торговые секреты от обратного проектирования и повторного использования, вы, возможно, не будете так счастливы.

22
ответ дан 1 December 2019 в 00:41
поделиться

Вы столкнулись с той же проблемой, что и сторонники DRM.

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

Вы, конечно, можете сделать это неудобным для выполнения обратного инжиниринга, и этого вполне может быть достаточно.

12
ответ дан 1 December 2019 в 00:41
поделиться

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

Я предполагаю, что вы уже рассматривали такие решения, как его компиляция, если вы действительно не хотите, чтобы он делился. Если кто-то действительно хочет добраться до этого, есть много способов сделать это.

3
ответ дан 1 December 2019 в 00:41
поделиться

Вас может заинтересовать следующая информация о собраниях друзей: http://msdn.microsoft.com/en-us/library/0tke9fxk (VS.80) .aspx

0
ответ дан 1 December 2019 в 00:41
поделиться

Посмотрите на StrongNameIdentityPermissionAttribute . Это позволит вам объявить доступ к вашей сборке. В сочетании с хорошим средством защиты кода (например, CodeVeil (заявление об отказе от продажи CodeVeil)) вы будете вполне довольны.

5
ответ дан 1 December 2019 в 00:41
поделиться

Что ж, вы можете пометить все ваши «публичные» классы как «внутренние» или «защищенные внутренние», а затем пометить ваши сборки атрибутом [assembly: InternalsVisibleTo ("")] и никого, кроме помеченные сборки могут видеть содержимое.

1
ответ дан 1 December 2019 в 00:41
поделиться

Вы пробовали реактор .Net? Недавно наткнулся на это. Некоторые говорят, что он отличный, но я все еще тестирую его.

1
ответ дан 1 December 2019 в 00:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: