Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: приковать к батарее Добавлено: 25.10.10 10:39  

Автор вопроса:  gekko | Web-сайт: kalamfur.ru
Вратце, стоит задача сделать у проги привязку к железу.

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

Вопрос в том, к чему привязаться наиболее грамотно и как?

Ответить

  Ответы Всего ответов: 14  

Номер ответа: 1
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #1 Добавлено: 25.10.10 11:35
к серийнику харда и системо-важным-и-врядле-в-будущем-изменяемым- GUID'ам в реестре

Ответить

Номер ответа: 2
Автор ответа:
 gekko



Вопросов: 39
Ответов: 127
 Web-сайт: kalamfur.ru
 Профиль | | #2
Добавлено: 25.10.10 11:49
а как заполучить серийник харда? (не логического диска, а именно железки)
и какие GUID'ы можно использовать? т.е. какие из них уникальны и неизменны для конкретного компа?

Ответить

Номер ответа: 3
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #3 Добавлено: 25.10.10 12:03
1. http://lmgtfy.com/?q=get+hard+disk+serial+.net
2. сам ищи :)

Ответить

Номер ответа: 4
Автор ответа:
 gekko



Вопросов: 39
Ответов: 127
 Web-сайт: kalamfur.ru
 Профиль | | #4
Добавлено: 25.10.10 12:11
первая ссылка просто очень;))))

Ответить

Номер ответа: 5
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #5 Добавлено: 25.10.10 13:13
ага, развивает мозги

Ответить

Номер ответа: 6
Автор ответа:
 gekko



Вопросов: 39
Ответов: 127
 Web-сайт: kalamfur.ru
 Профиль | | #6
Добавлено: 25.10.10 13:40
нет, но настроение поднимает.

- - -

Еще вопрос МОЖНО ли получить серийник харда средствами VB? Т.е. не серийник присвоенный логическому диску (GetVolumeInformation) а именно железкин номер?

Паралельно спросил на sql ру, так там, кроме отсылания в гугл(:)), уверяют что никак нельзя ни серийник харда ни CPU.

Я всё больше думаю что это возможно.

Ответить

Номер ответа: 7
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #7 Добавлено: 25.10.10 16:30
действительно, не развивает, а жаль.

>> http://lmgtfy.com/?q=get+hard+disk+serial+.net

4я ссылка

Ответить

Номер ответа: 8
Автор ответа:
 Just



Вопросов: 4
Ответов: 330
 Профиль | | #8 Добавлено: 25.10.10 19:36
я както делал dll'ку для себя, если устроит - пользуйся

http://zalil.ru/29867066

вот функции (использовать как обычную АПИ, сама dll'ка должна быть или в папке с прогой или с виндой):
  1.  
  2. Private Declare Function CompInf_ProtectString Lib "CompInf.dll" (ByVal sString As Variant) As Variant
  3. Private Declare Function CompInf_ProtectSN Lib "CompInf.dll" (ByVal sString As Variant) As Variant
  4. Private Declare Function CompInf_GetAllSN Lib "CompInf.dll" () As Variant
  5. Private Declare Function CompInf_GetDateBIOS Lib "CompInf.dll" () As Variant
  6. Private Declare Function CompInf_GetDisksInfo Lib "CompInf.dll" () As Variant
  7. Private Declare Function CompInf_GetMACAddress Lib "CompInf.dll" () As Variant
  8. Private Declare Function CompInf_GetCRC Lib "CompInf.dll" (ByVal sPath As Variant) As Variant
  9. Private Declare Sub CompInf_SaveSerial Lib "CompInf.dll" (ByVal sString As Variant, ByVal sPath As Variant)
  10. Private Declare Function CompInf_LoadSerial Lib "CompInf.dll" (ByVal sPath As Variant) As Variant

Ответить

Номер ответа: 9
Автор ответа:
 gekko



Вопросов: 39
Ответов: 127
 Web-сайт: kalamfur.ru
 Профиль | | #9
Добавлено: 25.10.10 20:59
Just, спасибо огромное! вот это действительно выручил.

AgentFire,столько сарказма, а ссылка по делу. спасибо.

Ответить

Номер ответа: 10
Автор ответа:
 Just



Вопросов: 4
Ответов: 330
 Профиль | | #10 Добавлено: 25.10.10 22:16
gekko, сейчас понял что не скинул тебе дешифратор серийника )
так что вот тут все есть и немного переделал длл'ку
http://zalil.ru/29868375
(CompInf_Decode.dll должна быть у тебя)
ps в функции CompInf_GetPCI может после переустановки системы меняться значения

