I'm looking for a way to get hardware serial numbers and the closest things I have found are the BIOS string and the Harddrive volume label... this is not what I want. I want the actual serial number of the motherboard, harddrive, cdrom, floppy, etc.

I looked at a page that uses a VXD to get the serial # of the hdd but it says the software will not work with scsi drives?

Is there any way to get such information or not? I need a way to retrieve info across a variety of systems.. basically any system running windows 95 - 2k3... I am an assembly language newbie but more than willing to learn.
Posted on 2004-01-06 18:39:26 by modulus
1. You need to know how to access the hardware registers via I/O ports.
2. You need to know how to create Device Drivers for each system (Win9x, W2k, XP)

My first recomendation is to read the book The Indispensable PC Hardware Book of Hans Peter Messmer.
It have all the register specifications and teach how to access via assembly programming.
Second, study the Iczelion's tutorials, including the VxD programming.
Third, learn the Device Driver programming for Windows 2k/XP
using KMD tutorials http://www.masmforum.com/website/tutorials/kmdtute/index.html

It's not difficult, but is a time consuming task.

Good luck ! :alright:
Posted on 2004-01-07 19:09:24 by Opcode
Hrm, doing I/O port programming of a harddrive can be somewhat dangerous, even when done from a driver. Iirc there's some method of getting the harddrive serial # without *that* lowlevel code, using a codepath with a various tricks that work across a number of windows versions.

Getting something to work reliably isn't really an easy task, and many schemes have ended up pissing off users majorly. While not exactly the same, it's related, and I will mention the filthy and dirty word 'safecast'.
Posted on 2004-01-08 18:33:44 by f0dder
Check if this help....


// diskid32.cpp

// for displaying the details of hard drives in

// 06/11/2000 Lynn McGuire written with many contributions from others,
// IDE drives only under Windows NT/2K and 9X,
// maybe SCSI drives later


http://www.codeguru.com/system/DiskId32.shtml
Posted on 2004-01-08 18:33:49 by coder
I am not trying to use this as a copy protection method but rather as a means of authentication -- i.e. you can steal someone's username and password but you can't do anything but bruteforce a hardware serial number.
Posted on 2004-01-09 19:08:11 by modulus
you will always be able to fake the ID the client sends to the server - so it really doesn't matter WHAT you're sending to the server, as long as the server can auth it securely.
Posted on 2004-01-09 19:19:46 by f0dder