Защита от копирования: подгрузка частей кода с сервера
От: VKE Россия http://vke.ru
Дата: 06.01.03 18:09
Оценка:
Имеется софт, предназначенный для direct-рассылки почты через SMTP и одновременного сбора её же через POP3... Но это не столь важно, главное, что в процессе своей работы, софт всегда имеет доступ к интернету. Имеется свой dedicated-server. Софт написан на MSVC++ 7.0. Софт предназначен для работы в операционных системах Windows 2000 и выше.

Необходимо защитить софт от копирования/распространения.

Планирую непосредственно перед началом работы софта (т.е. после того, как он загрузился и нажали "кнопочку START" в нём) собирать следующие данные:
1. Серийный номер софта, который даётся покупателю при покупке.
2. Серийный номер, который жёстко прошит в каждом exe-файле.
3. Некоторые сведения о PNP-устройсвах (для привязки к железу)
4. Контрольную сумму и версию софта.
5. Текущие настройки софта. Например в plain-text виде или в том виде, в котором они хранятся в файле с настройками.
6. Другое...
Далее подключаться к серверу через SSL и передавать туда эти данные. В ответ от сервера получать:
1. Обработанные настройки (5), которые уже пригодны для использования непосредственно самими функциями софта.
2. Небольшой DLL-файл, в котором содержатся жизненно-важные для софта функции. DLL распаковывать и использовать непосредственно в памяти, без записи на диск. DLL будет проверять контрольную сумму EXE-файла и если она будет неправильной, то некоторые функции DLL будут просто возвращать неверные значения.

Интересно.... Насколько это надёжно и как быстро это сломают?

PS. возможно использование двух dedicated-серверов для повышения надёжности работы (если один из серверов временно лежит)
iFud has you!
Re: Защита от копирования: подгрузка частей кода с сервера
От: c-smile Канада http://terrainformatica.com
Дата: 07.01.03 00:26
Оценка:
Здравствуйте, VKE, Вы писали:

VKE>...DLL распаковывать и использовать непосредственно в памяти, без записи на диск...


А как?
Re[2]: Защита от копирования: подгрузка частей кода с сервер
От: VKE Россия http://vke.ru
Дата: 07.01.03 00:30
Оценка:
Здравствуйте, c-smile, Вы писали:

VKE>>...DLL распаковывать и использовать непосредственно в памяти, без записи на диск...

CS>А как?

А просто... Выделить память, поставить на участок памяти права на исполнение и на чтение, загрузить туда образ длл, пересчитать по таблице релокаций немного данных и юзать...
iFud has you!
Re: Защита от копирования: подгрузка частей кода с сервера
От: fAX Израиль  
Дата: 07.01.03 01:44
Оценка:
Здравствуйте, VKE, Вы писали:

VKE>Интересно.... Насколько это надёжно и как быстро это сломают?

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

Теперь по делу:
Я делал без дллки, а просто вместо мусора патчил в памяти части кода. Для надёжности — несколько раз одно и то же место, но разными данными (это чтоб пропатчить трудно было). А потом эти данные использовал — нечто вроде чексуммы вычислял, причём для каждого компьютера — получалась своя, но коль скоро данные были консистентны (т.к. программа выполнялась на одном и том же компьютере ), всё работало. В принципе, если меняешь куски кода, причём несколько раз одно место — это уже очень трудно исправить. Если вдобавок меняешь данные, с помощью которых производятся вычисления, результаты каковых тоже используются — практически невозможно. Как пример, если придумаешь 2 функции, так что:
f(data, HDD_serial, date) = g(data, HDD_serial, date) + const для любого HDD_serial, но не для любого data+date , а потом в не слишком явном виде будешь в коде (f-g) — это трудно, очень трудно отловить. Какое тождество тут использовать (f, g) — на твой вкус.

Удачи.

VKE>PS. возможно использование двух dedicated-серверов для повышения надёжности работы (если один из серверов временно лежит)
...Complex problems have simple, easy-to-understand wrong answers...
(Grossman's Misquote of H.L.Mencken)
Re[3]: Защита от копирования: подгрузка частей кода с сервер
От: Atilla Россия  
Дата: 07.01.03 08:36
Оценка:
Здравствуйте, VKE, Вы писали:

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


А какая разница, с записью или без? Ведь все равно можно будет отладчиком все это считать...
... << RSDN@Home 1.0 beta 4 >>
Кр-ть — с.т.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.