powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Привязка к железу
25 сообщений из 30, страница 1 из 2
Привязка к железу
    #34471407
GREG11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Подскажите плизз как можно узнать номер процессора чтоб я мог привязать свою программу к номера процов.

Заранее спасибо.
...
Рейтинг: 0 / 0
Привязка к железу
    #34471477
GREG11Добрый день. Подскажите плизз как можно узнать номер процессора чтоб я мог привязать свою программу к номера процов.

Заранее спасибо.
Комментарии:
Зачем тебе это? Защиту ставить? Так это будет головная боль именно у легальных пользователей: апгрейд пройдет и программа отвалится...
Лучше ставь парольную защиту и будет тебе счастье...

По теме:
Надо использовать Win API. Что-то типа GetSystemInfo...
...
Рейтинг: 0 / 0
Привязка к железу
    #34471995
fox_vik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав СНадо использовать Win API. Что-то типа GetSystemInfo...
Тоже интересует похожая тема. В API ничего нужного не нашел. SysInfo такой информации не предоставляет.

С уважением, Валерий.
...
Рейтинг: 0 / 0
Привязка к железу
    #34472541
fox_vik Станислав СНадо использовать Win API. Что-то типа GetSystemInfo...
Тоже интересует похожая тема. В API ничего нужного не нашел. SysInfo такой информации не предоставляет.

С уважением, Валерий.
Используйте поиск. К сожалению, это все реализуется через ассемблерные вставки. Но, я думаю, можно написать dll-ку и прикрутить к своей программе. Например, см. эту страницу
...
Рейтинг: 0 / 0
Привязка к железу
    #34472625
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fox_vik Станислав СНадо использовать Win API. Что-то типа GetSystemInfo...
Тоже интересует похожая тема. В API ничего нужного не нашел. SysInfo такой информации не предоставляет.

С уважением, Валерий.

GetVolumeInformation() возвращает серийный номер диска
...
Рейтинг: 0 / 0
Привязка к железу
    #34472694
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Привязка к железу
    #34472826
fox_vik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав СИспользуйте поиск. К сожалению, это все реализуется через ассемблерные вставки. Но, я думаю, можно написать dll-ку и прикрутить к своей программе. Например, см. эту страницу
Способ через DLL понятен. Для своего железа мы так и делаем. Но, очевидно, в системе должны быть свои возможности.

С уважением, Валера.
...
Рейтинг: 0 / 0
Привязка к железу
    #34472845
fox_vik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TGetVolumeInformation() возвращает серийный номер диска
GetVolumeInformation() работает с логическим диском. Что такое серийный номер логического диска я не представляю :-)

С уважением, Валера.
...
Рейтинг: 0 / 0
Привязка к железу
    #34472853
fox_vik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ Как получить уникальные сведения?
Уникальный номер процессора

Спасибо, Владимир.

Сейчас посмотрю подробнее.

С уважением, Валера.
...
Рейтинг: 0 / 0
Привязка к железу
    #34473320
asp_fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fox_vik Dima TGetVolumeInformation() возвращает серийный номер диска
GetVolumeInformation() работает с логическим диском. Что такое серийный номер логического диска я не представляю :-)

С уважением, Валера.

Да чего там предствалять ? - серийный № диска :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
	PROC Getid && 
	LPARA cKrug &&  Диск
	LOCAL lpRootPathName,lpVolumeNameBuffer,;
			nVolumeNameSize,;
			lpVolumeSerialNumber,;  
  			lpMaximumComponentLength,;
  			lpFileSystemFlags,;
  			lpFileSystemNameBuffer,;
  			nFileSystemNameSize 
	LOCAL nSerialNumber,nFlag
	DECLARE Integer GetVolumeInformation IN Kernel32.dll ;
		String  lpRootPathName,;
		String  @lpVolumeNameBuffer,;
		Integer nVolumeNameSize,;
		Integer @lpVolumeSerialNumber,;  
		Integer @lpMaximumComponentLength,;
		Integer @lpFileSystemFlags,;
		String  @lpFileSystemNameBuffer,;
		Integer nFileSystemNameSize 
	
		STORE SPAC( 100 ) TO VolumeNameBuffer 
		STORE SPAC( 100 ) TO FileSystemNameBuffer
		nSerialNumber= 0 
		nFlag = GetVolumeInformation(cKrug,VolumeNameBuffer, 100 ,;
			@nSerialNumber, 0 , 0 ,FileSystemNameBuffer, 100 ) 
		RETURN nSerialNumber
	ENDPROC
