coderobe / VBiosFinder

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

extract-zlib.rb:8:in `inflate': incorrect header check (Zlib::DataError) #6

Closed eizanprime closed 5 years ago

eizanprime commented 6 years ago

I am trying to use the script to extract the vbios of this https://pcsupport.lenovo.com/be/en/products/laptops-and-netbooks/yoga-series/yoga-720-15ikb/downloads/ds120623

However the script craches, here is the output

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

checking for innoextract... yes
checking for upx... yes
checking for 7z... yes
trying to extract ./bioslenovo.exe
found zlib archive
Cleaning up garbage
Traceback (most recent call last):
        19: from _init.rb:7:in `<main>'
        18: from /home/eizanprime/AUR/VBiosFinder/vendor/bundle/ruby/2.5.0/gems/thor-0.20.0/lib/thor/base.rb:466:in `start'
        17: from /home/eizanprime/AUR/VBiosFinder/vendor/bundle/ruby/2.5.0/gems/thor-0.20.0/lib/thor.rb:387:in `dispatch'
        16: from /home/eizanprime/AUR/VBiosFinder/vendor/bundle/ruby/2.5.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in `invoke_command'
        15: from /home/eizanprime/AUR/VBiosFinder/vendor/bundle/ruby/2.5.0/gems/thor-0.20.0/lib/thor/command.rb:27:in `run'
        14: from /home/eizanprime/AUR/VBiosFinder/src/cli.rb:36:in `extract'
        13: from /home/eizanprime/AUR/VBiosFinder/src/methods.rb:36:in `run'
        12: from /home/eizanprime/AUR/VBiosFinder/src/methods.rb:36:in `each'
        11: from /home/eizanprime/AUR/VBiosFinder/src/methods.rb:37:in `block in run'
        10: from /home/eizanprime/AUR/VBiosFinder/src/methods.rb:24:in `extract'
         9: from /home/eizanprime/AUR/VBiosFinder/src/methods.rb:24:in `each'
         8: from /home/eizanprime/AUR/VBiosFinder/src/methods.rb:24:in `block in extract'
         7: from /home/eizanprime/AUR/VBiosFinder/src/extraction.rb:10:in `attempt'
         6: from /home/eizanprime/AUR/VBiosFinder/src/extraction.rb:10:in `call'
         5: from /home/eizanprime/AUR/VBiosFinder/src/extract-zlib.rb:6:in `zlib'
         4: from /home/eizanprime/AUR/VBiosFinder/src/extract-zlib.rb:6:in `open'
         3: from /home/eizanprime/AUR/VBiosFinder/src/extract-zlib.rb:7:in `block in zlib'
         2: from /home/eizanprime/AUR/VBiosFinder/src/extract-zlib.rb:7:in `open'
         1: from /home/eizanprime/AUR/VBiosFinder/src/extract-zlib.rb:8:in `block (2 levels) in zlib'
/home/eizanprime/AUR/VBiosFinder/src/extract-zlib.rb:8:in `inflate': incorrect header check (Zlib::DataError)

Thank you very much for your help !

coderobe commented 6 years ago

I fixed the issue, try again

eizanprime commented 6 years ago

Thank you very much, it still crashes though a bit later, here is the output !

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

checking for innoextract... yes
checking for upx... yes
checking for 7z... yes
trying to extract ./bioslenovo.exe
found zlib archive
wrong guess :(
found innoextract archive
Extracting "Lenovo BIOS Update Utility" - setup data version 5.5.0 (unicode)
 - "app/4MCN33WW.exe" - overwritten
 - "app/4MCN33WW.exe"
Done.
trying to extract ./app/4MCN33WW.exe
found zlib archive
wrong guess :(
found 7z archive
trying to extract ./BiosImageProc.dll
trying to extract ./CIZY5205.ROM
trying to extract ./Ding.wav
trying to extract ./FWUpdLcl.exe
trying to extract ./FlsHook.exe
trying to extract ./H2OFFT-W.exe
trying to extract ./Microsoft.VC90.CRT.manifest
trying to extract ./Microsoft.VC90.MFC.manifest
trying to extract ./iscflash.sys
trying to extract ./iscflashx64.sys
trying to extract ./mfc90u.dll
trying to extract ./msvcp90.dll
trying to extract ./msvcr90.dll
trying to extract ./platform.ini
extracting uefi data
trying to extract ./BiosImageProc.dll
Cleaning up garbage
Traceback (most recent call last):
        12: from _init.rb:7:in `<main>'
        11: from /home/eizanprime/AUR/VBiosFinder/vendor/bundle/ruby/2.5.0/gems/thor-0.20.0/lib/thor/base.rb:466:in `start'
        10: from /home/eizanprime/AUR/VBiosFinder/vendor/bundle/ruby/2.5.0/gems/thor-0.20.0/lib/thor.rb:387:in `dispatch'
         9: from /home/eizanprime/AUR/VBiosFinder/vendor/bundle/ruby/2.5.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in `invoke_command'
         8: from /home/eizanprime/AUR/VBiosFinder/vendor/bundle/ruby/2.5.0/gems/thor-0.20.0/lib/thor/command.rb:27:in `run'
         7: from /home/eizanprime/AUR/VBiosFinder/src/cli.rb:36:in `extract'
         6: from /home/eizanprime/AUR/VBiosFinder/src/methods.rb:43:in `run'
         5: from /home/eizanprime/AUR/VBiosFinder/src/methods.rb:43:in `each'
         4: from /home/eizanprime/AUR/VBiosFinder/src/methods.rb:45:in `block in run'
         3: from /home/eizanprime/AUR/VBiosFinder/src/extraction.rb:8:in `attempt'
         2: from /home/eizanprime/AUR/VBiosFinder/src/extraction.rb:8:in `call'
         1: from /home/eizanprime/AUR/VBiosFinder/src/extract-uefi.rb:20:in `uefi'
/home/eizanprime/AUR/VBiosFinder/vendor/bundle/ruby/2.5.0/gems/cocaine-0.5.8/lib/cocaine/command_line.rb:82:in `run': Cocaine::CommandNotFoundError (Cocaine::CommandNotFoundError)
coderobe commented 6 years ago

You might be missing UEFIExtract, one of the dependencies of VBiosFinder. You can find it here: https://github.com/LongSoft/UEFITool/tree/new_engine/UEFIExtract

coderobe commented 5 years ago

Closing this, given that the initial issue is fixed and (assuming all dependencies are met) vbiosfinder can extract the linked update just fine now