Защитите файл DLL с помощью файла лицензии

Как лучше всего обезопасить использование / загрузку DLL с файлом лицензии?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
14
0
10 484
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вы можете проверить наличие лицензии внутри DllMain () и умереть, если она не найдена.

ЧИТАЙТЕ, что вам разрешено делать в DllMain, это немного!

MSalters 22.09.2008 03:11

Это также зависит от того, как работает ваш алгоритм лицензирования. Я предлагаю вам изучить использование чего-то вроде Обмен ключами Диффи – Хеллмана (или даже ЮАР) для генерации какого-либо открытого / закрытого ключа, который может быть передан вашим пользователям на основе некоторой информации.

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

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

Ответ принят как подходящий

Возможно, вам стоит подумать о нескольких вещах:

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

Не храните хэш в виде строки, разбейте его на короткие отрезки без знака в разных местах.

Как сказал Ларри, MAC-адрес встречается довольно часто. Есть много примеров того, как получить это на Кодовый проект, но имейте в виду, что в наши дни легко подделать.

Мое предложение, следует использовать ключи частный / публичный для генерации лицензий.

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

Другие вопросы по теме