Уже и не помню откуда этот код :-))) Но защита работала нормально!
А вообще, идею защиты основанную только на № процессора, № диска нельзя считать серьезной.Она должна быть комплексной.
Ко всяким защитам отношусь скептически, но один клиент все-таки достал с защитой продукта, так что я ему сделал . Прочтите, может что и пригодиться:
1. Активация программы происходит только тогда, когда требуется ее переустановка, связанной с заменой диска или переустановкой операционки. Процессор не трогаем!
2. Последовательность активации следующая: № программы(зашит в коде exe)+№Диска+кое-что->Шифрование кода --> 1. Запись в реестре (шифрованная ветвь) --> Введенный код+№диска -> Шифрование --> 2. Запись в реестре
3. Проверка активации - размазана по коду и по событиям случайным образом. И производится в нескольких местах. Так же из разных частей собирается алгоиритм шифрования и может зависеть (например от номера месяца), при этом старый код в реестре может быть изменен на новый, но ключ кода не меняется. Момент когда будет принято решение о блокировке не известен и проходит скрытно.
4. При первом запуске просто блокируется часть функций программы. Если в течении определенного времени (часы, дни) не введен код,то она блокируется.
5. Можно копировать реестр, менять дату и время. При обнаружении данных "хитростей" в программе запускается скрытый "механизм недоверия" и через некоторое время она "выскакивает" на некоторых функциях.
6. Для дистанционной активации - клиент высылает код, вы ему ответный, Но можно и на месте, произведя на глазах ряд обманных манипуляций, нажимая клавиши, двигая мышку и вводя коды провести актвацию.
К моему удивлению ее действительно пытались взломать, но я уже и сам, скорее всего, не смогу. Но вот только зачем это ;-) ???
...
Рейтинг: 0 / 0
Привязка к железу
    #34474089
fox_vik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asp_foxДа чего там предствалять ? - серийный № диска :
А Вы что в качестве параметра передаете в процедуру?
Если "C:", "D:" и т.д., то это логические диски, а не физические.
У меня два физических и четыре логических. Все четыре выдают разные серийные номера, которые вряд ли имеют какое-то отношение к серийным номерам физических дисков. Если физический диск разбить на логические по другому, то и серийные номера, скорее всего, изменятся.

asp_foxА вообще, идею защиты основанную только на № процессора, № диска нельзя считать серьезной.Она должна быть комплексной.
У меня несколько другая задача к защите не имеющая никакого отношения. С защитой у нас все в порядке. :-)
Мы производим, как теперь модно говорить, аппаратно-программные комплексы. Себестоимость одного такого комплекса около $20000. Программы работают только с железом этого комплекса, и другой защиты не нужно. :-)
Но эти комплексы устанавливаются на автомобили и разъезжаются в радиусе 1500 км. Отследить где и что установлено в такой ситуации сложно. Вот и думаю, как уменьшить влияние человеческого фактора.

С уважением, Валера.
...
Рейтинг: 0 / 0
Привязка к железу
    #34474381
Scorpio_md
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asp_fox
Уже и не помню откуда этот код :-))) Но защита работала нормально!
А вообще, идею защиты основанную только на № процессора, № диска нельзя считать серьезной.Она должна быть комплексной.
Ко всяким защитам отношусь скептически, но один клиент все-таки достал с защитой продукта, так что я ему сделал . Прочтите, может что и пригодиться:
1. Активация программы происходит только тогда, когда требуется ее переустановка, связанной с заменой диска или переустановкой операционки. Процессор не трогаем!
2. Последовательность активации следующая: № программы(зашит в коде exe)+№Диска+кое-что->Шифрование кода --> 1. Запись в реестре (шифрованная ветвь) --> Введенный код+№диска -> Шифрование --> 2. Запись в реестре
3. Проверка активации - размазана по коду и по событиям случайным образом. И производится в нескольких местах. Так же из разных частей собирается алгоиритм шифрования и может зависеть (например от номера месяца), при этом старый код в реестре может быть изменен на новый, но ключ кода не меняется. Момент когда будет принято решение о блокировке не известен и проходит скрытно.
4. При первом запуске просто блокируется часть функций программы. Если в течении определенного времени (часы, дни) не введен код,то она блокируется.
5. Можно копировать реестр, менять дату и время. При обнаружении данных "хитростей" в программе запускается скрытый "механизм недоверия" и через некоторое время она "выскакивает" на некоторых функциях.
6. Для дистанционной активации - клиент высылает код, вы ему ответный, Но можно и на месте, произведя на глазах ряд обманных манипуляций, нажимая клавиши, двигая мышку и вводя коды провести актвацию.
К моему удивлению ее действительно пытались взломать, но я уже и сам, скорее всего, не смогу. Но вот только зачем это ;-) ???