Ответить

Номер ответа: 11
Автор ответа:
 gekko



Вопросов: 39
Ответов: 127
 Web-сайт: kalamfur.ru
 Профиль | | #11
Добавлено: 25.10.10 23:27
Just, немного не понял какие требуются функциям входные параметры. Т.е. CompInf_GetDisksInfo это вообще самое оно)) а вот скажем
Private Declare Function CompInf_ProtectString Lib "CompInf.dll" (ByVal sString As Variant) As Variant
Private Declare Function CompInf_ProtectSN Lib "CompInf.dll" (ByVal sString As Variant) As Variant


или

Private Declare Sub CompInf_SaveSerial Lib "CompInf.dll" (ByVal sString As Variant, ByVal sPath As Variant)
Private Declare Function CompInf_LoadSerial Lib "CompInf.dll" (ByVal sPath As Variant) As Variant


чего-то не разобрался..

Ответить

Номер ответа: 12
Автор ответа:
 Just



Вопросов: 4
Ответов: 330
 Профиль | | #12 Добавлено: 26.10.10 00:14
эммм..ну чтож... по-порядку...

CompInf_ProtectSN - шифрует всю инфу о железе и затем полученный результат отправляется разработчику (скажем через мыло)

CompInf_ProtectString - этим шифруется уже зашифрованная инфа о железе =)
короче здесь проверяется уже ключ который разработчик выслал в ответ

CompInf_GetAllSN - все данные о железе в одной строке (типа отсылает разработчику в шифрованнлм виде а далее разработчик дешифрует и смотрит что конкретно там программа нашла или если это повторное письмо с просьбой восстановить ключ проверяется степень идентичности а дальше уже сам решаешь высылать если скажем винтв не совпал а остальное совпало)

CompInf_GetPCI - тут прикольный алгоритм... ) наугад берутся данные о железе и в каждой винде буду разные данные, но зато винду уже не перепутаешь )

CompInf_GetDateBIOS - соб-но биос

CompInf_GetDisksInfo - винт

CompInf_GetMACAddress - мак-адрес

CompInf_GetCRC - проверить контрольную сумму любого файла, хоть dll проверить хоть exe на предмет влома (если изменить файл - сумма изменится)

CompInf_SaveSerial - сохранить ключ на винт в файл

CompInf_LoadSerial - загрузить


CompInf_DeProtectSN - а вот этой функцией какраз дешифруешь данные о железе и смотришь каков улов )

все это можно подменить, обмануть и тд и тп
так что смотри как защитить от взлома
если будешь проверять значения типа: if a = a then - считай что прога взломанна, на саммом деле использовать длл не самая лучшая мысль для защиты проги и алгоритм надо писать не шуточный чтоб не ломанули легко
в общем главное верить что тебе повезет и не начнут ломать прогу )

Ответить

Номер ответа: 13
Автор ответа:
 Just



Вопросов: 4
Ответов: 330
 Профиль | | #13 Добавлено: 26.10.10 00:27
вот примеры:
  1.  
  2. 'получаем сведения и шифруем для отправки
  3. Text1.Text = CompInf_ProtectSN(CompInf_GetAllSN)
  4. CompInf_SaveSerial Text1.Text, App.Path & "\ДЛЯ РАЗРАБОТЧИКА.ini"
  5.  
  6. 'проверяем подлинность ключа
  7. Text2.Text = CompInf_ProtectString(CompInf_ProtectSN(CompInf_GetAllSN)) 'получаем ключ
  8. If Text2.Text <> CompInf_LoadSerial(App.Path & "\Key.ini") Then End 'сравниваем полученный ключ с ключом в файле Key.ini находящимся в папке с прогой

Ответить

Номер ответа: 14
Автор ответа:
 gekko



Вопросов: 39
Ответов: 127
 Web-сайт: kalamfur.ru
 Профиль | | #14
Добавлено: 27.10.10 11:12
спасибо, Just)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам