Click to See Complete Forum and Search --> : Bios


deoblo1
March 27th, 2001, 05:27 PM
Is there a way I can change the Bios from a program that I write?

cksiow
March 27th, 2001, 06:34 PM
I doubt you can. I have seen the source code for CIH virus and it does write to the BIOS flash chip. however, it write rubbish into it so that your system become unbootable.

Most manufacturer supply BIOS flash chip which run in real mode because there are no restrictions in I/O instruction in real mode. however in windows (protected mode), you application wouldn't be able to use the I/O instruction unless you ask a VXD to do so for you because VXD can run in RING 0.

Even you can get thru all this, but what is the purpose of writing something to the BIOS as you may end up destroying the whole BIOS (unless you are very familiar with the BIOS chip that you are dealing with because different motherboard might have different bios cip). So, beware.

cksiow
http://vblib.virtualave.net - share our codes

shree
March 27th, 2001, 08:19 PM
Actually, is there a way to retrieve the BIOS number? It appears at the bottom of the screen during bootup.

Iouri
March 28th, 2001, 07:24 AM
'To read data from BIOS

Private Declare Sub GetMem1 Lib "msvbvm50.dll" (ByVal MemAddress As Long, var As Byte)

msgbox GetBIOSDate

Private Function GetBIOSDate() As String

Dim p As Byte, MemAddr As Long, sBios As String
Dim i As Integer

MemAddr = &HFFFF5
For i = 0 To 7
Call GetMem1(MemAddr + i, p)
sBios = sBios & Chr$(p)
Next i
GetBIOSDate = sBios

End Function


'You can read Integer (2 bytes), Long and LongInteger variables using
GetMem2, GetMem4 and GetMem8 functions
'Private Declare Sub GetMem2 Lib "msvbvm50.dll" (ByVal MemAddress As Long,
var As Integer)
'Private Declare Sub GetMem4 Lib "msvbvm50.dll" (ByVal MemAddress As Long,
var As Long)

For this next one you must use LARGE_INTEGER (data type) as its a 64bit
value.

'Private Declare Sub GetMem8 Lib "msvbvm50.dll" (ByVal MemAddress As Long,
var As LARGE_INTEGER)


Iouri Boutchkine
iouri@hotsheet.com

shree
March 28th, 2001, 09:59 AM
But what is MemAddr for that BIOS number?