А тут такой вопрос, а если программу декомпилировать, то в коде модно и разобраться, по какому принципу вы здесь защиту ставите ???
А то никак не могу найти как мне закрыть свою программу от декомпиляции.
...
Рейтинг: 0 / 0
Привязка к железу
    #34474412
GREG11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WMI вещь хорошая, я с помощью ее делал привязку проги к серйнику материнки и винта, даже потом добавил к версии BIOS. НО, после того как моя программа попала в один офис вся моя защита полетела, т.е. не то-что не заработала, как раз заработала, но оказалось что на 6 компах все обсолютно одинаковое! собственно и серийник один на всех.
Да, WMI не дают ничего подобного из проца, но в windows\inf\cpu.inf как раз в самом начале файла есть ClassGuid={50127DC3-0F36-415e-A6CC-4CB3BE910B65}. вот это и есть серийник проца. конечно можно сделать обращение к этому файлу как к ini, но хотелось бы узнать как этот же номер получить иными средствами. через реестр не получиться, так как этот номер находитсья в папке(в реестре) которая называетсья подобно famili_6_model_13_stepping_8, вобщем папка будет иметь название такое в зависимости от типа проца. поэтому реестр отпадает.
Может кто знает еще какие-то способы??? Может есть АПИ о которой мало где говориться?
...
Рейтинг: 0 / 0
Привязка к железу
    #34475299
fox_vik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GREG11в windows\inf\cpu.inf как раз в самом начале файла есть ClassGuid={50127DC3-0F36-415e-A6CC-4CB3BE910B65}. вот это и есть серийник проца.
Это идентификатор класса, а не серийный номер.
У меня он такой же.
[Version]
Signature="$WINDOWS NT$"
Class=Processor
ClassGuid={50127DC3-0F36-415e-A6CC-4CB3BE910B65}

С уважением, Валерий.
...
Рейтинг: 0 / 0
Привязка к железу
    #34475497
fox_vik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ Как получить уникальные сведения?
Уникальный номер процессора
Потестировал я WMI. Результат не утешительный.
Win32_BaseBoard на двух машинах с однотипными MotherBoard выдает абсолютно одинаковые результаты. Аналогично и с Win32_Processor.
Кроме того, в Win32_BaseBoard на разных типах MotherBoard одного производителя серийный номер один и тот же: SerialNumber = MB-1234567890
А уж о принтерах и мониторах и говорить нечего. :-(

В Win32_DiskDrive физические диски можно идентифицировать, но по PNPDeviceID.

С уважением, Валерий.
...
Рейтинг: 0 / 0
Привязка к железу
    #34477272
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fox_vik Dima TGetVolumeInformation() возвращает серийный номер диска
GetVolumeInformation() работает с логическим диском. Что такое серийный номер логического диска я не представляю :-)

С уважением, Валера.Для общего развития: серийный номер логического диска это что-то производное от даты/времени его форматирования, реального серийника винта, модели и т.п. Если в инете покопаться - можно алгоритм генерации даже найти. При очередном форматировании меняется.
Очень удобно использовать серийный номер диска С для идентификации компа:
1. Диск С: есть на каждом компе, хотя можно переименовать его например в D:, но такое видел только раз, и то на терминал-сервере чтобы пользовательский С: мапить. (Можно взять не С: а получить диск, на котором Win стоит)
2. В рамках одной машины он постоянен (даже при переустановке Win без форматирования)
3. Крайне маловероятно что повторится на 2-х разных машинах (без чужой помощи)

Для построения легкой защиты и идентификации компов походит идеально

GREG11...
Может кто знает еще какие-то способы??? Может есть АПИ о которой мало где говориться?

