• Stars
    star
    128
  • Rank 280,227 (Top 6 %)
  • Language
    Ruby
  • License
    GNU Affero Genera...
  • Created almost 7 years ago
  • Updated 11 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Extract embedded VBIOS from (almost) any BIOS Update

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 (non-exhaustive)

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

More Repositories

1

hq

A HTML processor inspired by jq
C++
108
star
2

archlinux-steamlink

run arch linux arm on a steamlink, without touching the nand
Shell
24
star
3

AzulPatcher4600

Lilu plugin which applies common patches for the mobile HD4600 iGPU
C++
18
star
4

base65536-ruby

Unicode's answer to Base64, in Ruby
Ruby
7
star
5

TrimForce

Lilu plugin which forces SSD TRIM on unsupported drives
C++
5
star
6

expirobot

🗝️💬 GPG key expiry notifications via Matrix
Ruby
4
star
7

jsplice

JSplice is a java class hotpatcher CLI powered by javassist
Java
4
star
8

crixel

crystal sixel renderer lib
Crystal
4
star
9

unbreak-tweetdeck

💣 fix current tweetdeck issues
3
star
10

czar

xar unarchiver
Crystal
3
star
11

screencap

Crystal
2
star
12

shrex

shex: continued
Go
2
star
13

cdroot

gain pseudo-root on restricted user accounts using a filesystem overlay
Shell
2
star
14

CVE-2018-15912-PoC

https://nvd.nist.gov/vuln/detail/CVE-2018-15912
Shell
2
star
15

coderobe

2
star
16

sorting

flashy visuals
C
2
star
17

codeflags

All kinds of flags in all kinds of different languages
Ruby
2
star
18

dotfiles

Shell
1
star
19

scripts

A collection of scripts that didn't get their individual repositories
Shell
1
star
20

nightingale

another systems emulator for teaching, archive recovery circa 2019
C++
1
star
21

oxy-gen

generate manpages for oxy-secure/oxy
Shell
1
star
22

acpi-p955er

ACPI DSDT/SSDT extension & tools to control Clevo P955ER peripherals (LED, FAN)
1
star
23

PatchCom4360

Lilu plugin required for the Broadcom BCM94352Z on Sierra (unstable)
C++
1
star
24

0x20-Colors

0x40 Hues using Nuklear. Incomplete
C++
1
star
25

bassboost

🔊 A variable system load (Linux, MacOS, Windows)
C++
1
star
26

cetrinet

another multiplayer tetris game
C++
1
star
27

0x40Versions

💩 0x40 Hues version listing
JavaScript
1
star