Jump to content
Sign in to follow this  
legend

hwid generator

Recommended Posts

legend

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

Share this post


Link to post
Share on other sites
legend

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)

Share this post


Link to post
Share on other sites
legend

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)

Share this post


Link to post
Share on other sites
legend

I guess it would only be the same, in case 2 computers had the same cpu and motherboard. sorry for writing with myself ^.^

Edited by legend

Share this post


Link to post
Share on other sites
guinness

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

Share this post


Link to post
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
Sign in to follow this  

×