No announcement yet.

getting BIOS record details

  • Filter
  • Time
  • Show
Clear All
new posts

  • getting BIOS record details


    I recall sometime ago (early 90's) there was a trend amongst TB and TP programmers
    to find a good method of securing programmes.

    One was to pull in the ID# from the BIOS. I have looked around and
    cannot find a routine to pull in the copyright notices and serial numbers.
    Does anyone have an idea.

    The underlying philosophy is to get the serial number, use it to
    create a user specified password which must match the BIOS at all times
    to prevent copying to another machine.


  • #2

    It's easy to read all of the BIOS under DOS. Use the PEEK function to read
    in as much as you want from F000:0000 to FFFF:FFFF. Unfortunately, different
    BIOS vendors put their ID strings in different places in the BIOS, so code
    that gets the ID string on one computer may not work on another. You may
    want to encrypt your password based on the whole 64kb of BIOS.

    You should be aware that BIOS manufacturers do not use serial numbers to
    discriminate between identical chips (i.e., they don't encode them as they come
    off the assembly line as #1, #2, #3, etc.) So if you buy two identical
    motherboards at the same time, odds are the BIOS will be identical, and a
    single password encoded as above will work on both machines. To protect against
    that, many programmers use the volume label on the hard drive as a unique ID.
    Do a search in the forum archives for "volume label".



    • #3
      If you play much with QEMM and do a lot of work with it, I think you
      will find out that not all of the F000-FFFF range is used for BIOS
      operations at all times.

      The use of the MANIFEST program for analysis of things in memory
      which ships with QEMM, to my memory will let you see that often,
      memory managers make use of chunks of it for other things! Not
      all of it is always taken by the BIOS. Some of it can be used in
      other ways for other purposes. This means that you can't depend
      on this technique of using it all to secure a program based upon
      what is in it, to my experience.

      A particular vendor who used to do this with a program I paid to
      use, had to issue me a new version of the code, simply because
      this fact fouled up his protection scheme. It's been some ten
      years ago, but even today, I still have to optimize thins with
      QEMM and see these changing areas in memory.

      I think I recall that other memory managers do this stuff too.
      Maybe I'm wrong here, others can comment about it.

      Mike Luther
      [email protected]
      Mike Luther
      [email protected]


      • #4
        I hate copy protection schemes but if you must have one, using the bios is not a good idea.

        Flash bios updates would mess up your system, also given the age of DOS based systems, motherboard changes are not uncommon.

        To tie a copy to a unique serial number, it makes sense to either use a dongle or take the serial number of the hard disk.

        There are two in fact - the hardware number which can only be obtained from DOS not from withn Windows, and the disk partition id number - generated at time of formatting. The latter can be read using an INT 13h callfrom the boot sector.

        The PC Guru, Austin Tx
        Working on data recovery tools.


        • #5
          the disk partition id number - generated at time of formatting.
          Not much point in relying on this. It would take me (and most other knowledgeable DOS programmers) about 5 minutes to write a program to update a Volume Serial Number to what ever I wanted.

          Better to use a system similar to what Micro$oft came up with, i.e. retrieve five "unique" identifiers from various components/locations in the PC and only fail to work if three or more have changed.

          If you try to make something idiot-proof, someone will invent a better idiot.


          • #6
            Microsoft often uses the ethernet id number, if available as a way of uniquely identifying a system. It made waves about a year ago when it was discovered that Word and Excel embedded this number in every document generated. It was claimed to be an invasion of privacy. Anyway, I was told they tracked down the Melissa virus creator through this number.

            They claim that the ethernet numbers are all unique, but I cannot be totally sure. We use it in our Computer Science department at BYU to tell the DCHP server what name and ip number to assign whenever a computer is booted up.

            I know that sometimes one must protect his property, but I generally find that copy protection causes more pain than gain, and often is cracked, as any protection somehow makes crackers attracted to it.




            • #7
              Ethernet (MAC) address numbers are definately not unique unfortunately, and I've heard a few stories of wierd problems on networks when a new machine was added and eventually found to have an identical MAC address to an existing PC on the network. Rare, but does happen.

              MS came up with the "GUID" (globally unique ID) which (statistically) is guaranteed to be almost 100% unique... from memory, a GUID is more than 128 bits long. There is no DOS code around to generate a GUID number, but there has been PB code to do so for PB/CC and PB/DLL.

              PowerBASIC Support
              mailto:[email protected][email protected]</A>
              mailto:[email protected]