Страница: 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.
'  efault = 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
В моем коде я вызываю АПИ которое возвращает
Serial number, советую почитать MSDN.
Самая полная информация на оффициальном сайте.
В форуме можно найти практически ВСЕ.
Там же и куча бесплатных примеров для готовых решений.
Номер ответа: 18
Автор ответа:
JMP
Вопросов: 6
Ответов: 171
Профиль | | #18
Добавлено: 11.08.06 23:20
Блин есть здесь какой нибудь способ редактировать
свои предыдущие посты ?
Все правильно <<сериал номер>> назначеный системой после формата но не метку (имя)
Все таки не понял, зачем 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-сайт:
Профиль | | #23
Добавлено: 12.08.06 16:26
Ну если механическая, то скорей всего ушами
Номер ответа: 24
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #24
Добавлено: 12.08.06 20:51
Уши, напрямую законнекченные с извилинами? Жестко.