Подкинте идею как можно сделать привязку к железу.Но что б при этом привязанная программа,работала на том же самом компьютере на виртиуальной машине(типа vmware).Я знаю что на виртуалках прлцессор не эмулируется,но не у всех камней есть команда получения серийника.К какой же железке ещё можно привязатся?
В общем случае нельзя ни к чему привязаться. Можно лишь определить, что программа выполняется под vmware по некоторым признакам, а вот свой это компьютер или чужой - неведомо.
_nic > К какой же железке ещё можно привязатся? у usb флешке. не слишком надежно, но для юзера сойдет. а хакер один хрен любую хрень пох...
Рекомендуется нечоткая привязко: собрать всю возможную инфу: cpuid, версия винды, дата создания своих модульков, размерчег памяти, ... ну вы понели.
Я че по вашему идиот который невидит надпись на разделах форума? И что будет работать даже на стареньких VIA чипсетах?
Во-первых, теоретически можно создать ВМ, которую нельзя обнаружить из-под неё (надо просто эмулить все ошибки процессора и не добавить своих + имена реальных устройств, а не VirtualBox Generic CDROM). Однако самые известные ВМ вроде WMWare или VirtualBox таким свойством не обладают. Во-вторых, даже при аппаратной виртуализации все функции получения серийника будут возвращать то, что захочет ВМ и достучаться до реального железа не выйдет. Поэтому работа в ВМ только на одном компе не возможна. Так что лучше как уже сказали сделать привязку в виде USB-брелка, HASP-ключа или ещё чего-то в этом роде. Только так ваша задача решима.