Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Для новичков > Определить ID компа, на котором запустили прогу |
Автор: Alexzz 11.3.2008, 22:37 |
Задача такова: Нужно защититься от копирования программы на другой комп. Для этого нужно как либо получить любой уникальный код, (либо число, либо строку), который бы был уникален для конкретного компа и не менялся со временем. Вот собственно и весь вопрос. |
Автор: Craft 12.3.2008, 02:11 |
Это невозможно. Можно конечно делать привьязку до железа но я не уверен что это выход. Можеш генерировать мас-адрес компа просто или брать идентификаторы самого железа(проца, материнки и т.п.) или то и другое вместе. И у тебя выйдет уникальный код ![]() |
Автор: Alexzz 12.3.2008, 10:13 |
Так вот в том и вопрос, как добраться хоть до одного идентификатора? |
Автор: Letov 12.3.2008, 19:04 | ||
DRKB. Там есть много материала по этой теме. Вот , например: ------------------------------- Из DRKB: Часть информации о диске можно получить при помощи функции GetVolumeInformation. Она позволяет узнать метку, тип файловой системы, серийный номер, максимальную длину имен файлов, а также несколько параметров, связанных с регистром букв в именах файлов, сжатием информации и др. Для определения типа диска используется функция GetDriveType. Для определения объема диска и свободного пространства - GetDiskFreeSpaceEx. Для определения размера кластера и сектора можно использовать GetDiskFreeSpace. Здесь это не используется.
©Drkb::01383 -------------------- В DRKB много хороших примеров. |
Автор: Alexzz 14.3.2008, 21:10 |
Пока искал информацию по GetVolumeInformation нашёл вот такую темку в инете: http://www.cracklab.ru/f/index.php?action=vthread&forum=2&topic=7095. Вот теперь в раздумьях, то ли это что мне нужно... Фишка в том, что этот серийник не должен поменяться со временем, иначе мне поновой придётся выдавать человеку регистрационный код. А потом я не смогу контролировать, когда у него действительно поменялся серийник а когда он просто решил поделиться програмкой с кем-то ещё. |
Автор: lukas 15.3.2008, 06:45 |
слышал что у сетевых карт есть свои уникальный серийный номер, а сетевая плата меняется редко (но ее может еще и не быть, а чем черт не шутит), а вот как его получить проблема другая... |
Автор: lukas 15.3.2008, 17:06 |
думаю это не критическое обстоятельство... придется постоянно запускать скрипты, да и к томуже крекеру нужно будет понять логику программы... что еще усложняет процесс взлома, можно еще к программе добавить цифровую подпись, что то вроде хеша самого текста програмного файла *.exe... |
Автор: Alexzz 31.1.2010, 21:38 |
Может кто всё-же владеет информацией, как получить какой-нибудь идентификатор мамки или проца? |
Автор: profesiachuvak 1.2.2010, 00:31 | ||
Если б всё было так просто. Такими уникальными номерами могут быть лишь мак адреса, но опять же где гарантия что оборудование не будет меняться? На счёт получения мак адресов в DRKB куча примеров. http://drkb.ru |
Автор: Snowy 1.2.2010, 11:29 |
Мак адрес уникален только в теории. Реально его легко поменять без ущерба. Кроме того мак может быть не один. А вот к ID проца, пожалуй можно привязаться. http://www.delphilab.ru/content/view/303/1/ |
Автор: ~FoX~ 1.2.2010, 12:18 | ||
Мак меняется стандартными средствами управления винды, без ущерба и на всегда ![]() ИМХО, проц легко и часто меняется...по крайней мере я меняю раз в пол года, а то и чаще... А если прога для оффисов, то там, проци летят вообще как расходники... Опят таки ИМХО, привязывать программу надо к тому на чем она лежит - т.е. к винту, его ид не изменить... Даже если человек захочет поставить ось заново, то прогу переригистрить не придется... |
Автор: Snowy 1.2.2010, 12:24 |
Вообще можно привязываться к материнке. Но я не уверен, что серийник биоса неизменен. А так можно оговаривать, что лицензия на процессор. Уж не знаю, как у вас буржуинов, но я не вижу смысла менять процессор каждые полгода - бред какой-то. Я меняю раз в 4-5 лет вместе с материнкой. А, если у вас на работе процы летят, как расходники, то нужно увольнять или пользователей, или тех, кто такое фуфло закупил. |
Автор: profesiachuvak 1.2.2010, 17:19 | ||
А смысл? Неужели Вы так часто меняете мак адреса? ![]() |
Автор: former 1.2.2010, 18:42 |
Есть утилиты, которые позволяют семенить mac-адрес. Поэтому mac - не выход. По-поводу серийного номера HDD (заводского). На рынке железа полно винтов, у которых вместо серийного номера иероглифы. Так что тоже не выход. Лучше уж действительно к процу с материнкой. В любом случае придется криптовать участки бинарника, где все это выполняется. |
Автор: ~FoX~ 1.2.2010, 20:57 |
Часто, ибо у меня модем и две сетевухи, иногда необходимо выпускать комп в инет через сетевухи, а пров проверяет маки, мне проще сменить адрес, чем звонить прову, говорить что бы они сменили на своей стороне, потом обратно... |
Автор: profesiachuvak 2.2.2010, 22:58 |
~FoX~, Я имею ввиду мак адрес проца или материнки, с какой целью их меняют? Сомнительно,что это происходит часто. (С сетевой конечно, тут спору нет, но это так скажем "вторичное", необязательное оборудование). Неужели если топикстартеру привязаться к адресу проца, то ему придётся обновлять его программу каждый месяц? ![]() |
Автор: Snowy 3.2.2010, 11:59 |
MAC адрес бывает только у сетевух. У проца и материнки есть серийный номер или ID |
Автор: Alexzz 11.2.2010, 19:18 |
Кстати на счёт ID проца. Пробовал через ассемблер командой CPUID вычитывать 3й ряд данных, который судя по всему и должен являться серийником, но увы, там всегда нули. Пробовал на нескольки машинах. В инете нагуглил описание, что код сей простому смертному не увидеть, но как-то хитро можно только из-под системы открыть. Вот и вопрос - как разблокировать чтение серийного номера? |
Автор: Akella 11.2.2010, 23:23 | ||
ведь программы как-то читают и не только информацию о проце, взять Эверест, так она столько инфы выдаёт о железе %) |
Автор: bems 11.2.2010, 23:59 |
Akella, у эвереста вроде драйвер, нет? |