Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. How to make the application only work on 64 bit systems.
Forum Updated to NodeBB v4.3 + New Features

How to make the application only work on 64 bit systems.

Scheduled Pinned Locked Moved Unsolved General and Desktop
14 Posts 7 Posters 1.1k Views 2 Watching
  • 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.
  • B Offline
    B Offline
    Blackzero
    wrote on last edited by
    #1

    how do I make my application work only for 64 bit systems and cannot work on 32 bit windows systems, I use the MinGW64 setting to create my application.

    S 1 Reply Last reply
    0
    • B Blackzero

      how do I make my application work only for 64 bit systems and cannot work on 32 bit windows systems, I use the MinGW64 setting to create my application.

      S Offline
      S Offline
      SamiV123
      wrote on last edited by
      #2

      @Blackzero

      what do you mean exactly ? AFAIK 32bit Windows don't support 64bit apps anyway. Compatibility only goes the other way 64bit systems can run apps for 32bit architecture.

      B 1 Reply Last reply
      3
      • S SamiV123

        @Blackzero

        what do you mean exactly ? AFAIK 32bit Windows don't support 64bit apps anyway. Compatibility only goes the other way 64bit systems can run apps for 32bit architecture.

        B Offline
        B Offline
        Blackzero
        wrote on last edited by
        #3

        @SamiV123 I'll explain a little bit, I just want my application to only work for 64 bit windows systems and not work on 32 bit windows systems, I hope you understand what I mean.

        JonBJ 1 Reply Last reply
        0
        • B Blackzero

          @SamiV123 I'll explain a little bit, I just want my application to only work for 64 bit windows systems and not work on 32 bit windows systems, I hope you understand what I mean.

          JonBJ Offline
          JonBJ Offline
          JonB
          wrote on last edited by
          #4

          @Blackzero
          No, we don't know what you mean any better, you are just repeating your question. And did you read @SamiV123's answer anyway, which tells you?

          B 1 Reply Last reply
          1
          • JonBJ JonB

            @Blackzero
            No, we don't know what you mean any better, you are just repeating your question. And did you read @SamiV123's answer anyway, which tells you?

            B Offline
            B Offline
            Blackzero
            wrote on last edited by
            #5

            @JonB I see 64 bit applications are very difficult to crack or unpack, I want to make it like that, make an application based on 64 bits so that it cannot or make it difficult for crackers to break it, I am studying what exactly is 64 bits whether the application itself only works on a 64 bit system or how, Why do I want to make a system like that because I want to make my own keygen license and use the 64 bit system to make it difficult for crackers, I hope you understand what I mean, because I have only been learning cpp for a few months and understand cpp code but do not fully understand the configuration of software made from cpp and qt, and before that in python.

            JonBJ Christian EhrlicherC Pl45m4P 3 Replies Last reply
            0
            • B Blackzero

              @JonB I see 64 bit applications are very difficult to crack or unpack, I want to make it like that, make an application based on 64 bits so that it cannot or make it difficult for crackers to break it, I am studying what exactly is 64 bits whether the application itself only works on a 64 bit system or how, Why do I want to make a system like that because I want to make my own keygen license and use the 64 bit system to make it difficult for crackers, I hope you understand what I mean, because I have only been learning cpp for a few months and understand cpp code but do not fully understand the configuration of software made from cpp and qt, and before that in python.

              JonBJ Offline
              JonBJ Offline
              JonB
              wrote on last edited by
              #6

              @Blackzero You have a 64-bit compiler, you build for 64-bit, done.

              B 1 Reply Last reply
              2
              • B Blackzero

                @JonB I see 64 bit applications are very difficult to crack or unpack, I want to make it like that, make an application based on 64 bits so that it cannot or make it difficult for crackers to break it, I am studying what exactly is 64 bits whether the application itself only works on a 64 bit system or how, Why do I want to make a system like that because I want to make my own keygen license and use the 64 bit system to make it difficult for crackers, I hope you understand what I mean, because I have only been learning cpp for a few months and understand cpp code but do not fully understand the configuration of software made from cpp and qt, and before that in python.

                Christian EhrlicherC Offline
                Christian EhrlicherC Offline
                Christian Ehrlicher
                Lifetime Qt Champion
                wrote on last edited by Christian Ehrlicher
                #7

                @Blackzero said in How to make the application only work on 64 bit systems.:

                64 bit applications are very difficult to crack or unpack

                Lol

                Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                Visit the Qt Academy at https://academy.qt.io/catalog

                1 Reply Last reply
                3
                • JonBJ JonB

                  @Blackzero You have a 64-bit compiler, you build for 64-bit, done.

                  B Offline
                  B Offline
                  Blackzero
                  wrote on last edited by
                  #8

                  @JonB is that it? just using minGw64 or msvc64 is enough?

                  Christian EhrlicherC 1 Reply Last reply
                  0
                  • B Blackzero

                    @JonB is that it? just using minGw64 or msvc64 is enough?

                    Christian EhrlicherC Offline
                    Christian EhrlicherC Offline
                    Christian Ehrlicher
                    Lifetime Qt Champion
                    wrote on last edited by
                    #9

                    Download the pre-compiled Qt version for MinGW with the Qt online installer.

                    Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
                    Visit the Qt Academy at https://academy.qt.io/catalog

                    1 Reply Last reply
                    1
                    • S Offline
                      S Offline
                      SimonSchroeder
                      wrote on last edited by
                      #10

                      64 bit might have a few more instructions than 32 bit (which means crackers need to know a few more instructions), but this is deterring no one from cracking your software.

                      Usually, somewhere in your software is code to check if the license key is valid (some sort of if statement). The easiest way to crack software is to just replace this one single instruction in the executable.

                      One way against that is to sign your software and when started check the signature again to check if the executable has been tampered with (here, you should read up on "reproducible builds"). However, this is also just another if statement inside your code and thus can also be cracked in the same way as the key validation.

                      This means that you need to encrypt your software entirely and decrypt it when it needs to be run. Even then, at some point the software sits inside your memory and smart people will still figure out how to tamper with the RAM in that case (there is some technology inside x86 chips called ASLR which makes it harder). Maybe some form of just-in-time decryption (similar to JIT compilers) might help here. And: Never leak your encryption key! Make sure it never stays inside memory and is not visible inside your executable! If people have your key, they can decrypt your software.

                      I'm just saying: If you don't want your software to be cracked, you have to be smarter than a bunch of crackers together. What you want to do is so complicated that I bet nobody in this forum (myself included) knows how to write such strong protection against cracking. And 64 bit has nothing to do with this. If you really want this kind of protection you would have to buy some commercial product that has all this figured out for you.

                      JoeCFDJ 1 Reply Last reply
                      6
                      • B Blackzero

                        @JonB I see 64 bit applications are very difficult to crack or unpack, I want to make it like that, make an application based on 64 bits so that it cannot or make it difficult for crackers to break it, I am studying what exactly is 64 bits whether the application itself only works on a 64 bit system or how, Why do I want to make a system like that because I want to make my own keygen license and use the 64 bit system to make it difficult for crackers, I hope you understand what I mean, because I have only been learning cpp for a few months and understand cpp code but do not fully understand the configuration of software made from cpp and qt, and before that in python.

                        Pl45m4P Online
                        Pl45m4P Online
                        Pl45m4
                        wrote on last edited by Pl45m4
                        #11

                        @Blackzero said in How to make the application only work on 64 bit systems.:

                        I am studying what exactly is 64 bits

                        Side note:
                        If your assumption that 64bit apps are more secure comes from the fact that more bits in an encryption process guarantee higher security (which is actually the case), then this is simply wrong.
                        You can not compare the x86/x64 instruction set with 128b, 256b or whatever length of security key encryption bits and therefore think "my x64 app is safer" (at whatever level).


                        If debugging is the process of removing software bugs, then programming must be the process of putting them in.

                        ~E. W. Dijkstra

                        1 Reply Last reply
                        0
                        • S SimonSchroeder

                          64 bit might have a few more instructions than 32 bit (which means crackers need to know a few more instructions), but this is deterring no one from cracking your software.

                          Usually, somewhere in your software is code to check if the license key is valid (some sort of if statement). The easiest way to crack software is to just replace this one single instruction in the executable.

                          One way against that is to sign your software and when started check the signature again to check if the executable has been tampered with (here, you should read up on "reproducible builds"). However, this is also just another if statement inside your code and thus can also be cracked in the same way as the key validation.

                          This means that you need to encrypt your software entirely and decrypt it when it needs to be run. Even then, at some point the software sits inside your memory and smart people will still figure out how to tamper with the RAM in that case (there is some technology inside x86 chips called ASLR which makes it harder). Maybe some form of just-in-time decryption (similar to JIT compilers) might help here. And: Never leak your encryption key! Make sure it never stays inside memory and is not visible inside your executable! If people have your key, they can decrypt your software.

                          I'm just saying: If you don't want your software to be cracked, you have to be smarter than a bunch of crackers together. What you want to do is so complicated that I bet nobody in this forum (myself included) knows how to write such strong protection against cracking. And 64 bit has nothing to do with this. If you really want this kind of protection you would have to buy some commercial product that has all this figured out for you.

                          JoeCFDJ Offline
                          JoeCFDJ Offline
                          JoeCFD
                          wrote on last edited by
                          #12

                          @SimonSchroeder Very good post. But how to do the following?
                          Make sure it never stays inside memory and is not visible inside your executable! If people have your key, they can decrypt your software.

                          S 1 Reply Last reply
                          0
                          • JoeCFDJ JoeCFD

                            @SimonSchroeder Very good post. But how to do the following?
                            Make sure it never stays inside memory and is not visible inside your executable! If people have your key, they can decrypt your software.

                            S Offline
                            S Offline
                            SimonSchroeder
                            wrote on last edited by
                            #13

                            @JoeCFD I'm no security expert. Because this is so complicated, I suggested in the previous post to just buy a commercial product that has this figured out. The first part I know how to do (in theory): The key should never stay in memory means you need to overwrite the physical bytes in memory right after you have used the key. With the other part I am not sure how to do this exactly. More specifically, I should have written not to expose the key as "plain text" (or possibly rather "plain bytes") in your executable. I remember something like this in the context of the Blu Ray encryption keys. Those were stored plainly in some commercial player software which meant people could steal them for open source software as well. I don't know how to do this correctly. With my limited understanding of security the only thing I could do is to obfuscate all of this as much as possible. But, obfuscation is not security.

                            JoeCFDJ 1 Reply Last reply
                            2
                            • S SimonSchroeder

                              @JoeCFD I'm no security expert. Because this is so complicated, I suggested in the previous post to just buy a commercial product that has this figured out. The first part I know how to do (in theory): The key should never stay in memory means you need to overwrite the physical bytes in memory right after you have used the key. With the other part I am not sure how to do this exactly. More specifically, I should have written not to expose the key as "plain text" (or possibly rather "plain bytes") in your executable. I remember something like this in the context of the Blu Ray encryption keys. Those were stored plainly in some commercial player software which meant people could steal them for open source software as well. I don't know how to do this correctly. With my limited understanding of security the only thing I could do is to obfuscate all of this as much as possible. But, obfuscation is not security.

                              JoeCFDJ Offline
                              JoeCFDJ Offline
                              JoeCFD
                              wrote on last edited by
                              #14

                              @SimonSchroeder Thank you for your explanation. It is tricky to do this.

                              1 Reply Last reply
                              0

                              • Login

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Categories
                              • Recent
                              • Tags
                              • Popular
                              • Users
                              • Groups
                              • Search
                              • Get Qt Extensions
                              • Unsolved