Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Power Basic

Страница: 1 | 2 |

 

  Вопрос: имя жеского диска и серийный номер Добавлено: 09.08.06 17:08  

Автор вопроса:  poiskxxx

Ответить

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

Номер ответа: 16
Автор ответа:
 poiskxxx



Вопросов: 2
Ответов: 9
 Профиль | | #16 Добавлено: 11.08.06 10:30
Вот привязал к данным из реестра
а хочется и к номеру HDD.


#COMPILE EXE
#DIM ALL
#INCLUDE "WIN32API.INC"

'#Compile Dll
'Function PbLibMain
' [...]
'Function = 1
'End Function

%HK=%HKEY_LOCAL_MACHINE

 FUNCTION GetSetting(BYVAL AppName AS STRING, BYVAL Key AS STRING, BYVAL DEFAULT AS STRING) AS STRING
  LOCAL hKey    AS LONG
  LOCAL Result  AS LONG
  LOCAL KeyType AS LONG
  LOCAL Buffer  AS STRING * 2048
  LOCAL SIZE    AS LONG
  ' ** Exit is AppName, Section or Key are null
  IF (LEN(AppName) * LEN(Key)) = 0 THEN
    FUNCTION = DEFAULT
    EXIT FUNCTION
  END IF

  ' ** Open the section
  IF RegOpenKeyEx(%HK, ""+AppName+"", 0, %KEY_ALL_ACCESS, _
                  hKey) <> %ERROR_SUCCESS THEN
    FUNCTION = DEFAULT
    EXIT FUNCTION
  END IF
  ' ** Get the key value
  SIZE = SIZEOF(Buffer)
  Result = RegQueryValueEx(hKey, Key+CHR$(0), 0, KeyType, Buffer, SIZE)
  ' ** Close the registry
  RegCloseKey hKey
  ' ** Exit if not successful or nothing there
  IF (Result <> %ERROR_SUCCESS) OR (SIZE = 0) THEN
    FUNCTION = DEFAULT
    EXIT FUNCTION
  END IF
  ' ** Return the data
  IF KeyType = %REG_SZ THEN
    FUNCTION = LEFT$(Buffer, SIZE - 1)
  ELSE
    FUNCTION = LEFT$(Buffer, SIZE)
  END IF
END FUNCTION

'-----------------------------------------------------------------------------
' GetSetting - Retrieves application entry in the Windows registry.
' Syntax:
'   Value = GetSetting(AppName, Section, Key)
' Where:
'  AppName = String expression containing the name of the application.
'  Section = String expression containing the name of the section where the
'            key setting is being saved.
'  Key     = String expression containing the name of the key setting being
'            saved.
'  ;Default = Default value if no registry value is found.
' Returns:
'  Value   = Value from the registry.  If the value is DWORD, use the CVL()
'            or CVDWD() functions to convert from string to numeric.    !!!!!!!!!!

FUNCTION PBMAIN () AS LONG
DIM  Value AS STRING '* 2048
DIM  ValueVse AS STRING

DIM  aa AS STRING
DIM  bb AS STRING
DIM  dd AS STRING

DIM  ii AS INTEGER
DIM  pigg AS INTEGER
DIM  kodBios AS INTEGER

'для WIN 98
aa = "HARDWARE\DESCRIPTION\System\CentralProcessor\0"
bb = "Enum\Root\*PNP0C01\0000"

Value = GetSetting(aa , "VendorIdentifier", "kjkj";)
 MSGBOX   Value
  ValueVse= ValueVse + TRIM$(Value)
Value = GetSetting(aa , "Identifier", "treg";)
 MSGBOX   Value
  ValueVse= ValueVse + TRIM$(Value)
Value = GetSetting(bb , "BIOSDate", "vbxcvb";)
 MSGBOX   Value
   ValueVse= ValueVse + TRIM$(Value)
Value = GetSetting(bb , "BIOSName", "sdsad";)
 MSGBOX   Value
   ValueVse= ValueVse + TRIM$(Value)
Value = GetSetting(bb , "BIOSVersion", "vbbbbc";)
 MSGBOX   Value
   ValueVse= ValueVse + TRIM$(Value)
Value = GetSetting(bb , "CPU", "konec98";)
 MSGBOX   Value
   ValueVse= ValueVse + TRIM$(Value)



'для WIN 2000 ---------------------------------------------
aa = "HARDWARE\DESCRIPTION\System\CentralProcessor\0"
dd = "HARDWARE\DESCRIPTION\System"

Value = GetSetting(aa, "ProcessorNameString", "privet";) 'для usera  !!!!!!!!!!
 MSGBOX   Value
   ValueVse= ValueVse + TRIM$(Value)
Value = GetSetting(aa, "Identifier", "privet";) 'для usera  !!!!!!!!!!
 MSGBOX   Value
   ValueVse= ValueVse + TRIM$(Value)
Value = GetSetting(aa, "VendorIdentifier", "sonvbn";) 'для usera  !!!!!!!!!!
 MSGBOX   Value
   ValueVse= ValueVse + TRIM$(Value)
