coderobe / VBiosFinder

Extract embedded VBIOS from (almost) any BIOS Update
GNU Affero General Public License v3.0
129 stars 21 forks source link

Report: T430 successful, but invalid PCI ID found(?) #18

Closed Justegard closed 5 years ago

Justegard commented 5 years ago

Great software, thank you!

The specified integrated graphics on a T430 is the Intel HD Graphics 4000 (PCI ID: 8086:0166) yet the VBIOS found is for Intel HD Graphics (8086:0106).

Tested using the vbios_8086_0106.rom with PCI ID 8086:0166 which worked.

BIOS update link: https://download.lenovo.com/pccbbs/mobiles/g1uj48us.iso

Program output:

output will be stored in '/home/usr/VBiosFinder/tmp-vbiosfinder' checking for ruby... yes

checking for innoextract... yes checking for upx... yes checking for 7z... yes trying to extract ./g1uj48us.exe found innoextract archive Extracting "version 2.81-1.13 (G1ETC1WW-G1HT35WW)" - setup data version 5.4.2

  • "app/WINUPTP.EXE" - overwritten
  • "app/WINUPTP.EXE"
  • "app/206A7.PAT"
  • "app/306A4.PAT"
  • "app/306A5.PAT"
  • "app/306A6.PAT"
  • "app/306A8.PAT"
  • "app/306A9.PAT"
  • "app/BCP.evs"
  • "app/BIOS_LOGO.TXT"
  • "app/chklogo.exe"
  • "app/chklogo.exe.config"
  • "app/WinFlash32.exe"
  • "app/WinFlash32s.exe"
  • "app/WinFlash64.exe"
  • "app/WinFlash64s.exe"
  • "app/wininfo.exe"
  • "app/32bit/tpnflhlp.sys"
  • "app/64bit/tpnflhlp.sys"
  • "app/G1ETC1WW/$01D2000.FL1"
  • "app/G1ETC1WW/$01D2000.FL2"
  • "app/G1ETC1WW/206a7.HSH"
  • "app/G1ETC1WW/306a4.HSH"
  • "app/G1ETC1WW/306a5.HSH"
  • "app/G1ETC1WW/306a6.HSH"
  • "app/G1ETC1WW/306a8.HSH"
  • "app/G1ETC1WW/306a9.HSH" Done. trying to extract ./app/206A7.PAT trying to extract ./app/306A4.PAT trying to extract ./app/306A5.PAT trying to extract ./app/306A6.PAT trying to extract ./app/306A8.PAT trying to extract ./app/306A9.PAT trying to extract ./app/32bit/tpnflhlp.sys trying to extract ./app/64bit/tpnflhlp.sys trying to extract ./app/BCP.evs trying to extract ./app/BIOS_LOGO.TXT trying to extract ./app/G1ETC1WW/$01D2000.FL1 trying to extract ./app/G1ETC1WW/$01D2000.FL2 trying to extract ./app/G1ETC1WW/206a7.HSH trying to extract ./app/G1ETC1WW/306a4.HSH trying to extract ./app/G1ETC1WW/306a5.HSH trying to extract ./app/G1ETC1WW/306a6.HSH trying to extract ./app/G1ETC1WW/306a8.HSH trying to extract ./app/G1ETC1WW/306a9.HSH trying to extract ./app/WINUPTP.EXE trying to extract ./app/WinFlash32.exe trying to extract ./app/WinFlash32s.exe trying to extract ./app/WinFlash64.exe trying to extract ./app/WinFlash64s.exe trying to extract ./app/chklogo.exe trying to extract ./app/chklogo.exe.config trying to extract ./app/wininfo.exe extracting uefi data trying to extract ./app/206A7.PAT found UEFIExtract archive trying to extract ./app/306A4.PAT found UEFIExtract archive trying to extract ./app/306A5.PAT found UEFIExtract archive trying to extract ./app/306A6.PAT found UEFIExtract archive trying to extract ./app/306A8.PAT found UEFIExtract archive trying to extract ./app/306A9.PAT found UEFIExtract archive trying to extract ./app/32bit/tpnflhlp.sys found UEFIExtract archive trying to extract ./app/64bit/tpnflhlp.sys found UEFIExtract archive trying to extract ./app/BCP.evs found UEFIExtract archive trying to extract ./app/BIOS_LOGO.TXT found UEFIExtract archive trying to extract ./app/G1ETC1WW/$01D2000.FL1 found UEFIExtract archive trying to extract ./app/G1ETC1WW/$01D2000.FL2 found UEFIExtract archive trying to extract ./app/G1ETC1WW/206a7.HSH found UEFIExtract archive trying to extract ./app/G1ETC1WW/306a4.HSH found UEFIExtract archive trying to extract ./app/G1ETC1WW/306a5.HSH found UEFIExtract archive trying to extract ./app/G1ETC1WW/306a6.HSH found UEFIExtract archive trying to extract ./app/G1ETC1WW/306a8.HSH found UEFIExtract archive trying to extract ./app/G1ETC1WW/306a9.HSH found UEFIExtract archive trying to extract ./app/WINUPTP.EXE found UEFIExtract archive trying to extract ./app/WinFlash32.exe found UEFIExtract archive trying to extract ./app/WinFlash32s.exe found UEFIExtract archive trying to extract ./app/WinFlash64.exe found UEFIExtract archive trying to extract ./app/WinFlash64s.exe found UEFIExtract archive trying to extract ./app/chklogo.exe found UEFIExtract archive trying to extract ./app/chklogo.exe.config found UEFIExtract archive trying to extract ./app/wininfo.exe found UEFIExtract archive trying to extract ./g1uj48us.exe found UEFIExtract archive trying to extract ./mkmf.log found UEFIExtract archive filtering for modules... got 10535 modules finding vbios 8 possible candidates checking for rom-parser... yes Found VBIOS for device 8086:0106! Found VBIOS for device 10de:1057! Found VBIOS for device 10de:0dfe! Found VBIOS for device 10de:0def! Found VBIOS for device 8086:0106! Found VBIOS for device 10de:1057! Found VBIOS for device 10de:0dfe! Found VBIOS for device 10de:0def! Job done. Extracted files can be found in /home/usr/VBiosFinder/tmp-vbiosfinder/../output Cleaning up garbage
