[UEFITool] UEFI firmware image viewer and editor

Discussion in 'MDL Projects and Applications' started by CodeRush, Oct 8, 2013.

  1. adrian_p

    adrian_p MDL Novice

    Jan 13, 2009
    6
    0
    0
    "PEI Core entry point can't be found in VTF. VTF not patched."

    same thing with latest version.

    My test process:
    open bios image
    remove PeiCore
    add PeiCore
    and VTF should be patched...

    Am I doing something wrong in my test procedure?

    Thanks!

    EDIT:
    questions for a program feature:
    1. There is possibility to extract complete "Volume" from bios as is.
    Will there be possibility to not only extract "Volume" but to replace complete "Volume"

    2. When we wan't to extract module from bios, is it possible to auto add the name of module in "Save as" drop down menu how is it named in Text section of program,
    i.e.
    If I want to extract FileSystem DXE driver, I think it will be great to have that FileSystem already in Save as drop down menu along with ffs extension.
     
  2. CodeRush

    CodeRush MDL Member

    Jun 20, 2011
    221
    674
    10
    @adrian_p, try "Replace as is" on PEI Core without removal, please.
    Send me your BIOS and new PEI core file for testing, if doesn't work.

    About features:
    1. If you need them, I will implement.
    2. This was previously in my planned features list, but I keep forgetting it. Will do.
     
  3. adrian_p

    adrian_p MDL Novice

    Jan 13, 2009
    6
    0
    0
    When "Replace as is" there is no error!
    Further testing will follow...

    Well if 1. is not a problem to implement it will be handy to have (allot easier than replace one by one)
    And I know 2. is more cosmetic, but it helps(speeds up) allot in endless tweaking/testing.

    BRGDS
     
  4. CodeRush

    CodeRush MDL Member

    Jun 20, 2011
    221
    674
    10
    UEFIExtract 0.3.1 is out.

    Changes:
    - added GUID filtering for extracting only specified FFS files (and all things in them), just run the program as "UEFIExtract /path/to/bios.image GUID1 GUID2 GUID3 ... GUID31"
    - return value is a bit mask, where 0 on position N means file with GUID_N is found and extracted, 1 otherwise. GUID numeration is started with 1, so if you have 1 as return value - there are some problems with BIOS file itself
     
  5. FredWst

    FredWst MDL Novice

    Nov 18, 2013
    11
    13
    0
    Hi,

    With rev 0.18.7 i got some troubles when adding module at the end.
    First module is correctly integrated but other after are corrupt.

    Fred
     
  6. CodeRush

    CodeRush MDL Member

    Jun 20, 2011
    221
    674
    10
    @FredWst, will try to reproduce, but can you plase be more specific about it, i.e upload the files you are trying to add?
     
  7. FredWst

    FredWst MDL Novice

    Nov 18, 2013
    11
    13
    0
    Hi,

    OZ file rev 894. with 0.18.5 it works.

    Fred
     
  8. billdh2k

    billdh2k MDL Novice

    Sep 12, 2014
    8
    0
    0
    Hi CodeRush,

    Fascinating work! Just got my self into this area since I am interested in adding new microcode to an Intel board (DG41TY) to support 771 Xeon (E0 stepping). Just wonder if your tool can help here. I've checked other existing tools that are dedicated for microcode update but non appear to touch the Intel board, in general. Any comment or suggestion are appreciated.

    Thanks in advance,

    Bill H
     
  9. billdh2k

    billdh2k MDL Novice

    Sep 12, 2014
    8
    0
    0
    I am able to open the BIOS (.ROM file) with PhenixTool (v. 257) and it appears that the tool is able to decipher the BIOS and created a bios dump with bunch of module output. I just don't know what to do with them. Like which modules should I replace or to add with new Intel microcode?
     
  10. fr40

    fr40 MDL Member

    Aug 21, 2007
    156
    55
    10
    yeah. really awosme work... still learn how this work, but tool is great!:clap:
     
  11. CodeRush

    CodeRush MDL Member

    Jun 20, 2011
    221
    674
    10
    billdh2k, Intel's .BIO files are protected form any modification by RSA signatures, that is why to mod a BIOS on Intel board, you need to dump your current BIOS using external SPI programmer, modify it (there is now protection from modifying DXE volume for desktop boards) and then flash back into SPI chip using the same programmer.
    I don't know where the microcode module is located in that BIOS, but I will try to find it when I have more free time.

    fr40, I hope the interface is intuitive enough to have no documentation, but you need to have some background on UEFI technologies to use the tool, otherwise you will be lost with term like "Volume", "FFS file", "GUID-defined section", "Tiano compression" and so on. :)
    If you have any question - just ask, I will try to make a FAQ afterwards.
     
  12. BDMaster

    BDMaster MDL BIOS/EFI Modifier

    Aug 2, 2009
    821
    313
    30
    @ Badawa

    Hi friend,
    many times where Eeprom is Write Protected = FPT Error 28 or 280 the Recovery don't work !!!
    May be CodeRush can explain better this issue, but from my experience I can say that We have to
    use the first 2.xx upgrade Bios as Recovery File to go to 1.xx or rewrite a Bios !!!
    When It's not possible this way We can use Intel FPT using a Bios Mod Generalized Version or
    a Bios Backup Modified.
    All this will be possible if there is only Error 28, bypassable using Prr.exe (Svl7 Modder tool)
    otherwise We have to use a SPI external uSB Programmer with a Soic Pomona Clip.

    @ CodeRush
    I would ask to CodeRush a new feature into his UEFITool that's show the Bios Version e.g.
    Acer ZRQ v.1.19 or Lenovo G580 5ECN33WW (v2.03), this for Insyde is cover under $DMI,
    but into Phoenix is more difficult to get quickly.
    Regards
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  13. CodeRush

    CodeRush MDL Member

    Jun 20, 2011
    221
    674
    10
    @Badawa, I don't know any other good ways to flash modified BIOS corrently on notebooks then using external SPI programmer and SOIC-clip, as BDMaster suggested.
    Make full dump of your BIOS, mod it and the flash back - it's the only working way for almost all machines right now.

    @BDMaster, I would rather not add this feature, because it brings to little, but requres various code paths for different UEFI firmwares. I don't like writing vendos-specific code, and I can't write AMI-specific code because of NDA, so of you need an utility to determine platfrom version - form UEFITool and add this function yourself. :)

    @RustyX, thank you for using it. Build process is simple, install your compiler and Qt library, cd to UEFITool folder "qmake" and "make release". I do make additional stepps including compilation of special static version of Qt and modifying mkspecs for both Windows and OSX builds, but if you just need working version of the tool and have no plans to distribute it - qmake and make are enough.
     
  14. billdh2k

    billdh2k MDL Novice

    Sep 12, 2014
    8
    0
    0
    CodeRush, thank you for your explanation. As I said earlier, my main interest is to add the newer Intel microcode to the BIOS to enable the full support of the 771 Xeons on the pre-2010 Intel 775 boards. Do these pre-2010 boards have the BIOS protection from any modification, even using SPI programmer?

    If I understand it correctly based on your suggestion as well as replies from others, I would need the following hardware: 1) SPI programmer (there are a few on eBay, ~$20-30); 2) May be a Pomona SOIC Clip‎ (if there is SPI header pins on the board).

    Next are the challenging steps: 3) Dump the BIOS content from the BIOS chip on the board to get un-encrypted codes using the SPI programmer, 4) Analyzing the BIOS code to identify the microcode section, and then replace or add with the newer code, 5) re-program the BIOS chip with the modified BIOS using the SPI programmer.

    The difficult part is the step 4 where expert knowledge and software tools are needed. I just wonder if my goal could be accomplished, with the kind of resource/help I might get from this forum, considering the fact every few expert are available on this one, even an expert like you are only volunteering their spare time here. I would like to hear your comment here.

    BTW, I consider myself a handy person with good hardware/software knowledge in general.

    Thank a lot in advance!

    Bill