asmlamo, PROFi Серийник материнки: не у каждой материнки он есть. Да и перепрошить не составляет труда. Серийник винта: из под "внешних" контроллеров (или RAID) не достать. MAC сетевухи: на некоторых материнках (например DFI) задаётся в CMOS BIOS (я про встроенную сетевуху).
Можно попытаться переложить эту проблему на Windows. По идее, значения ключей реестра должны быть уникальными: HKEY_LOCAL_MACHINE\SYSTEM\WPA\Key-бла-бла-бла\DigitalProductID HKEY_LOCAL_MACHINE\SYSTEM\WPA\SigningHash-бла-бла-бла\SigningHashData
T800 Против кого защищаемся? Против хакеров или немного более продвинутых пользователей? Тут вопрос в документированной идентификации. roman_pro тема называется идентификация компьютера, а не идентификация Windows
doctor_Ice размер системного тома (всех томов hdd) плюс размер физической памяти - не требует прав админа для чтения и уникален даже для виртуалок, т.к. им выделяется различное кол-во памяти, разные объемы дисков... если не требуется свер-уникальный параметр, то данная методика очень даже неплохо подходит. так же неплохо подходит время создания различных системных каталогов/файлов - даже при переустановке винды оно не меняеется, разве что диск был отформатирован начисто а вот серийники - ну разве что брать серийник из бута, потому что он читается с прикладного уровня. серийник винта для чтения требует либо драйвера, либо прав админа и следует учесть ситуацию, при которой его прочесть вообще не удастся, достаточно взять уже упомянутые выше райды, которые все чаще и чаще встречаются на материнских платах. дата создания BIOS так же читается с прикадного режима и достаточно уникальна, ну если не дата, то просто контольная сумма ) вот только привязываться к компьютеру нехорошо ;( поскольку, каждый чел. имеет право менять оборудование, перешивать BIOS, etc. лучше привязываться к сменным носителям. самое простое - привязаться к флешке.
kaspersky Не катит. Даже среди десктопов немало однотипных (e.g. 80Gb/1Gb) конфигураций, не говоря уже о ноутах - те вообще серийно идут одинаковыми.
Очередной ляп, добрая традиция из книжек серии "Кодокопатель"... Получить серийник винта !!!В ЧАСТНОМ СЛУЧАЕ!!! без драйвера и админа можно через минипорт скази, используя DeviceIoControl. А насчет реестра (раздел HKEY_LOCAL_MACHINE\HARDWARE\ DESCRIPTION\System\), то таки да, есть переменные SystemBiosDate, SystemBiosVersion, VideoBiosDate, которые в совокупности могут использоваться для идентификации оборудования. Только мне кажется, что такая привязка - действительно неэффективна в долгосрочных перспективах...
IceStudent и что, все с одинаковым кол-вом памяти на борту? и диски разбиты только на один том С: ? и у всех одна версия выни... ты сначала проверь все-таки это достаточно уникальная характеристика...
AshBone KK>> а вот серийники - ну разве что брать серийник из бута AB> Получить серийник винта !!! что есть бут - напомнить?
kaspersky тогда объясните, чем отличается серийник винта от "серийника из бута", и вопросы отпадут...
бут - это boot sector, в который при форматировании пишется серийный номер тома. (о том, что он меняется при переформатировании и его легко вписать самостоятельно мы промолчим), прочесть бут можно десятком способом, как требующих прав админа, так и нет. причем через "голое" win32 API, что надежно и универсально. ес-но, "надежно" в плане работы программы, а не в плане отлома защиты.
kaspersky Боюсь, что вы меня неправильно поняли. DeviceIoControl вытягивает через минипорт скази реальный (!) серийный номер физического устройства "жесткий диск" (проверял лично). (если интересуют подробности - набираем в яндексе "серийный номер DeviceIoControl SCSI"или идем по ссылке http://kladovka.net.ru/delphibase/?action=viewfunc&topic=harddisk&id=10376. Вы же, я так понял, имели в виду номер, вытягиваемый, например через GetVolumeInformation, который действительно меняется при форматировании... Что же касается использования API.... Ну не мне же ВАМ рассказывать про стелс-импорт и прочие приколы ))) З.Ы. Тем более, что я не собирался спорить о нецелесообразности такой защиты (см. выше). Просто вопрос стоял - КАК, а не ЗАЧЕМ.
AshBone серийный номер _винта_ хранится внутри винта и он там один. "вытягивается" через кучу интерфейсов (самый известный - SPTI), позволяющих передавать диску SCSI-команды, которые ось транслирует в его нативные команды (например, ATA) или же передавать сразу ATA-команы, но это будет работать только с IDE. прочем, SCSI-команды все равно не будут работать с райдами, то есть будут, но нужно обращаться к райду как к райду... и решение программы растягивается на многие сотни и даже тысячи строк. при этом либо требует прав админа, либо наличия в системе нестандартных драйверов типа ASPI32 от адаптека, которые начиная с XP? кажется с XP... уже не поставляются... или еще с w2k? серийный номер бута, хранится в буте _тома_ и сколько на винте _томов_ (лог. разделов), столько же и бутов (конечно это условно, т.к. раздел может быть и без бута). я же сразу сказал. серийный номер бута при чем тут вообще винт. > З.Ы. Тем более, что я не собирался спорить > о нецелесообразности такой защиты (см. выше). > Просто вопрос стоял - КАК, а не ЗАЧЕМ. а что, чтение серийника винта ломется сложнее, чем бута? GetVolumeInformation - намного менее "незаметная" функция, чем обращение к винту через SPTI например... уже хотя бы потому, что последнее требует прав админа и любя тузла типа бус-хунд сразу же его отловит. и никакой стелс-импорт не поможет. потому как фильтр. я уже говорил, чтобы не париться - читаем время создания каталога винды и хватит с нас радостей. работает под любой виндой от 9x до Вислы. прав админа не требует... и очень трудно обнаруживается, особенно если мы читаем не только время создания каталога вины, но и других файлов. то есть, файловый монитор это легко отловит, но хакер утонет в логе и все равно не поймет к чему идет привязка еще можно привязываться к точности системных часов через службу точного времени. прав админа не требует, позволяет менять все компоненты, кроме матери, на сброс кмоша не реагирует... ну что может быть лучше?!