Extract embedded VBIOS from (almost) any BIOS Update
Switch branches/tags
Clone or download
Latest commit 8b81113 Aug 28, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
3rdparty Add 3rdparty executable directory Dec 24, 2017
src Fix: catch zlib errors Aug 28, 2018
.gitignore Add .gitignore Dec 26, 2017
Gemfile Add Gemfile Dec 24, 2017
Gemfile.lock Add Gemfile Dec 24, 2017
LICENSE.txt Add LICENSE.txt Dec 24, 2017
README.md Add updater-polyglot extraction & zlib inflation; Switch from UEFIDum… Jul 8, 2018
_init.rb Add program entrypoint Dec 24, 2017
vbiosfinder Add program entrypoint Dec 24, 2017

README.md

VBiosFinder (linux)

This tool attempts to extract a VBIOS from a bios update
Laptops with NVIDIA Optimus graphics often have the dGPU VBIOS integrated in their system BIOS, this makes extracting the VBIOS a complicated process. Provided you have a BIOS Update for your laptop, this tool might be able to automagically extract all available VBIOS from it.

Dependencies

  • Ruby
  • bundler (a ruby gem)
  • UEFIExtract (note: UEFIExtract can be found in the branch new_engine)
  • rom-parser
  • p7zip (optional)
  • innoextract (optional)
  • upx (optional)

Note

Some dependencies might not offer a package for your linux distribution (like UEFIDump and rom-parser). The binaries can be placed in ./3rdparty to avoid having to install them.

Usage

  • Run bundle install --path=vendor/bundle to install the required ruby modules (once)
  • Run ./vbiosfinder extract /path/to/bios_update.exe to attempt an extraction
  • A temporary working dir is created at ./tmp-vbiosfinder which can be removed inbetween runs
  • Extracted VBIOS roms will be placed in ./output

Compatibility

Troubleshooting

Q: There are no files in ./output after running the tool!
A: It's very possible that VBiosFinder can't extract your type of BIOS update right now. Feel free to open an issue with a link to your bios update and the program output you get!

TODO

  • Add option to extract the bios of the running system (can we?)
  • Clean up temporary working dir after finishing up done
  • Test with more BIOS updates

Licensing

This project, initially authored by Robin Broda, is licensed under the GNU Affero General Public License v3
A copy of the license is available in LICENSE.txt