-
Здравствуйте, в своей программе делаю привязку к железу. Использую компонент OnGuard и правлю его исходники. Вижу:
for Drive := 2 to 25 do begin
if GetDriveType(Drive) = DRIVE_FIXED then begin
…..
Так вот проблема в том, что переносные внешние жесткие диски определяются компонентом как фиксированные (установленные внутри компьютера). Соответственно пользователь переносной жесткий диск отключает – и мой ключ перестает работать. Идея в том, чтобы подправить компонент и создавать номер только на основании серийника диска “C”. Вопрос: А) во всех ли компьютерах и всегда ли есть диск С? (под Windows, разумеется) И всегда ли он фиксированный? Б) может есть другие способы для генерации номера?
-
> во всех ли компьютерах и всегда ли есть диск С? (под Windows, > разумеется) И всегда ли он фиксированный?
вот ты и обломался... не вовсех и не разумеется ну и понятно что любой, хоть сетевой
-
> переносные внешние жесткие диски определяются компонентом > как фиксированные (установленные внутри компьютера)
не всегда
-
Удалено модератором
-
> Jiura (04.12.11 19:26)
Если уж так хочется к диску, не проще ли выбирать тот где система установлена?
-
Если б ещё и был гарантированный способ получения гарантированного "уникального серийного номера" диска. Так ведь нет его! Ни номера, ни способа.
-
А самое главное, чего нет, так это потребности "привязки к железу".
-
Потребность есть. Реализация хромает. :)
-
а-ля хасп-ключи. это самая нормальная привязка к железу, остальные варианты и пользователя ущемляют и ваще кака.
-
-
> DiamondShark © (05.12.11 02:33) [6] > > А самое главное, чего нет, так это потребности "привязки > к железу".
На основании чего был сделан столь далеко идущий вывод? Кусок авторского текста полз, который явно говорит об этом?
-
> Jiura (04.12.11 19:26)
Привязываться нужно к тому, что не должно измениться, в данном случае самым правильным будет внешний ключ, поставляемый с ПО, все остальное пользователь в праве заменить без спроса разработчика программы.
-
Удалено модератором Примечание: правила читаем
-
> DiamondShark © (05.12.11 15:33) [12] > На основании логики и фактов, бесспорных в силу очевидности.
Логика? У тебя категорически странная логика. Очевидность? Эмм, а где тут очевидно, что автору не нужно делать привязку? Факты? А факты следующие: автор не спрашивает твоего мнения что и как ему делать, оно ему как-бы не интересно, он спрашивает как реализовать определенное алго. Вывод: нафига флудить в ветке не внося в нее ни копейки практического смысла?
-
Удалено модератором
-
> Б) может есть другие способы для генерации номера? Есть другие, альтернативные привязки, которые порой значительно лучше HDD! Например, привязка к серийнику, а еще лучше некой своей хеш-сумме в SPD планки памяти! Там для этого места хватает с избытком. Я это делал, когда мою полнофункциональную программу, установленную, как демо под честное слово... могли всеже "увести" на сторону и воспользоваться. Таким образом: доверяй, но проверяй! :) Данные SPD читаются(записываются) по специальной шине материнки, называемой SMBUS (все гуглится и статьи есть и сорцы можно сыскать, было бы желание). Есть недостаток, конечно - вендорозависимость алгоритма работы с ней в зависимости от чипсета. Но IntelЫ - молодца! Их много по миру и у них преемственность сохраняется с ростом номера очередного южного моста. "Дорожка юзабельности" следующая: драйверок ring0 для лоступа к портам -> на его базе пишется чипсет-драйверок работы по SMBUS -> адресуемся по SMBUS в SPD память -> R/W ее данные! Кроме этого(этих) чипов(SPD), есть и еще куда писать и что читать, альтрнативно, нестандартно(поди взламай нетривиальные решения!), но нужно знать хорошо железо, чипсеты, доки к ним + драйверописание.
Хасп хорош, но не идеален тоже, он явно видимый, необходимость в нем порой явно избыточна... Имхо.
|