Jump to content

hwid generator


Recommended Posts

Hi. I'm in the need of a hardware ID generator, that does not change, when the pc is reinstalled, drivegetserial, is not an option, since it is assigned by windows.

and the cpu id is not unique.

whats your thoughts about this, using cpu + bios version?

any better suggestions.

I got this for getting the cpu id, however it's not unique.

Func _GetHWID($sHWID)
$sHWID = 'ExampleID'
Local $sData = $sHWID & @CRLF
Local $aArray = StringSplit($sData, @CRLF)
If @error Then
Return SetError(1, 0, 0)
EndIf
Return _ArraySearch($aArray, $sHWID) > -1
EndFunc ;==>_GetHWID

Func _HWID()
$cpu = GetProcessorId()
$reversehwid = _StringReverse($cpu)

Return $reversehwid
EndFunc ;==>_HWID

Func GetProcessorId()
$objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Processor", "WQL", 0x10 + 0x20)
If IsObj($colItems) Then
For $objItem In $colItems
Local $PROC_ID = $objItem.ProcessorId
Next
Return $PROC_ID
Else
Return 0
EndIf
EndFunc ;==>GetProcessorId

maybe someone knows how I can get the bios version/id, or got better suggestion for a hardware id generator

Link to comment
Share on other sites

I this the cpu method, would be good combined with:

Dim $bin = _BaseBoard_Properties()
$board = $bin

Func _BaseBoard_Properties()
Local $a_Text = ''
Dim $Obj_WMIService = ObjGet('winmgmts:\\' & @ComputerName & '\root\cimv2');
If (IsObj($Obj_WMIService)) And (Not @error) Then
Dim $Col_Items = $Obj_WMIService.ExecQuery('Select * from Win32_BaseBoard')

Local $Obj_Item
For $Obj_Item In $Col_Items
$a_Text = $Obj_Item.Product
Next

Return String($a_Text)
Else
Return 0
EndIf
EndFunc ;==>_BaseBoard_Properties


MsgBox(64, 'Info', $bin)
Link to comment
Share on other sites

This is what I ended up with:

#include 
#include 

Dim $bin = _BaseBoard_Properties()
$board = $bin

Func _BaseBoard_Properties()
Local $a_Text = ''
Dim $Obj_WMIService = ObjGet('winmgmts:\\' & @ComputerName & '\root\cimv2');
If (IsObj($Obj_WMIService)) And (Not @error) Then
Dim $Col_Items = $Obj_WMIService.ExecQuery('Select * from Win32_BaseBoard')

Local $Obj_Item
For $Obj_Item In $Col_Items
$a_Text = $Obj_Item.Product
Next

Return String($a_Text)
Else
Return 0
EndIf
EndFunc ;==>_BaseBoard_Properties


Func _GetHWID($sHWID)
$sHWID = 'ExampleID'
Local $sData = $sHWID & @CRLF
Local $aArray = StringSplit($sData, @CRLF)
If @error Then
Return SetError(1, 0, 0)
EndIf
Return _ArraySearch($aArray, $sHWID) > -1
EndFunc ;==>_GetHWID

Func _HWID()
$cpu = GetProcessorId()
Return $cpu
EndFunc ;==>_HWID

Func GetProcessorId()
$objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Processor", "WQL", 0x10 + 0x20)
If IsObj($colItems) Then
For $objItem In $colItems
Local $PROC_ID = $objItem.ProcessorId
Next
Return $PROC_ID
Else
Return 0
EndIf
EndFunc ;==>GetProcessorId

$cpu = _HWID()
$motherboard = _BaseBoard_Properties()

$info = $cpu & $motherboard
$reverse = _StringReverse($info)
$encrypt = _StringEncrypt(1, $reverse, "123xxx321")
MsgBox("","",$encrypt)
Link to comment
Share on other sites

There is a different approach I came up with. You can find it in my signature and doesn't rely on WMI.

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...