Accessing bios information (windows)

This is a discussion on Accessing bios information (windows) within the ASM x86 ASM 370 forums in Programming Languages category; Hi: is it possible to access bios information using x86 assembler? I've tried using wmi but that doesn't give me what I need. Any help apreciated. Cheers Sean....

Go Back   Application Development Forum > Programming Languages > ASM x86 ASM 370

Object Mix

Register FAQ Calendar Search Today's Posts Mark Forums Read
  #1  
Old 08-25-2008, 04:36 AM
Sean Farrow
Guest
 
Default Accessing bios information (windows)

Hi:
is it possible to access bios information using x86 assembler?
I've tried using wmi but that doesn't give me what I need. Any help
apreciated.
Cheers
Sean.

Reply With Quote
  #2  
Old 08-27-2008, 12:47 AM
Dirk Wolfgang Glomp
Guest
 
Default Re: Accessing bios information (windows)

Am Mon, 25 Aug 2008 09:36:04 +0100 schrieb Sean Farrow:

> Hi:
> is it possible to access bios information using x86 assembler?


Yes, no problem with DOS.

> I've tried using wmi but that doesn't give me what I need. Any help
> apreciated.
> Cheers
> Sean.


Which bios information do you need?

Ralf Browns Interrupt List(RBIL)
http://www.pobox.com/~ralf
http://www.pobox.com/~ralf/files.html
ftp://ftp.cs.cmu.edu/afs/cs.cmu.edu/user/ralf/pub/

RBIL->inter61d.zip->Ports.a
----------P0070007F--------------------------
PORT 0070-007F - CMOS RAM/RTC (REAL TIME CLOCK)
....

Dirk

Reply With Quote
  #3  
Old 08-27-2008, 03:13 PM
Sean Farrow
Guest
 
Default Re: Accessing bios information (windows)

Hi:
I need to get hold of the bios date/serial number. I don't have a 16-bit asm
compiler if that's what I need.
Any help apreciated.
Sean.
"Dirk Wolfgang Glomp" <spamtrap@crayne.org> wrote in message
news:13oqm8zy0dik1.f2okp1qrwdu6$.dlg@40tude.net...
> Am Mon, 25 Aug 2008 09:36:04 +0100 schrieb Sean Farrow:
>
>> Hi:
>> is it possible to access bios information using x86 assembler?

>
> Yes, no problem with DOS.
>
>> I've tried using wmi but that doesn't give me what I need. Any help
>> apreciated.
>> Cheers
>> Sean.

>
> Which bios information do you need?
>
> Ralf Browns Interrupt List(RBIL)
> http://www.pobox.com/~ralf
> http://www.pobox.com/~ralf/files.html
> ftp://ftp.cs.cmu.edu/afs/cs.cmu.edu/user/ralf/pub/
>
> RBIL->inter61d.zip->Ports.a
> ----------P0070007F--------------------------
> PORT 0070-007F - CMOS RAM/RTC (REAL TIME CLOCK)
> ...
>
> Dirk
>


Reply With Quote
  #4  
Old 08-27-2008, 04:27 PM
Benjamin David Lunt
Guest
 
Default Re: Accessing bios information (windows)


"Sean Farrow" <spamtrap@crayne.org> wrote in message
news:48b5a74f$0$26074$db0fefd9@news.zen.co.uk...
> Hi:
> I need to get hold of the bios date/serial number. I don't have a 16-bit
> asm compiler if that's what I need.
> Any help apreciated.
> Sean.


I don't know that any specific BIOS has a serial number, and if
it did, it definitely would not be the same for all BIOS brands.

However, you can get the date and version of most BIOS's.

Here is some C code for most IBM compatible BIOS's:
http://www.frontiernet.net/~fys/romver.htm

Ben

Reply With Quote
  #5  
Old 08-27-2008, 08:03 PM
ArarghMail808NOSPAM
Guest
 
Default Re: Accessing bios information (windows)

On Wed, 27 Aug 2008 13:27:40 -0700, "Benjamin David Lunt"
<spamtrap@crayne.org> wrote:

>
>"Sean Farrow" <spamtrap@crayne.org> wrote in message
>news:48b5a74f$0$26074$db0fefd9@news.zen.co.uk.. .
>> Hi:
>> I need to get hold of the bios date/serial number. I don't have a 16-bit
>> asm compiler if that's what I need.
>> Any help apreciated.
>> Sean.

>
>I don't know that any specific BIOS has a serial number, and if
>it did, it definitely would not be the same for all BIOS brands.

The only BIOS serial number I ever saw was printed on the BIOS eprom
back in the 486 days. Some Dell systems have an asset tag field in
the BIOS that may be readable from a program, but I wouldn't know how.

