HISE Logo Forum
    • Categories
    • Register
    • Login

    How to get CPU serial number using HISE?

    Scheduled Pinned Locked Moved General Questions
    30 Posts 6 Posters 1.4k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Dan KorneffD
      Dan Korneff @Christoph Hart
      last edited by

      @Christoph-Hart is it possible to have access to more parameters on the system ID generation?
      I'm getting system ID changes when people perform OS updates, but there seems to be ways to only use the CPU/Motherboard to generate the ID instead

      β—† getUniqueDeviceID()
      static String SystemStats::getUniqueDeviceID	(		)	
      static
      This method returns a machine unique ID unaffected by storage or peripheral changes.
      
      This ID will be invalidated by changes to the motherboard and CPU on non-mobile platforms, or performing a system restore on an Android device.
      
      There are some extra caveats on iOS: The returned ID is unique to the vendor part of your 'Bundle Identifier' and is stable for all associated apps. The key is invalidated once all associated apps are uninstalled. This function can return an empty string under certain conditions, for example, If the device has not been unlocked since a restart.
      

      Dan Korneff - Producer / Mixer / Audio Nerd

      ustkU 1 Reply Last reply Reply Quote 3
      • CatABCC
        CatABC @Christoph Hart
        last edited by

        @Christoph-Hart Will the system ID change after reinstalling the system using this method? Is there a way to bind it to the hardware ID? In this way, even if the system is reinstalled, the system ID obtained will be the same

        //I am a new student at HISE._
        //Windows11 & MacOS Ventura 13.6.7_

        1 Reply Last reply Reply Quote 0
        • ustkU
          ustk @Dan Korneff
          last edited by ustk

          @Dan-Korneff @CatABC set JUCE_USE_BETTER_MACHINE_IDS=1 so it is more OS update resilient

          Can't help pressing F5 in the forum...

          Christoph HartC Oli UllmannO 2 Replies Last reply Reply Quote 2
          • Christoph HartC
            Christoph Hart @ustk
            last edited by

            What @ustk said, the default machine ID generation is a bit less robust and will change with major OS updates, but with this preprocessor it will be a little bit more stable.

            Your copy protection system must cope with the scenario that computer IDs can change though.

            Dan KorneffD 1 Reply Last reply Reply Quote 1
            • Dan KorneffD
              Dan Korneff @Christoph Hart
              last edited by

              @Christoph-Hart said in How to get CPU serial number using HISE?:

              Your copy protection system must cope with the scenario that computer IDs can change though.

              My protection system and I are in therapy. Hopefully we can cope soon. 😲

              Dan Korneff - Producer / Mixer / Audio Nerd

              1 Reply Last reply Reply Quote 1
              • Oli UllmannO
                Oli Ullmann @ustk
                last edited by

                @ustk
                Do I have to use this when I compile HISE, or do I use it when I compile the plug-in?

                Thank you
                Oli

                ustkU 1 Reply Last reply Reply Quote 0
                • ustkU
                  ustk @Oli Ullmann
                  last edited by ustk

                  @Oli-Ullmann Both, otherwise the ID created will not be the same during test and production.
                  Once you use this flag it's forever for compatibility reasons
                  It should be set to true by default imho, but I think it's for breaking old project compatibility that it's false... @Christoph-Hart ?

                  Can't help pressing F5 in the forum...

                  Oli UllmannO 1 Reply Last reply Reply Quote 0
                  • Oli UllmannO
                    Oli Ullmann @ustk
                    last edited by

                    @ustk
                    All right, that makes sense. Thanks for the info! :-)

                    1 Reply Last reply Reply Quote 0
                    • Dan KorneffD
                      Dan Korneff
                      last edited by

                      I'm not sure what I'm doing wrong here, but HISE and my compiled plugin can't agree on a "better" machine ID.

                      I've compiled HISE like this:
                      Screenshot 2025-01-15 120109.png Screenshot 2025-01-15 120126.png

                      and added this to my project:
                      Screenshot 2025-01-15 115949.png

                      When I launch the plugin, it detects that the ID is different and I update my license file. Then when I load HISE, it still thinks that the ID is different. What am I doing wrong?

                      Dan Korneff - Producer / Mixer / Audio Nerd

                      ustkU 1 Reply Last reply Reply Quote 0
                      • ustkU
                        ustk @Dan Korneff
                        last edited by ustk

                        @Dan-Korneff Have you tried to set it in the 'Modules` tab instead? That's what I do because I always think some pre-processor aren't working, that might be the case for this one... 🀷

                        Can't help pressing F5 in the forum...

                        Dan KorneffD 1 Reply Last reply Reply Quote 0
                        • Dan KorneffD
                          Dan Korneff @ustk
                          last edited by

                          @ustk I've changed the preprocessor in the module like this:

                          Screenshot 2025-01-15 122032.png

                          Still the same result 😞

                          Dan Korneff - Producer / Mixer / Audio Nerd

                          1 Reply Last reply Reply Quote 0
                          • Dan KorneffD
                            Dan Korneff
                            last edited by

                            It appears to be something with the exported plugin. The machine IDs generated with JUCE_USE_BETTER_MACHINE_IDS=1 are the same as if it's set to false. At least I know where to start looking

                            Dan Korneff - Producer / Mixer / Audio Nerd

                            1 Reply Last reply Reply Quote 1
                            • Dan KorneffD
                              Dan Korneff
                              last edited by

                              Ok... I've obviously have not had enough coffee today. I'd probably have to export the plugin after I rebuild HISE for something to take effect. 😲 😲 😲
                              Ignore my stupidity for now.

                              Dan Korneff - Producer / Mixer / Audio Nerd

                              ustkU 1 Reply Last reply Reply Quote 0
                              • ustkU
                                ustk @Dan Korneff
                                last edited by

                                @Dan-Korneff yeah it can be troublesome to be sure both are working (hise and plugin)

                                Can't help pressing F5 in the forum...

                                1 Reply Last reply Reply Quote 0
                                • Dan KorneffD
                                  Dan Korneff
                                  last edited by

                                  I'm using JUCE_USE_BETTER_MACHINE_IDS=1 in my new project. It's mostly working well, but I have a couple Windows 11 users that have to reactivate their license every few reboots. Is there a way to list the devices that are used to create this number so I can debug what is changing on their system?

                                  Dan Korneff - Producer / Mixer / Audio Nerd

                                  ustkU 1 Reply Last reply Reply Quote 1
                                  • ustkU
                                    ustk @Dan Korneff
                                    last edited by

                                    @Dan-Korneff Ouch! As it doesn't respect what the name says, that is very unfortunate!

                                    Can't help pressing F5 in the forum...

                                    1 Reply Last reply Reply Quote 0
                                    • Dan KorneffD
                                      Dan Korneff
                                      last edited by

                                      @Christoph-Hart I think this is the issue:
                                      https://github.com/juce-framework/JUCE/commit/120f9266dc881c81371109c69b37a0a246accdeb

                                      Is this fix already implemented?

                                      Dan Korneff - Producer / Mixer / Audio Nerd

                                      Christoph HartC 1 Reply Last reply Reply Quote 0
                                      • Christoph HartC
                                        Christoph Hart @Dan Korneff
                                        last edited by

                                        @Dan-Korneff welp itβ€˜s time for a JUCE_EVEN_BETTER_MACHINE_IDS macro…

                                        Dan KorneffD ustkU 3 Replies Last reply Reply Quote 3
                                        • A
                                          aaronventure
                                          last edited by aaronventure

                                          You can fetch the MachineGuid that Windows creates on install using powershell. Here's how you do it in HISE:

                                          const BackgroundTask = {};
                                          
                                          BackgroundTask.getMachineGuid = Engine.createBackgroundTask("GetMachineGUID");
                                          inline function getMachineGuid()
                                          {
                                          	local command = "reg";
                                          	local args = 
                                          	[
                                          	    "query",
                                          	    "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography",
                                          	    "/v", 
                                          	    "MachineGuid"
                                          	];
                                          	
                                          	local logFunction = function(thread, isFinished, data)
                                          	{
                                          		if (!isFinished)
                                          		{
                                          			var id = data.substring(data.indexOf("REG_SZ")+6, data.length).trim();
                                          			
                                          			Console.print(id);
                                          		}
                                          
                                          	};
                                          
                                          	
                                          	BackgroundTask.getMachineGuid.runProcess(command, args, logFunction);
                                          }
                                          
                                          getMachineGuid();
                                          

                                          A bit silly function naming since it won't return anything, but you get the gist.

                                          Dan KorneffD 1 Reply Last reply Reply Quote 2
                                          • Dan KorneffD
                                            Dan Korneff @aaronventure
                                            last edited by

                                            @aaronventure I've created an app that displays the system ID with the Engine.getSystemID() function. I was looking for something that displayed the items in the system that were used to create the numbers.
                                            Ultimately, it looks like there's a fix available from JUCE. Looking forward to the update πŸ˜€

                                            Dan Korneff - Producer / Mixer / Audio Nerd

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            13

                                            Online

                                            1.7k

                                            Users

                                            11.8k

                                            Topics

                                            102.8k

                                            Posts