Серийный номер диска :) сложнее что-то делать не стоит.
Если человек знает как изменить серийник винта на машине, то он может и с refox'ом при желании разобраться, ломать - не строить, пофиксить проверку и собрать заново exe больших навыков программирования не надо.

А серийный номер процессора можно в биосе отключить, и тогда его никто не узнает. Если не ошибаюсь, по умолчанию он обычно отключен.

Любой вынос функций во внешние DLL задачу взлома значительно упрощает, смотришь отладчиком что получает и что возвращает экпортируемая функция и делаешь эмулятор.

Абсолютно защищенных прог не бывает. Тем более на фоксе.
Формула идеальной защиты: 1. цена создания защиты значительно меньше цены создания софта2. цена взлома сопоставима с ценой покупки софта.
...
Рейтинг: 0 / 0
Привязка к железу
    #34478026
GREG11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я как раз и строил зощиту по PNPDEVICEID. И как я описывал выше понял что эта инфа которую я получал не всегда идеальна. так как есть винты с одинаковым номером.
...
Рейтинг: 0 / 0
Привязка к железу
    #34479621
asp_fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Scorpio_md
А тут такой вопрос, а если программу декомпилировать, то в коде модно и разобраться, по какому принципу вы здесь защиту ставите ???
А то никак не могу найти как мне закрыть свою программу от декомпиляции.

Ко всякого рода программым защитам у меня отношение скпептическое - тут я плохой советчик. По моему глубокому убеждению, нет ни одной программы с которой нельзя разобраться! Все зависит только от времени и желания этим заниматься. Единственный выход - настолько усложнить этот процесс, чтобы тому кто разбирается с кодом мягко говоря "надоело" :-))). Чего в принципе я и добивался, когда пытался защитить программу по просьбе моего клиента. А от декомпиляции программу можно и не защищать, если вы хотите спрятать алгоритм, лучше сделать ряд ложных ходов, комментариев и т.п. Только надо соизмерять затраченные усилия и результат.
...
Рейтинг: 0 / 0
Привязка к железу
    #34481640
fox_vik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GREG11Я как раз и строил зощиту по PNPDEVICEID. И как я описывал выше понял что эта инфа которую я получал не всегда идеальна. так как есть винты с одинаковым номером. Да уж :-(
Неужели в 21-ом веке невозможно получить уникальный идентификатор цифрового устройства?
...
Рейтинг: 0 / 0
Привязка к железу
    #34484383
GREG11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получить та можно. если Вы читали выше то я указывал суть проблемы,там описывалось что WMI по серийнику винта на 5 машинах выдал один и тот же номер!!! На пяти разных машинах. получаеться что винты одной марки и серии выпускаються с одинаковым серийником?
...
Рейтинг: 0 / 0
Привязка к железу
    #34484852
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fox_vikНеужели в 21-ом веке невозможно получить уникальный идентификатор цифрового устройства?
Нельзя. В принципе. Да здравствует продукция великой компании NoName

Помнится, относительно недавно был сканадал по поводу одинаковых MAC-адресов сетевых карт. Тогда китайцы постарались. А сейчас это уже вообще никого не удивляет. Все знают , что MAC-адреса могут быть не уникальными.

Хоть какую-то унификацию можно получить, если вообще ВСЕ железо будет выпускаться легально. Ну, или хотя бы покупать будут только легальное железо. В ближайшее время это вряд ли случится...

По поводу WMI следует еще иметь в виду, что эта служба может быть вообще отключена у клиента. Тогда не получишь никакой информации через WMI.
...
Рейтинг: 0 / 0
Привязка к железу
    #34485860
GREG11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вы можете что-то посоветовать?? И как определить что WMI у пользователя отключена и можно ли ее програмно включать?
...
Рейтинг: 0 / 0
Привязка к железу
    #34486001
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WMI может даже и не быть совсем. Че включать будем?
...
Рейтинг: 0 / 0
Привязка к железу
    #34486072
Vladimir410
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
уметь определять серийный номер процессора может быть полезно для предотвращения воровства процессоров в организации (замена сильного процессора на слабый).
...
Рейтинг: 0 / 0
Привязка к железу
    #34486171
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Осталось дело за малым - заставить все процессоры отдавать свой серийный номер.
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Привязка к железу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]