PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Создание защиты по ID


Создание защиты по ID

Сообщений 1 страница 17 из 17

1

Петр, ты говорил, что как-то можно прикрутить к программе регистрацию по ID. Ты бы мог подсказать куда капать? Может библиотеки какие нужны. Вот обычный пример:

Код:
Enumeration
  #Window_0
  #Window_1
EndEnumeration

Enumeration
  #MenuBar_0
EndEnumeration

Enumeration
  #MENU_1
  #MENU_2
  #MENU_4
  #MENU_5
  #MENU_7
  #MENU_9
EndEnumeration


Enumeration
  #Text_0
  #Text_1
  #String_0
  #Text_2
  #String_1
  #Button_0
  #Button_1
EndEnumeration


Procedure Open_Window_0()
  If OpenWindow(#Window_0, 298, 191, 299, 168, "TextProgram",  #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
    If CreateMenu(#MenuBar_0, WindowID(#Window_0))
      MenuTitle("Файл")
      MenuItem(#MENU_1, "Выход")
      MenuTitle("Помощь")
      MenuItem(#MENU_4, "Справка")
      MenuBar()
      MenuItem(#MENU_5, "Регистрация")
      MenuBar()
      MenuItem(#MENU_7, "О программе")
      EndIf

      If CreateGadgetList(WindowID(#Window_0))
        TextGadget(#Text_0, 10, 5, 130, 15, "Не Зарегистрировано!")
        
      EndIf
    EndIf
EndProcedure

Procedure Open_Window_1()
  If OpenWindow(#Window_1, 288, 246, 244, 89, "Reg...",  #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
    If CreateGadgetList(WindowID(#Window_1))
      TextGadget(#Text_1, 5, 10, 45, 15, "Ваш ID:")
      StringGadget(#String_0, 60, 5, 170, 20, "")
      TextGadget(#Text_2, 5, 40, 45, 15, "Ключ:")
      StringGadget(#String_1, 60, 35, 170, 20, "")
      ButtonGadget(#Button_0, 140, 60, 90, 25, "Регистрация")
      ButtonGadget(#Button_1, 5, 60, 90, 25, "Отмена")
      
    EndIf
  EndIf
EndProcedure

Open_Window_0()

Repeat
event=WaitWindowEvent()
menu=EventMenu()
window=EventWindow()

If event=#PB_Event_Menu 
Select menu
 Case #MENU_5
  DisableWindow(#Window_0,1)
  Open_Window_1()
EndSelect  
EndIf

If window=#Window_1
 If Event = #PB_Event_CloseWindow
  DisableWindow(#Window_0,0)
  CloseWindow(#Window_1)
 EndIf
EndIf 

Until event=#PB_Event_CloseWindow And window=#Window_0

0

2

daiomik написал(а):

регистрацию по ID

ID чего? Компа?
Нужна привязка к компу или просто работа с серийными номерами?

0

3

Пётр написал(а):

Нужна привязка к компу или просто работа с серийными номерами?

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

Пётр написал(а):

или просто работа с серийными номерами?

А в чем разница? И что надежней?

0

4

daiomik написал(а):

окно регистрация, появляется код ID, привязанный к компу

Получаем информацио о компонентах компьютера, на основе которой генерируем ID.
Вот как можно получить инфу о компе (библиотека Droopy Library должна быть установлена).

Код:
MessageRequester("WMI",WMI("Select * FROM Win32_OperatingSystem,Name,CSDVersion,SerialNumber,RegisteredUser,Organization")) 
MessageRequester("WMI",WMI("SELECT * FROM Win32_BIOS,Manufacturer,Caption,SerialNumber")) 
MessageRequester("WMI",WMI("SELECT * FROM Win32_VideoController,DeviceID,Caption,AdapterDACType,DriverVersion,InstalledDisplayDrivers,CurrentBitsPerPixel,CurrentRefreshRate,CurrentHorizontalResolution,CurrentVerticalResolution" )) 
MessageRequester("WMI",WMI("SELECT * FROM Win32_LogicalDisk,DeviceID,Description,VolumeName,FileSystem,size,FreeSpace,VolumeSerialNumber,Compressed"))

0

5

Пётр написал(а):

Получаем информацио о компонентах компьютера, на основе которой генерируем ID.

мне отладчик все вывел о моей машине. А каким образом генерировать ID? У каждого совй способ или жеесть какой то стандартный?

0

6

Нужно придумать свой уникальный способ генерации ID из инфы о компе.

0

7

А генерацию производить на основе любого из данного или все использовать? Ведь например серийный номер (SerialNumber) у всех же разный

0

8

Выбери только требуемые данные, по которым будет производится привязка к железу компа.

0

9

Пётр написал(а):

Выбери только требуемые данные, по которым будет производится привязка к железу компа.

Но ведь они у всех разные..Ну пусть будет видеокарта например

0

10

Считывай инфу о видео и используй её

Код:
MessageRequester("WMI",WMI("SELECT * FROM Win32_VideoController,Caption,AdapterDACType" ))

0

11

Пётр написал(а):

Нужно придумать свой уникальный способ генерации ID из инфы о компе.

а например, самый простой алгоритм генерации?

Пётр написал(а):

MessageRequester("WMI",WMI("SELECT * FROM Win32_VideoController,Caption,AdapterDACType" ))

но ведь точно такая же модель может быть и удругого пользователя, следовательно ID будут одинаковыми и это не надежно

0

12

daiomik написал(а):

а например, самый простой алгоритм генерации

Просто шифрование строки с данными, но ID будет очень длинным!

daiomik написал(а):

но ведь точно такая же модель может быть и удругого пользователя, следовательно ID будут одинаковыми и это не надежно

Сам же предложил видеократу!
У другого пользователя может быть такой же процессор, материнка и т. д.
Что предлагаешь?

0

13

Пётр написал(а):

Просто шифрование строки с данными, но ID будет очень длинным!

мне бы узнать как это делается..

Пётр написал(а):

Что предлагаешь?

хм..даже не знаю..одназначно нужно то, что у разных пользователей разное..например имя компьютера.

0

14

daiomik написал(а):

мне бы узнать как это делается

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

PS.
В версии PB 4.40 появилось несколько дополнительных функций шифрования.

0

15

Пётр написал(а):

Поэтому лучше придумай свой уникальный метод шифрования, чтббы взломать было сложнее.

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

0

16

Ну почему безнадежно?
Если надо, то можно сделать все что угодно, а если не нужно то...

0

17

А вообще идея интересная!
Например при инсталяции программы, она цеплялась за ID какой нибудь железки, например харда или сетевой карты.
Соответственно простая защита от копирования и распространения.

По этому поводу позже задам кучу вопросов :-)

0


Вы здесь » PureBasic - форум » Вопросы по PureBasic » Создание защиты по ID