HardwareID retrieved from EP_RegHardwareID

Post here any topics that related to Enigma Protector, its functionality, your misunderstanding, offers to improvements etc etc etc
Post Reply
sharky1001
Posts: 6
Joined: Thu Oct 06, 2022 3:44 pm

HardwareID retrieved from EP_RegHardwareID

Post by sharky1001 »

Hello,

I'm planning on using the EP_RegHardwareID function to retrieve a Unique identifier of every PC that is connecting to the online game (MMORPG) I am developing.

This identifier will be used for PC-based banning, (HWID BAN) and to limit the amount of characters that can be logged in. Basically, the client sends hwid data to server and checks are made server side.

My Questions:

How this HWID is genereated? Like motherboard ID, disk serial, win username etc. what are included? Of course I am not expecting a detailed answer but what I want to learn is, is re-installing windows or changing any PC components will change this HWID?

I am currently using identifiers such as MAC address, Disk Serial etc. These can be spoofed both by hooking the WinAPI and changing these values entirely. Will EP_RegHardwareID be safer in this case?

Let's say 10,000 clients are concurrently connected to the game, all around the world. Will there be any HWID conflicts/overlaps? Like is there a possibility of completely 2 random person (PC) having the same HWID?

Thank you in advance.
Enigma
Site Admin
Posts: 2939
Joined: Wed Aug 20, 2008 2:24 pm

Re: HardwareID retrieved from EP_RegHardwareID

Post by Enigma »

Hi, good questions so far. Let me try to explain that.

1. Hardware ID that Enigma generates can be based on multiple sources. These sources are listed at Registration Features - Hardware Lock panel in Enigma. There you can choose multiple parameters for Hardware ID identiifcation.
2. Less selected parameters for Hardware ID cause less unique of it. In order to make hardware id more unique, more parameters should be selected.
3. Some of parameters identify hardware parts of computer, others - software. Hardware parts can't be changed even during re-installation of Windows, others can be easy changed at a time, for example, Computer Name. Can't be changed Motherboard, HDD Serial, CPU.
4. Can be hardware id changed by end user? As specified in #3, some of parameters can be still changed, others - no.
5. Is that possible to manipulate Windows API to change hardware id - for some parameters it is possible, but it is also a deal of protection to fight with these changes and there you can rely on Enigma Protector.
6. Can there be duplicated hardware ids - yes, these also are possible, in theory. I can't estimate how much duplicates you may have, but each hardware id parameter has uniqueness of 65535 cases.
sharky1001
Posts: 6
Joined: Thu Oct 06, 2022 3:44 pm

Re: HardwareID retrieved from EP_RegHardwareID

Post by sharky1001 »

Thanks alot for the detailed answer, that convinced me to use this function :)

If each parameter has 65535 cases, does that mean if I enable 5 parameters, the total uniquness becomes 65535^5 or 65535*5?

Another unrelated question: using the VirtualBox features, if I embed a .dll file to an .exe file, what is the possibility of extracting that dll file from the exe? Is the file stored some accessible temp folder? Can a basic/mediocre user can achieve this?

I just purchased my license 2 days ago and loving it so far, thanks again.

EDIT: Is it possible to retrieve these values seperately? For example, as far as I can see, Hard Disk Serial Number is the safest among these parameters. I'd like to get this value seperately. Maybe with an arg passed into EP_RegHardwareID like

EP_RegHardwareID(-1) = All combined
EP_RegHardwareID(0) = System volume serial number
EP_RegHardwareID(6) = Hard Disk serial number

What I am aiming with that is in case of overlapping, since I'm checking many parameters seperately, some overlaps may be overlooked.
Enigma
Site Admin
Posts: 2939
Joined: Wed Aug 20, 2008 2:24 pm

Re: HardwareID retrieved from EP_RegHardwareID

Post by Enigma »

sharky1001 wrote: Fri Oct 07, 2022 5:13 pm If each parameter has 65535 cases, does that mean if I enable 5 parameters, the total uniquness becomes 65535^5 or 65535*5?
This means 65535^5
sharky1001 wrote: Fri Oct 07, 2022 5:13 pm Another unrelated question: using the VirtualBox features, if I embed a .dll file to an .exe file, what is the possibility of extracting that dll file from the exe? Is the file stored some accessible temp folder? Can a basic/mediocre user can achieve this?
Virtual files are never extracted to the disk (unless the write option is specified for them in properties). So the file is hidden from usual user.
sharky1001 wrote: Fri Oct 07, 2022 5:13 pm I just purchased my license 2 days ago and loving it so far, thanks again.
Thank you very much, you are welcome :)
sharky1001 wrote: Fri Oct 07, 2022 5:13 pm EDIT: Is it possible to retrieve these values seperately? For example, as far as I can see, Hard Disk Serial Number is the safest among these parameters. I'd like to get this value seperately. Maybe with an arg passed into EP_RegHardwareID like
Unfortunately, currently this is impossible. We have an issue in our todo list to make hardware id more expandable, i.e. with ability to get separate identifiers for each computer part, and also make it more uniqueness, but this is still in todo..
Post Reply