Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

READ HARD DISK SERIAL NUMBER

Posted on 2000-05-16
13
Medium Priority
?
28,785 Views
Last Modified: 2011-08-18
HOW TO READ REAL SERIAL NUMBER OF HARD DRIVE... IN DOS OR WINDOWS ?

NOT VIRTUAL SERILA NUMBER... REAL SERILA NUMBER OF HARD DRIVE
...
WHAT IS VIRTUAL SERILA NUMBER = ANY SERIAL NUMBER THAT IS ASSING TO HARD DRIVE WHEN USER FORMAT THEM .... EVERYTIME WHEN YOU USE FORMAT SERIAL NUMBER IS DIFFERENT....

HOW TO READ REAL SERIAL NUMBER NOT VIRTUAL SERIAL NUMBER?
0
Comment
Question by:BOKINET
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 4
  • 4
13 Comments
 
LVL 6

Accepted Solution

by:
My name is Mud earned 150 total points
ID: 2816314
Program GetIDEHDDInfo;
USES
  CRT,DOS;
Type
  ArraySTR = Array[0..255] Of Byte;
Const
  WhichDrv: Array[1..2] Of Word = ($A0,$B0);
Var
  NumDrv: Word Absolute $0040:$0075; { BIOS info on how many HDD you have }
  Regs: Registers;
  Data: ArraySTR;
  DataOff: Byte;
  Loop: Integer;

Function GetString(InData: ArraySTR; OffStart,OffEnd: Byte): String;
Var
  TempSTR: String;
  I: Byte;
Begin
  TempSTR:='';
  For I:=OffStart To OffEnd Do
    TempSTR:=TempSTR+Char(InData[I]);
  GetString:=TempSTR;
End;

Begin
  ClrScr;
  WriteLn('You have ',NumDrv,' Hard Disk(s).');
  For Loop:=1 to NumDrv Do
    Begin
      WriteLn('  Info on Hard Disk ',NumDrv,' is:');
      While Port[$01F7] <> $50 Do; { Wait For controller not busy }
      Port[$01F6]:=WhichDrv[Loop]; { Get first/second drive }
      Port[$01F7]:=$EC;            { Get drive info data }
      While Port[$01F7] <> $58 Do; { Wait for data ready }
      For DataOff:=0 To 255 Do     { Read "sector" }
        Data[DataOff]:=Port[$01F0];
      WriteLn('    Model Number: ',GetString(Data,27,46));
      WriteLn('    Serial Number: ',GetString(Data,10,19));
    End;
End.
0
 
LVL 6

Expert Comment

by:My name is Mud
ID: 2828364
Hey!!! how 'bout some feedback??? did it work for you??? HEY!!! Is any body home???
0
 
LVL 3

Expert Comment

by:vikiing
ID: 2833025
>>EVERYTIME WHEN YOU USE FORMAT SERIAL NUMBER IS DIFFERENT....

FORMAT program uses current time to calculate disk number; that's why each time you use FORMAT, srial number differs. BUT both you and your friend, if format a disk simultaneously could (in theory) get the same serial number.

Even you can try this: create a .BAT file and put these commands on it:

TIME <any time you want>
FORMAT <drive>

Execute the BAT file several times, and time will be the same each time you run it.

But I don't know why I think I'm tallking to a wall... :~(
0
Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 

Author Comment

by:BOKINET
ID: 2833051
i made any program in turbo pascal 6.0 that read all information from bios including hard disk serial number (real not from boot sector ) and hard disc... but i need to make the same application that will do the same thing in windows because this pascal program can only work in msdos ... and i am writeing any windows application
0
 

Author Comment

by:BOKINET
ID: 2833062
i made any program in turbo pascal 6.0 that read all information from bios including hard disk serial number (real not from boot sector ) and hard disc type... but i need to make the same application that will do the same thing in windows because this pascal program can only work in msdos ... and i am writing any windows application
0
 
LVL 3

Expert Comment

by:vikiing
ID: 2834956
>>that read all information from bios including hard disk serial number

Disk serial number does NOT come from BIOS.


>>this pascal program can only work in msdos

If it runs in DOS, it can run perfectly under a DOS window from Windoze (in fact, I have Pascal and Basic (both compilers from Borland) programs which perform the same job. And work.
0
 

Author Comment

by:BOKINET
ID: 2835349
not exacli from bios - bios read from hard drive...

0
 
LVL 3

Expert Comment

by:vikiing
ID: 2835461
>>bios read from hard drive

hehehehe... BIOS reads from (and writes to !!) everything, including a diskette [one of the reasons why BIOS means "Basic Input/Output System"]  :) :)
0
 
LVL 6

Expert Comment

by:My name is Mud
ID: 2835971
Can i get my points???
0
 
LVL 6

Expert Comment

by:My name is Mud
ID: 2836477
Why did i get a "B" when you specifically say:

  HOW TO READ REAL SERIAL NUMBER OF HARD DRIVE... IN "DOS" OR WINDOWS?


Just a doubt...

But Thanks... hope the code had help you out...
0
 

Author Comment

by:BOKINET
ID: 2838052
i didn't use your code but is ok..
i had been done with my own code
but i am still looking for code that do the same thing under windows system (via API)
0
 
LVL 3

Expert Comment

by:vikiing
ID: 2838769
>>i am still looking for code that do the same thing under windows system (via API)

If you're looking for a protection system, I'm afraid you're going in the wrong direction; disk "serial" number is not such a thing. In fact, that stupid number can be written as easily as it can be read. ¿Do you know what are one of mi disks' number?: BEBE-CACA (you must know Spanish :)

Thus, if your protection scheme is based on a disk number, anyone can duplicate thge same number on another disk and ¡¡voilà!! your protection system was defeated.

Sorry...
0
 

Author Comment

by:BOKINET
ID: 2839887
he, he ,,, VIKING give me your email
to send you program that read serial number... and see...
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Read on to get a few ideas on how to promote your next corporate event.
Whoever said that “a picture is worth one thousand words” observed a fact that can dramatically affect your marketing success. Most people tend to learn visually, so many publishers commonly acknowledge the effectiveness of visual learning by using…
Visualize your data even better in Access queries. Given a date and a value, this lesson shows how to compare that value with the previous value, calculate the difference, and display a circle if the value is the same, an up triangle if it increased…
Sometimes it takes a new vantage point, apart from our everyday security practices, to truly see our Active Directory (AD) vulnerabilities. We get used to implementing the same techniques and checking the same areas for a breach. This pattern can re…

715 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question