Lokhmati | ||||
Товарищи! Использую код для привязки к дате создания BIOS материнской платы:
При запуске приложения под Win98 все определяется. Под WinXP – ошибка приложения. Что тут не так? Прошу помощи! |
||||
adia | ||||
В ХР не получится. Доступ к таким адресам из программ в ХР (2000+) невозможен. Во тут показано как узнать дату БИОСа из реестра, хоть это и не надежно. Правда на Паскале, но разобраться можно Если не секрет, зачем это? |
||||
Lokhmati | ||||
Дело в том, что одну мою программулину хотят приобрести. Следовательно хочу создать привязку только к машине покупателя. Вот и все. :) | ||||
kiskus | ||||
Не лучше ли привязатся к серийному номеру тома где будет инсталирована программа. | ||||
Lokhmati | ||||
Тоже вариант. Спасибо! | ||||
adia | ||||
Это варварство. Я сталкивался с такими. И не понимаю, почему, если я купил программу, я не могу установить ее на другой комп, если, скажем, сдох винт или сам комп? |
||||
AngeLR | ||||
любая защита приносит неудобства... и не дает гарантии взлома... ни когда не видел смысла в этом... если очень надо будет - словают или обойдут. | ||||
kiskus | ||||
Если Вы купили программу у производителя, то как правило, у Вас доллжен быть дистрибутив приложения и в случае поломки жесткого диска устанавливаете и пользуетесь дальше. Если у Вас "свистнули" или напрямую стянули ,что не редкость, программу с компьютера, то для того чтобы приложение не запускалось делают "привязку" к железу заказчика. Некоторые заказчики специально оговаривают данный момент. И маленькое замечание - купил диск с программой ,программами, и купил программу. Это не одно и то же. При продаже программы производитель или программист, в зависимости от договора с заказчиком, обеспечивает "поддержку" программы , те помогает в установке,настройке и обучении персонала, а также в устранении скрытых ошибок приложения если таковые имеются. Программирование труд, и далеко не самый лёгкий как может показатся. ИМХО Это сообщение отредактировал kiskus - 06-12-2006 - 16:53 |
||||
shworker | ||||
Есть еще один метод - не самый красивый с точки зрения распространения, но зато действенный. Писал как-то программу для организации - надо было вбивать данные в базу и выводить печатные формы. Так вот, я намертво закодировал название организации в код. Для тех, кто стырит программу (случаи были) взлом просто не имеет смысла, так как на всех выходных документах печатается другое название. Для усиления защиты (а вдруг кто-то догадается ) предусмотрено шифрование. Еще вариант - защита при помощи Flash USB Stick. Можно держать на флешке скрытый раздел, который не виден винде. И в нем - серийник, название организации и ее реквизиты, и тд. Так как флешка только читается - работает достаточно надежно. Это сообщение отредактировал shworker - 07-12-2006 - 00:44 |
||||
JeyLo | ||||
Если человек пишет на VB прикладные программы, то понятно, какой уровень там у пользователей. И привязать к тому или BIOS'у будет вполне достаточно. | ||||
Lokhmati | ||||
Пишу для самого обычного ПТУ. Решил не парить остатки мозга и пишу на VB. Достаточно простой, если не тривиальной, защиты. Просто было уже такое, когда мои проги расходились по друзьям, знакомым, родственникам и т. д. Вот и хочу защититься. Понимаю, что кому надо - взломает. А тот, кому я продаю 100% не сломает. |
||||
adia | ||||
Ну в этом случае есть более простой вариант. При установке Setup прописывает в реестр какие-то значения, связанные с этой программой. Без этих записей программа просто не работает или работает в ограниченном демонстрационном режиме. Если ее тырить прямо с компа, то только вместе с реестром )). Ну а если диск уведут вместе с setup, то тут уж ничего не поделаешь. |
||||
Lokhmati | ||||
Уж думал об этом. И передумал ![]() Всем спасибо! Остановлюсь на привязке к дате BIOS'а |
||||
himor | ||||
Самый реальный вариант которым лично я пользовался - это привязка к серийному номеру тома где устанавливается программа. Но не думаю, что сейчас это актуально. Намного удобнее иметь USB ключ - недорогую флешку небольшого размера с ключевым файлом на ней. При выборе правильного метода шифрования получится довольно интересное решение. | ||||
JeyLo | ||||
Lokhmati правельно сказал про свой необходимый уровень. :) Cерийный номер тома меняется на ура. Можно привязать к связке MAC-HDD-BIOS-REGISTRY-XP (...) но таки все это фигня. Не катит. :) Единственный нормальный способ - привязать к аппаратному ключу. Кстати, можно сделать нулевой драйвер, дистрибутив никому не давать и спрашивать про валидность через поимённые трубы. :) Напесать? ![]() |
||||
JeyLo | ||||
Блин, чего только не сделаешь... Лишь бы не работать. Драйвер:
Пользовательское приложение:
Это сообщение отредактировал JeyLo - 22-04-2007 - 14:16 |
||||
maxdiversexnarod1 | ||||
Позволю заметить, что толку от такой защиты не намного больше, чем от, скажем, привязки к BIOS'у. Если программа не запакована, то строка вида \\.\ЧТО-ТО будет заметно выделяться среди всех строк экзешника. Тыкаем по перекрёстной ссылке, видим CreateFile... Даже если строки не будет в чистом виде в экзешнике, то когда дело дойдет до отладчика, трюк быстро обнаружится. Смотрим, при каких условиях на экране появляется окно, посылающее нас на, и добираемся до условного перехода на функции CreateFile. Многие даже не станут задумываться, и исправят условный переход на обратный - и все дела :) Если же хорошенько запутать защитный код или запаковать файл крутым протектором, то тогда уже станет не важно, какая защита применена: одинаково хорошо будет действовать и проверка номера BIOS'а, и поиск драйвера. В общем, мораль такова: или писать тупую защиту, которая остановит только ламеров, или делать навороченную защиту, которая обойдется в десятки бессонных ночей, и всё равно будет рано или поздно взломана. P.S. USB-ключ - это вообще отстойный метод. Что мы имеем для пользователей? Кучу гимора с покупкой и применением проги. Что имеем для взломщиков? Во-первых, не надо искать метод защиты - он и так известен :) Во-вторых, пишем драйвер, эмулирующий USB-устройство - и кранты защите. Не говоря уже о том, что многие пишут так: ... ... ... КУЧА навороченного защитного кода - чтение скрытых файлов с USB, вычисление MD5-хэшей ... ... ... if ( ! ok ) { MessageBox (0, "У вас незарегистрированная версия!!!", "", 0); ExitProcess (0); } В общем, без комментариев :) |
||||
JeyLo | ||||
Зато импорт функций не будет вызывать подозрений. 6) И имя пипы может быть само по себе абстрактным. А так согласен. Полностью. |
||||
maxdiversexnarod1 | ||||
Так-то оно так, да вот только достаточно проследить за вызовами функции CreateFile в API-мониторе, и трюк вскроется :) Тем более что первый шаг при взломе (по крайней мере, у меня) - изучение того, какие файлы программа пытается открыть. И в этом списке "белой вороной" будет смотреться запись \\.\ЧТО-ТО. Если даже и использовать этот метод, то тогда юзать нативные API: ZwCreateFile, а лучше напрямую вызов SYSENTER. Впрочем, я бы всё равно не выбрал мы метод с драйвером. Всё-таки достаточно сравнить списки файлов до установки и после установки, и тогда легко запалить появление нового драйвера (собственно, сравнение списков файлов и должно быть первым шагом во взломе, просто я всегда забываю сделать снимок системы перед инсталляцией :) |
||||
JeyLo | ||||
Этот метод для ламеров. Все обсуждаемые тут вопросы не имеют отношения к нормальной защите. Обычный пользователь драйвер не найдет. В списке процессов его нет, установка скрыта и т.д. Впрочем, так же он не найдет привязку к тому, BIOS, etc. |