coderobe / VBiosFinder

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

Lenovo Y50-70 Touch Compatibility #3

Closed ZoldorfTheWizard closed 6 years ago

ZoldorfTheWizard commented 6 years ago

Hello, I am running Arch 4.16.3-1-ARCH with ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux] and had no success in dumping the vbios using vbiosfinder

Bios is v3.03 9ecn43ww from the official lenovo support page

Here is the output of ./vbiosfinder

./vbiosfinder extract '/home/silver/Downloads/9ecn43ww.exe' 
output will be stored in '/home/silver/Downloads/VBiosFinder/tmp-vbiosfinder'
checking for ruby... yes

trying to extract ./9ecn43ww.exe
checking for innoextract... yes
found innoextract archive
Extracting "Lenovo BIOS Update Utility" - setup data version 5.5.0 (unicode)
 - "app/9ECN43WW.exe" (4.61 MiB) - overwritten
 - "app/9ECN43WW.exe" (4.61 MiB)
Done.
checking for upx... yes
not extractable with upx
checking for 7z... yes
not extractable with 7z
checking for UEFIDump... yes
not an uefi image

trying to extract ./app/9ECN43WW.exe
checking for innoextract... yes
not extractable with innoextract
checking for upx... yes
not extractable with upx
checking for 7z... yes
found 7z archive
checking for UEFIDump... yes
not an uefi image
coderobe commented 6 years ago

That's one of the reference updates i developed this program with. I can still extract all 4 VBIOS contained in that update. Is your download corrupt? For reference, the 9ecn43ww.exe i just pulled from the support page has the md5sum 4bbf962e649136b3804599764840fbfc.

ZoldorfTheWizard commented 6 years ago

That is so strange, the MD5 of my download is 4bbf962e649136b3804599764840fbfc

Same output as above, i will re-clone and see if it persists

ZoldorfTheWizard commented 6 years ago

Here is the full log output: https://pastebin.com/8154t0qC

coderobe commented 6 years ago

Ah, how did you get your UEFIDump? Doesn't seem to be working. I've tested it with git HEAD from the new_engine branch of UEFITool, and that still works.

ZoldorfTheWizard commented 6 years ago

Bingo. That was it.

trying to extract ./WinZIVY2X64_8M.rom
checking for innoextract... yes
not extractable with innoextract
checking for upx... yes
not extractable with upx
checking for 7z... yes
not extractable with 7z
checking for UEFIDump... yes
findNextVolume: volume candidate at offset 9726B0h skipped, has invalid FvLength 109AC0172F7ED611h
findNextStore: VSS store candidate at offset 6E2028h skipped, has invalid size FFFFFFFFh
found UEFI image
extracted. filtering modules...
got 1758 modules
finding vbios
4 possible candidates
checking for rom-parser... yes
Found VBIOS for device 10de:1392!
Found VBIOS for device 8086:0406!
Found VBIOS for device 10de:13af!
Found VBIOS for device 10de:139b!
Job done. Extracted files can be found in /home/silver/Downloads/VBiosFinder/tmp-vbiosfinder/../output
Cleaning up garbage

I checked out the latest new_engine and built the UEFIDump. It worked this time.

I'm not sure what i did wrong to compile UEFIDump previously or why it was failing but it works now.

Thanks!

coderobe commented 6 years ago

:+1: