BIOS
(Category:Booting) |
(correct offset of jump instruction) |
||
(One intermediate revision by one user not shown) | |||
Line 9: | Line 9: | ||
[[UEFI]] firmware images usually contain an embedded [[Firmware File System]]. | [[UEFI]] firmware images usually contain an embedded [[Firmware File System]]. | ||
+ | |||
+ | == Identification == | ||
+ | ROM images start with bytes {{magic|0xaa 0x55}}. | ||
+ | At offset 3 the initialization vector is stored. | ||
+ | In many cases this is a 3 byte jump instruction starting with hexadecimal value <code>0xE9</code>. | ||
+ | Images for cards with PCI interface contain a 4 byte signature <code>PCIR</code>. | ||
+ | Images for cards which support plug and Play feature contain a 4 byte signature <code>$PnP</code>. | ||
+ | |||
+ | == Sample files == | ||
+ | * http://minuszerodegrees.net/rom/rom.htm - many older ROM images without Plug and Play. | ||
+ | * https://www.xtideuniversalbios.org/ - BIOS for IDE ATA hard disks. | ||
+ | * http://rayer.g6.cz/romos/romose.htm - <code>romos.bin</code> for loading FreeDOS. | ||
+ | * https://www.qemu.org/ - Download QEMU and extract or install → *.bin - ROM examples for cards with PCI interface. | ||
== Links == | == Links == | ||
+ | * [[Wikipedia:Option ROM|Wikipedia article]] | ||
* [http://www.coreboot.org/Bios_extract bios_extract] | * [http://www.coreboot.org/Bios_extract bios_extract] | ||
* [http://bioshacking.blogspot.com/2012/02/bios-disassembly-ninjutsu-uncovered-1st.html BIOS Disassembly Ninjutsu Uncovered] | * [http://bioshacking.blogspot.com/2012/02/bios-disassembly-ninjutsu-uncovered-1st.html BIOS Disassembly Ninjutsu Uncovered] |
Latest revision as of 00:53, 6 April 2022
BIOS (Basic Input Output System), is a ROM chip containing code (firmware) to control peripherals attached to a wikipedia:PC.
The x86 BIOS entry point is located at physical address 0xfffffff0
(usually corresponding to 16 bytes from the end of the BIOS image) and is executed in 16-bit real mode; it usually contains a jump instruction (either far or near). There are no other guarantees about BIOS image layout, although many vendors have developed in-house formats.
UEFI firmware images usually contain an embedded Firmware File System.
[edit] Identification
ROM images start with bytes 0xaa 0x55
.
At offset 3 the initialization vector is stored.
In many cases this is a 3 byte jump instruction starting with hexadecimal value 0xE9
.
Images for cards with PCI interface contain a 4 byte signature PCIR
.
Images for cards which support plug and Play feature contain a 4 byte signature $PnP
.
[edit] Sample files
- http://minuszerodegrees.net/rom/rom.htm - many older ROM images without Plug and Play.
- https://www.xtideuniversalbios.org/ - BIOS for IDE ATA hard disks.
- http://rayer.g6.cz/romos/romose.htm -
romos.bin
for loading FreeDOS. - https://www.qemu.org/ - Download QEMU and extract or install → *.bin - ROM examples for cards with PCI interface.