>However, you can get the date and version of most BIOS's.
>
>Here is some C code for most IBM compatible BIOS's:
> http://www.frontiernet.net/~fys/romver.htm
>

That code would work in a DOS box, at least under windows 9x. I
wouldn't know about any version of NT -- well it worked in a command
prompt under NT 4.

The OP said (windows), and I know that there is some way to get the
BIOS info because I have seen programs that do it (WCPUID for one),
but I don't know how. A search thru the win32 API sould find it.
--
ArarghMail808 at [drop the 'http://www.' from ->] http://www.arargh.com
BCET Basic Compiler Page: http://www.arargh.com/basic/index.html

To reply by email, remove the extra stuff from the reply address.

Reply With Quote
  #6  
Old 08-28-2008, 12:27 AM
Jim Carlock
Guest
 
Default Re: Accessing bios information (windows)

I can not vouch for the BIOS links below, but some do offer
OEM/developer tools, just don't know the details of it all.
Someone else here might be able to leave a comment on some of
the websites though.

Some BIOS information is available, as Tamas Miklos wrote some
free software known as AIDA32 and published it back in the
early 2000 years. Use www.live.com to search for AIDA32 and
you'll run into a majorgeeks link where you can download that
software. It runs on Windows, claims to have the ability to
dump the BIOS to file (someone else needs to confirm such a
claim though, as it's out of my skillset to do so). I believe
Tamas Miklos sold the software to a company called Lavalys,
which now "sells it's own versions"(?) of the software. If
we're lucky enough, maybe Tamas Miklos will happen to stop by
and offer some help?

BIOS links below, note AWARD is now PHOENIX, or perhaps it's
the other way around.

http://www.phoenix.com/en/products/
http://www.ami.com/


Microsoft identifies that the registry holds information about
the BIOS version and date in the following key (Win9x):

HKEY_LOCAL_MACHINE\Enum\Root\*PNP0C01\0000
http://support.microsoft.com/kb/195268

Then the following link provides links to the various BIOS
distributors.

http://www.michaelstevenstech.com/bios_manufacturer.htm

Which contains a link to (search for "BIOS Agent" on the
following link):

http://www.bootdisk.com/utility.htm

And the following provides WMI/VBScript/JScript access to
BIOS information, which might be the same script you tried,
but I'll post the link just in case.

http://www.winhelponline.com/blogs/1...using-WMI.html

> I need to get hold of the bios date/serial number. I don't
> have a 16-bit asm compiler if that's what I need.


The API monitor might be able to help in determining which
API calls get called by the WMI script above or with other
applications that read through the BIOS.

http://www.rohitab.com/apimonitor/

--
JC
You Have More Than Five Senses
http://www.associatedcontent.com/art...ve_senses.html


Reply With Quote
  #7  
Old 08-28-2008, 01:20 AM
Dirk Wolfgang Glomp
Guest
 
Default Re: Accessing bios information (windows)

Am Wed, 27 Aug 2008 20:13:17 +0100 schrieb Sean Farrow:

> Hi:
> I need to get hold of the bios date/serial number.


How can i find the adress of those serial number?

> I don't have a 16-bit asm
> compiler if that's what I need.


16-bit assembler:
[NASM]
http://sourceforge.net/project/showf...?group_id=6208

[MASM]
A search with google shows these result: [masm51.zip]
http://www.bbs.motion-bg.com/index.php?file=431

It is also possible to use MASM 6.x(need windows) and link
the *.obj-file with the linker from MASM5 to get a 16-bit executable.
MASM 6.x provide MMX/XMM/3DNOW.

> Any help apreciated.


To get some bytes from the Bios, we donīt need any compiler/assembler,
debug is usefull enough:
debug
- o70 0
- i71
....<-SECONDS
-q

RBIL->inter61d.zip->Cmos.lst
----------R00--------------------------------
CMOS 00h - RTC - SECONDS
Desc: (BCD 00-59, Hex 00-3B)
Note: Bit 7 is read only
SeeAlso: CMOS 01h,CMOS 02h,CMOS 04h
-----

Oh, a port access at 70h/71h is also possible with the DOS-box from
Windows2000.

Dirk

Reply With Quote
  #8  
Old 08-28-2008, 01:36 AM
Dirk Wolfgang Glomp
Guest
 
Default Re: Accessing bios information (windows)

Am Wed, 27 Aug 2008 13:27:40 -0700 schrieb Benjamin David Lunt:

> "Sean Farrow" <spamtrap@crayne.org> wrote in message
> news:48b5a74f$0$26074$db0fefd9@news.zen.co.uk...
>> Hi:
>> I need to get hold of the bios date/serial number. I don't have a 16-bit
>> asm compiler if that's what I need.
>> Any help apreciated.
>> Sean.

>
> I don't know that any specific BIOS has a serial number, and if
> it did, it definitely would not be the same for all BIOS brands.
>
> However, you can get the date and version of most BIOS's.
>
> Here is some C code for most IBM compatible BIOS's:
> http://www.frontiernet.net/~fys/romver.htm


http://www.frontiernet.net/~fys/undoc.htm

The BIOS Name is at F000:FF59h. It has an unknown length but is in an
ASCIIZ string.

The BIOS Date is at F000:FFF5h. It is 8 bytes long and has the form of:
MM/DD/YY. There is a NULL byte after it if you want to use it as an ASCIIZ
string.

The BIOS Time is at F000:FFE0h. It is 8 bytes long and has the form of:
HH/MM/SS. There is a NULL byte after it if you want to use it as an ASCIIZ
string.

Here is a small snippet of code to print them:

; assemble with NBASM

..model tiny
..code
org 100h ; COM files start at 100h
start: mov dx,offset NNstr ; print the NameNumber message
.....
....

Dirk

Reply With Quote
  #9  
Old 08-28-2008, 02:56 AM
Frank Kotler
Guest
 
Default Re: Accessing bios information (windows)

Dirk Wolfgang Glomp wrote:
> Am Wed, 27 Aug 2008 20:13:17 +0100 schrieb Sean Farrow:
>
>> Hi:
>> I need to get hold of the bios date/serial number.

>
> How can i find the adress of those serial number?


Dunno about "serial number". We can get bios date and version. I recall
a "privacy flap" about "serial numbers"... IIRC they compromised by
making access to the serial number "off" by default. I have no idea how
to get it, if any...

>> I don't have a 16-bit asm
>> compiler if that's what I need.

>
> 16-bit assembler:
> [NASM]
> http://sourceforge.net/project/showf...?group_id=6208


Just to clarify, you do *not* want the obsolete, no longer supported,
"16 bit dos" build! The 32-bit dos build would work(?), but the Windows
build - way down at the bottom of the page - is probably what you want.
Any of 'em will output 16-bit code. If you make a .com file, you won't
need a 16-bit linker.

> [MASM]
> A search with google shows these result: [masm51.zip]
> http://www.bbs.motion-bg.com/index.php?file=431
>
> It is also possible to use MASM 6.x(need windows) and link
> the *.obj-file with the linker from MASM5 to get a 16-bit executable.
> MASM 6.x provide MMX/XMM/3DNOW.


You might also look at:

http://www.japheth.de/JWasm.html

Japheth's "free and open source" equivalent... (for those who care about
such things).