Value = GetSetting(dd, "SystemBiosDate", "sbvnnhlen";) 'для usera  !!!!!!!!!!!
 MSGBOX   Value
   ValueVse= ValueVse + TRIM$(Value)
Value = GetSetting(dd, "SystemBiosVersion", "yutrh";) 'для usera  !!!!!!!!!!!
 MSGBOX   Value
   ValueVse= ValueVse + TRIM$(Value)
Value = GetSetting(dd, "VideoBiosDate", "fgjf";) 'для usera  !!!!!!!!!!!
 MSGBOX   Value
   ValueVse= ValueVse + TRIM$(Value)
Value = GetSetting(dd, "VideoBiosVersion", "fghytu";) 'для usera  !!!!!!!!!!!
 MSGBOX   Value
   ValueVse= ValueVse + TRIM$(Value)


MSGBOX   ValueVse
MSGBOX  STR$(LEN(ValueVse))


FOR ii=1 TO LEN(ValueVse)
  pigg = ASC(MID$(ValueVse, ii, 1))
 IF pigg > 26 AND pigg <= 128 THEN
 kodBios = kodBios + (pigg * 125.56 + pigg * 34.8 + pigg * 554/37) MOD 322.23
 END IF
NEXT ii


MSGBOX "     "+STR$(kodBios)+$CRLF+"Отправьте этот код"+$CRLF,,"<>"
END FUNCTION

Ответить

Номер ответа: 17
Автор ответа:
 JMP



Вопросов: 6
Ответов: 171
 Профиль | | #17 Добавлено: 11.08.06 16:53
JMP-помоему твой код выводит метку тома, и она меняется при каждом форматировании, это мне не подходит


 В моем коде я вызываю АПИ которое возвращает
Serial number, советую почитать MSDN.

Как его узучать???


Самая полная информация на оффициальном сайте.
В форуме можно найти практически ВСЕ.

Там же и куча бесплатных примеров для готовых решений.

Ответить

Номер ответа: 18
Автор ответа:
 JMP



Вопросов: 6
Ответов: 171
 Профиль | | #18 Добавлено: 11.08.06 23:20
  Блин есть здесь какой нибудь способ редактировать
свои предыдущие посты ?

JMP-помоему твой код выводит метку тома, и она меняется при каждом форматировании, это мне не подходит


  Все правильно <<сериал номер>> назначеный системой после формата но не метку (имя)

  Все таки не понял, зачем hardware S/N ?
Если кто то знает как поменять/перехватить этот номер,
с таким же успехом перехватят и hardware номер, по поводу
защиты по привязке к реестру. Вы же прекрасно знаете как легко установить хуки на жизнено важные АПИ, или просто просмотреть реестровским трэкером.

Ответить

Номер ответа: 19
Автор ответа:
 JMP



Вопросов: 6
Ответов: 171
 Профиль | | #19 Добавлено: 11.08.06 23:30
  По моему для защиты лучше всего применять аппараные плаги. Любой дешевый микроконтролер обеспечивает связь с СОМ портом (можно пойти дальше на рынке навалом готовых и красивых USB,COM,LPT плагов с поддержкой шифрования протокола обмена) зашить в него жизненоващные точки входов в функции а можно и целиком важные функции и востанавливать их с контролера, переодически меняя на правильные и неправильные значения, чтоб не дампнули образ памяти и получили готовенькое. Протокол обмена с котролером тоже лучше зашифровать.

  Такие системы как правило пытаються ломать только в случае если ну уж очень дорогой софт. А все эти програмные средства привязки только делают неодобства пользователю ИМХО так как даже армагидилу и ту ломают.

 

Ответить

Номер ответа: 20
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #20 Добавлено: 12.08.06 00:05
И вместе с ПО поставлять свой микроконтроллер? :)

Ответить

Номер ответа: 21
Автор ответа:
 JMP



Вопросов: 6
Ответов: 171
 Профиль | | #21 Добавлено: 12.08.06 01:13
И вместе с ПО поставлять свой микроконтроллер? :)


 А в чем проблема? его в корпус разьема запихать можно запросто (если разговор идет о единичных продажах), а вообще есть готовые цивильно оформленные плаги если разговор идет о массовой продаже ПО. при массовых закупках он будет обходиться в пределах 0.5-8 баксов в зависимости от наворотов.

Ответить

Номер ответа: 22
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #22 Добавлено: 12.08.06 01:56
ну прогу для перехвата сигнала с пентагоновского спутника может и имеет смысл поставлять со своей железкой, в принципе подобные проги и поставляются с железками. Но на рынке ПО таких прог нет, и слава богу..

Ответить

Номер ответа: 23
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #23
Добавлено: 12.08.06 16:26
Это он про шевеление извилинами :)

 Ну если механическая, то скорей всего ушами :)

Ответить

Номер ответа: 24
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #24
Добавлено: 12.08.06 20:51
Уши, напрямую законнекченные с извилинами? Жестко.

Ответить

Страница: 1 | 2 |

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



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