Justegard commented 5 years ago

Tested using the VBIOS using the PCI ID found by VBiosFinder, which did not work.

coderobe commented 5 years ago

Interesting. The PCI ID is read using rom-parser, which takes the data verbatim from the ROM. That sounds like the PCI ID in that particular VBIOS ROM might actually just be wrong then.

Nonetheless, i'll add your device to the list of supported devices - thanks for the report!

dudeitssm commented 1 year ago

Just adding a "me too" comment, as the naming bug also affects the ThinkPad X230, and possibly other Ivy Bridge series laptops as well.

Here's also a helpful trick to figuring out if the rom dump succeeded. You can use the strings command to find unencrypted text strings within the rom dumps, which can be very helpful.

Example:

user@265bb6507a45:~/vbios_extract$ ls -lh
total 4.7M
-rw-r--r--. 1 user user 4.3M Sep 10 04:38 bios_g2uj33us.exe
-rw-r--r--. 1 user user 118K Sep 10 04:38 body.bin
-rw-r--r--. 1 user user 118K Sep 10 04:38 vbios_10de_0def_1.rom
-rw-r--r--. 1 user user  62K Sep 10 04:38 vbios_10de_0dfe_1.rom
-rw-r--r--. 1 user user  62K Sep 10 04:38 vbios_10de_1057_1.rom
-rw-r--r--. 1 user user  64K Sep 10 04:38 vbios_8086_0106_1.rom

user@265bb6507a45:~/vbios_extract$ strings vbios_8086_0106_1.rom | egrep -i 'graphics|nvidia'
9Intel(R) Sandybridge/Ivybridge Graphics Chipset Accelerated VGA BIOS
Intel(R) Sandybridge/Ivybridge Graphics Controller

user@265bb6507a45:~/vbios_extract$ strings vbios_10de_0def_1.rom | egrep -i 'graphics|nvidia'
Copyright (C) 1996-2012 NVIDIA Corp.
NVIDIA GeForce
PLEASE POWER DOWN AND CONNECT THE PCIe POWER CABLE(S) FOR THIS GRAPHICS CARD
NVIDIA
NVIDIA Corporation