>> Any help apreciated.

>
> To get some bytes from the Bios, we donīt need any compiler/assembler,
> debug is usefull enough:
> debug
> - o70 0
> - i71
> ...<-SECONDS
> -q
>
> RBIL->inter61d.zip->Cmos.lst
> ----------R00--------------------------------
> CMOS 00h - RTC - SECONDS
> Desc: (BCD 00-59, Hex 00-3B)
> Note: Bit 7 is read only
> SeeAlso: CMOS 01h,CMOS 02h,CMOS 04h
> -----
>
> Oh, a port access at 70h/71h is also possible with the DOS-box from
> Windows2000.


Good point. Untested, but we should be able to write/read those ports in
Linux, after getting "permission". Dunno if we can get bios version/date
from that (*current* date, yes)... Could use debug to examine memory,
too... (d f000:fff5 ?)

There's a file...

http://home.comcast.net/~fbkotler/seemem.zip

(source and executable for two OSen and documentation - 10k - Thanks,
"Annie"!)

That will allow you to poke around in memory. Dunno how well it will
work in a modern Windows "dos box"... (might give you a clue how to
write such a thing, if that's what you want to do, Sean)

Best,
Frank

Reply With Quote
  #10  
Old 08-28-2008, 05:58 AM
Dirk Wolfgang Glomp
Guest
 
Default Re: Accessing bios information (windows)

Am Thu, 28 Aug 2008 06:56:53 GMT schrieb Frank Kotler:

> (d f000:fff5 ?)


Ah, the date of my bios.

Dirk

Reply With Quote
Reply


Thread Tools
Display Modes


All times are GMT -5. The time now is 07:26 AM.


Powered by vBulletin® Version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
vB Ad Management by =RedTyger=

In an effort to better serve ads to our visitors, cookies are used on objectmix.com. For more information, check out our Privacy Policy.