![]() |
защита приложения от использования конкурентами
Есть задача разработать standAlone приложение. Требование заказчика чтоб приложение не могли переписать и использовать конкуренты. Ну сделать так чтоб не возможно было переписать я думаю не реально, а вот создать приложение которое будет работать только на одном компьютере и не запускаться на других думаю можно. Но как не пойму.
Может у кого была такая задача, как решали? |
Если приложение в принципе возможно как-то получить, например легальным способом (купить) - "конкурент" получает (покупает) его один раз и дальше делает с ним что хочет, и никакие защиты вам не помогут. Если приложение невозможно получить, то и защита ему не нужна.
|
Ну какие-то простецкие способы защиты есть, но от серьезных намерений они не защитят.
|
Цитата:
Просто заказчик боится что ктонибудь перепишет в тихорях его с их компа. Добавлено через 1 минуту Цитата:
|
Просто не устанавливать, пока не заплатят :)
т.е. 1. потребовать регистрацию через интернет. 2. после регистрации (оплаты) выдать какой-нибудь серийный номер или что-то такое. 3. потребовать активацию, опять же через интернет. 4. после активации сделать серийный номер больше не действительным. Но это поможет только если програму не будут декомпилировать :) |
Цитата:
|
Можно.
|
и exe тоже можно вскрыть)
|
exe это плеер + swf
|
Есть куча софтовых разаработок, которые ограничивают дистрибуцию чего угодно.
Иногда даже фри. Добавлено через 11 минут Простейший способ немного поизвращаться с настройками винрара - в плане пароля и способа распаковки самораспаковывающегося архива. Как пример: http://flash-ripper.com/content/flas...rukturoi-papok |
Вот способ - в момент инсталяции прога кодирует - пишет время установки в файл.
Затем - надо через инет прогу зарегестрировать. Будет формула, которая уникально сопостовляет время и полученный код для true результата. В итоге каждой программке нужен будет уникальный код. Так-же можно в файл загнать и свой-же путь для установки серийник копютера (должен быть и такой) и при грубом перемещении у программы поменяется путь и она не захочет работать, еще есть реестр...Виндовс - можно извращаться до бесконечности. |
Alex Lexcuk, тогда уж правильней при установке затребовать UI компьютера, зарезервировать под работу проги сервер и при запуске проги посылать на него уведомление.
|
Цитата:
|
Нет никакого "серийника компа" - компьютер не единое целое, он представляет собой набор взаимозаменяемых частей. Есть UID у некоторых отдельных компонентов, только, во-первых, пользователь имеет полное право их заменять (устарели, сломались); во-вторых, Flash многоплатформенный, а разные платформы устроены по разному - возможности обратиться напрямую к аппаратуре просто нет. Чтобы получить подобную информацию извне - надо писать под каждую платформу программу не на Flash. И зачем тогда он вообще нужен?
|
не знаю... Да можно просто при первом коннекте проги к интернету дописать в какой нибуть неприметный файл в программе переменную, которая прийдет с сервера, а на сервере просто считать новые проги.
- Да способ не ахти какой. Можно еще попробовать Class Capabilities, там стоко приколов, что наверно для разных компов будет выдавать какое то отличие по полям, можно из них слепить серийник. |
ладна, спасибо за советы, будем пытаться
|
не совсем понял) копия проги - одна или много? сложилось впечатление, что автор хочет защитить один экземпляр флэхи
|
Цитата:
|
Цитата:
|
Последнее из предложенных решений, кстати, самое надёжное. Если магазины соединены сетью (а это почти всегда так), то можно на каком-либо внутреннем серваке либо действительно производить расчёты, либо просто поднять демона, который будет при инициализации проги высылать какие-либо параметры, критичные для её работы.
Например, в аналогичном случае (да, ненормальных заказчиков много =) я применял такой метод: 1. программа перед инициализацией получает с сервера имена классов, соответствующие набору хэшей (например, TF65123GMF2UY135.8) 2. различные компоненты программы (которых много и в разных местах) инициализируются следующим образом: new getDefinitionByName(HashManager.getClassName('<какой-то хэш>'))() 3. ну и ещё некоторые ухищрения =) Копируем прогу, например, на ноут, запускаем – и она вываливается с кучей страшных ошибок TypeError (попытка доступа к свойству объекта типа Null). Такой метод, конечно, не идеален, но позволяет, без вынесения части функциональности на сервер, существенно затруднить разбор и запуск программы на стороннем компьютере. |
| Часовой пояс GMT +4, время: 08:34. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.