2019年2月23日 星期六

UEFI BIOS Editor

This utility can parse the standard UEFI BIOS image to extract the firmware volumes, firmware files, sections, variables IFR, etc.

Update History

Oct 05, 2022
  • Fixed an exception for the old PCD version.
  • Improved the code to find FIT and Microcode.
April 16, 2022
  • Updated the EfiCompress code to fix the exception when when decompressing some BIOS.
Feb 26, 2020
  • Fixed some bugs.
Feb 23, 2020
  • Improved the parsing speed.
  • DEPEX can be parsed.
Feb 20, 2020
  • Update UI.
  • Fixed some bugs.
  • Search and Find are available in VFR.
Feb 10, 2020
  • Fixed an UNI exception for some BIOS.
Jan 30, 2020
  • Improved EFI Variable.
  • Fixed some bugs.
Jan 19, 2020
  • Fixed some bugs.
Oct 24, 2019
  • Fixed some bugs.
Aug 07, 2019
  • Added language support.
Aug 02, 2019
  • Added Variable compare function.
  • The selected image name will be shown on the title.
  • Fixed some bugs.
Feb 22, 2019
  • Fixed the problem that IFR couldn't be found.
  • Fixed some bugs.
Feb 21, 2019
  • Added BootOption editor.
  • Added DevicePath converter.
  • Variable list is sortable now.
  • Fixed some bugs.
May 18, 2018
  • Changed FFS2 ExtendedSize to UINT64.
  • Fixed some bugs.
Dec 19, 2017
  • Fixed some BIOS couldn't find IFR data.
Nov 20, 2017
  • Variable compatibility enhanced.
Nov 05, 2017
  • IFR interpreter improved.
  • Convert UNI to text.
  • Convert IFR from text.
  • Convert IFR from binary.
Oct 29, 2017
  • Fixed some bugs.
  • IFR interpreter improved.
  • Firmware Contents Signed supported.
May 11, 2017
  • Parse the default variable value. 
September 05, 2016
  • Implemented VFR browser. It now can view the contents of VFR and UNI in the VFR page. 
  • EFI Compress and Tiano Compress supported.
June 28, 2016
  • The first version released.







Download:
UefiBiosEditor.7z

54 則留言:

  1. Hi.
    This Application seems pretty usefull for UEFI Editing. I would like to use it more, but unfortunatly VFR doesn't seem to work for me.

    I also would have some kind of feature request.

    -Make the colums able to sort (by Index, Name, Attributes)
    -Possibility to export/report Variables as plain text (in current, sorted view) (for compare) with optional Data option.

    The Error with VFR:


    ************** Ausnahmetext **************
    System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
    bei UefiBiosEditor.FirmwareForm.tvVfrs_AfterSelect(Object sender, TreeViewEventArgs e)
    bei System.Windows.Forms.TreeView.OnAfterSelect(TreeViewEventArgs e)
    bei System.Windows.Forms.TreeView.TvnSelected(NMTREEVIEW* nmtv)
    bei System.Windows.Forms.TreeView.WmNotify(Message& m)
    bei System.Windows.Forms.TreeView.WndProc(Message& m)
    bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


    Would be great to hear from you.

    回覆刪除
    回覆
    1. I will consider how to implement your suggestion.
      Thank you.

      刪除
    2. Variable list columns is sortable now.
      Thank you~

      刪除
    3. Hi ONEX,
      I think the latest version could solve your problem. Please try it.
      Thanks!!!

      刪除
  2. While loading it says Error: "Dashes are in the wrong position for GUID parsing."

    And I don't understand how to use IFR From Binary, but I guess it's related to the problem.

    Tested several different machines with the same result.
    I tested with different ThinkPad and Surface bios.

    回覆刪除
    回覆
    1. Thanks for your trying.
      I just tried ThinkPad laptop BIOS, it could parse the IFR.

      For IFR From Binary, you can try to open an EFI file (a Setup page DXE module) which contains IFR. It will try to find the UNI OpCode and FormSet OpCode from the file but I'm not sure if there is the compatibility problem...

      I don't have to many sample to try but I will try to find Surface BIOS to check your problem.

      刪除
  3. Yes this version works again. Thanks so far! ;)
    In the meantime I worked with an older Version which had no problems with IFR

    Feature requests:
    #Variables
    - Edit mutiple Values at once (so you can delete moree than one at a time or apply flags to them)
    - Filter as Buttons in Toolbar. for alle Options like BS, RT, Invalid and so on... // It´would be way quicker. I'm thinking buttons like in Procmon (Show Registry, File System, Process/Threads)

    VFR
    It would be somewhat usefull if there would be a simplefied view. Some mix between tree and text. (Plain as Text but with the informations of tree, without too deep informations with only text and conditions shown)
    That you don't see too much information like all the Token and String definition or any other Descriptor at all... just plaintext names. Like other IFR Extractor do. So every string should just replaced through the string itself with no more descriptor. I also would like to see an option like "help" and others can be selected as hidden.

    Also it would be somewhat cool in tree view not to select en-us every time. You could put some setting in global settings which let the user choose which default language should be opend

    Something very advanced but maybe usefull could be to have some hover-over element to the binary view of the NVDate. If you hover over some byte it will show you the setting from VFR. I could also imagine some kind of visual structuring like even/odd "lines" for every setting from the store. So that you can see how many bytes (most of the time 1) is used for some kind of setting. this could be somewhat helpfull to discover maybe more hidden settings.

    It would be also nice to have some kind of hover toopltips to e.g. the Attributes

    回覆刪除
  4. This is a really great program that I use frequently. It doesn't seem to have gotten much notice yet on any of the major english BIOS modding sites. Is the source code available? (I'm sure that would make a big difference)

    回覆刪除
    回覆
    1. Thank you. Yeah, maybe it's because the earlier articles were written by Chinese.
      No, I haven't released the source code yet. I'm not sure if I will do it in the future.

      刪除
  5. Tried on HP Insyde BIOS
    Unhandled exception has occured ....

    ************** Exception Text **************
    System.NullReferenceException: Object reference not set to an instance of an object.
    at UefiBiosEditor.FirmwareForm.BackgroundWorker_RunWorkerCompleted(Object sender, RunWorkerCompletedEventArgs e)
    at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
    at System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)

    more ...

    回覆刪除
    回覆
    1. I don't have the HP BIOS...
      Do you have more the exception information? Or could you send me the BIOS?
      Thank you.

      刪除
  6. Here is it
    https://www92.zippyshare.com/v/98iLAfxz/file.html
    It may be because is old EFI version.
    Is locked in legacy mode,only some diagnostics and flashing-recovery BIOS are EFI
    Thanks!

    回覆刪除
    回覆
    1. I have fixed the exception problem.
      BTW, there is another problem. The first FV's Compression Section can be decompressed but the decompressed data (RAW Section) cannot be parsed to FV (DXE). Because it seems HP/Insyde added some extra data in the header.
      If you want to look into the contents of the FV, please export (right click) the RAW SECTION and use any HEX editor to remove the first 16 bytes (0x10 0x00 0x60 0x19 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x41 0x0D 0x0A), than open the edited file with UefiBiosEditor.

      刪除
  7. I'm just starting with your version from 19 January. It's a nice tool!

    An unhandled exception occurred.

    ************** Exception Text **************
    System.NullReferenceException: The object reference was not defined to an object instance.
    for UefiBiosEditor.FirmwareForm.ConstructVfrTree(EfiFirmwareImage image)
    for UefiBiosEditor.FirmwareForm.BackgroundWorker_RunWorkerCompleted(Object sender, RunWorkerCompletedEventArgs e)
    for System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
    for System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)

    What I don't understand how do save (export) the whole BIOS file without loosing my modifications. I replaced/delete/add environment variables like Bootxxxx and BootOrder. So far so good. After the export and reload of the BIOS file the changes are gone. What am I doing wrong?
    Thanks!

    回覆刪除
  8. Hi GB, Have you tried to save the BIOS from the Main Menu? You can also press Ctrl+S to open the save dialog.

    The exception problem might be caused by the VFR parsing code but I'm not sure which one causes the it...
    Could you send me the BIOS file?
    Thanks.

    回覆刪除
  9. Hi,
    Crtl+S is grayed no matter which menu item I select. I attached 2 BIOS versions.
    Original BIOS file:
    https://drive.google.com/file/d/1ZL8zBXi5VSfWcxDYGqF35NcBTjAZox9L/view?usp=sharing
    Original BIOS with saved user defaults and exported from the mainboard:
    https://drive.google.com/file/d/1lIbvachgmW7lbAPyoI9NrW3xZgUF_fpo/view?usp=sharing

    Thanks!
    GB

    回覆刪除
    回覆
    1. Hi GB, I download your BIOS files. I fixed the exception problem and made some improvement for Variable. Would you like to try it again?

      Thanks.
      Leon

      刪除
  10. Hi Leon,
    Great and thanks! Variables can be added/modified,no exception and everything can be saved.

    Can you give me tips which documents I have to read in order to get more knowledge about EFI bios. Currently I start reading the UEFI spec.

    For the moment I would like to understand how to fix the boot medias e.g. boot from hdd if no usb stick is connected or boot from usb stick if it is connected.

    Thanks.
    GB

    回覆刪除
    回覆
    1. Hi GB,
      You can study UEFI Spec and UEFI PI Spec but I think the specs only provide the general information, architecture and interface.
      Your problem is more like the boot behavior which might be designed by IBV/OEM. You can study UEFI Spec to understand about Boot Option (EFI_LOAD_OPTION "3.1.3 Load Options") and Device Path ("10.2 EFI Device Path Protocol"), and also study the source code to check how they process Boot Options.

      If you want the boot option of USB stick as higher priority, you have to also check the BootOrder variable to keep the boot option as front as possible.

      Thanks.
      Leon

      刪除
  11. Hi Leon,
    Thanks.
    I modified the BootOrder also. But the result looks different to what I had expected. Therefore I assumed that there are other influencing factors. By the way, your app is the most versatile program I could find so far.
    Thanks
    GB

    回覆刪除
  12. I have problem VFR doesn't seem to work for me
    bios file : https://ufile.io/rz0ardjh
    notebook model acer nitro 5 an515-43

    回覆刪除
    回覆
    1. Hi f313superpower,
      I have fixed it, please try the latest version.
      It seems the flash layout of the BIOS is a little different the other BIOS, I cannot parse all of it.

      刪除
  13. hello bios editing tool, amd cbs settings are many settings like power, but when i enter my computer bios, these settings do not appear in the bios, i think how can I activate hidden menus because i am really knowledgeable about bios thank you
    I want amd cbs settings
    bios file https://ufile.io/rz0ardjh

    回覆刪除
    回覆
    1. Hi f313superpower, Do you have the source code? If you have the source code, you can study the VFR files to check if some items/settings are hidden by some Variables. Although my tool can parse IFR, they might not be parsed correctly.

      If you don't have the source code, you can open the ROM with my tool and go to the VFR tab.
      I think you can check SetupUtility or AmdPbsSetupDxe, maybe the items are in the VFR.

      刪除
    2. I don't know how to show hidden settings

      刪除
  14. Hello,
    you made an awesome tool!
    Do you have any plans to add support for MacOS or Linux? (or are you planning to release the source?)

    Greetings from Italy :)
    Alessandro

    回覆刪除
    回覆
    1. Hi poz1,
      Thank you!!!
      No, it won't support the other OS, it is developed by C# and I don't have time to translate it to other languages. I also don't have plan to release the source now...

      刪除
  15. hello insyde bios for If you make a program to open hidden settings for bios, we will be very happy too many people are having this problem.

    回覆刪除
    回覆
    1. Hi f313superpower, I cannot help you because I don't know how Insyde BIOSS control the hidden settings.
      The BIOS doesn't have enough information to check.

      刪除
  16. insyde bios hidden settings info
    https://web.archive.org/web/20160916212113/http://donovan6000.blogspot.com/2013/06/insyde-bios-modding-advanced-and-power-tabs.html

    https://web.archive.org/web/20160916214340/http://donovan6000.blogspot.com/2013/07/insyde-bios-modding-hidden-settings.html

    回覆刪除
  17. Hi, will you be open sourcing this tool?

    回覆刪除
  18. See the end of this message for details on invoking
    just-in-time (JIT) debugging instead of this dialog box.

    ************** Exception Text **************
    System.ArgumentException: Source array was not long enough. Check srcIndex and length, and the array's lower bounds.
    at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable)
    at Uefi.EdkVariable.ParseVariable(EdkVariableType type, Byte[] nvsData, Int32 offset)
    at Uefi.SystemNvDataFv.ProcessNvStorage()
    at Uefi.SystemNvDataFv..ctor(EFI_FIRMWARE_VOLUME_HEADER fvh, Byte[] image, Int32 vshOffset)
    at Uefi.EfiFirmwareVolume.ProcessFirmwareVolume()
    at Uefi.EfiFirmwareVolume..ctor(EFI_FIRMWARE_VOLUME_HEADER fvh, Byte[] image, Int32 offset)
    at Uefi.EfiFirmwareImage.BuildFirmwareVolume(Byte[] image)
    at Uefi.EfiFirmwareImage..ctor(Byte[] image)
    at UefiBiosEditor.FirmwareForm.BackgroundWorker_DoWork(Object sender, DoWorkEventArgs e)
    at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
    at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

    回覆刪除
  19. Hi :) at first many thanks for this tool, is the best i've found on the net... i have troubes while editing and saving changes on the "EFI SECTION FIRMWARE VOLUME IMAGE" I can save the file but once i open the saved version there are no changes on it, the file is an HP Bios
    https://drive.google.com/file/d/1kDq-MFxjNWXUvWNCs-mmVsPxNxBKd2Cp/view?usp=sharing

    回覆刪除
    回覆
    1. Hi psygum, sorry for confusing you. Currently, the changes in Firmware tab won't be applied. There are some problems with compressed data after editing. Especially, a lot of BIOS ROMs are protected by Intel BootGuard or other security features. If we changed the data in the ROM, it may cause system cannot power on. so I haven't opened this function yet...

      刪除
    2. I see, I know that doing some changes in the ROM is risky but it really could help me a lot because i'm editing sheet by sheet and then rebuilding to put it back together

      刪除
  20. nice tool , btw can it reset UEFI password ?

    回覆刪除
    回覆
    1. It depends on where the password is stored. If the password is stored in UEFI Variable, we can delete the password variable or all variables. Each computer brand has its own design, so I'm not sure...

      刪除
  21. Most new Dell UEFI files now have 2 DVAR (Dell variable) sections in the padding file, the second one starting at 8000h address. Your program only sees and reports the first set of Dell variables. Can you add functionality to the program to see both DVAR sections in order to make edits? Thank you.

    回覆刪除
  22. Hello,
    I hope you could help me, i have this Lenovo Desktop PC, T5-26AMR5, and i have one problem with BIOS system, the Wake On Lan functionality won't work..
    I have contacted the support etc, there is a BUG in the BIOS i think probably related to ErP functionality.
    No one can help me.. support etc... could you have some way to remove this ErP shit from BIOS or fix the WOL?
    The problem is that when the PC go in every S state (S1-3,S4,S5) the bios power off the LAN...

    The link for BIOS download: https://support.lenovo.com/us/en/downloads/ds546530-bios-for-window-10-64-bit-legion-t5-26amr5-desktop

    Best Regards
    Stefano

    回覆刪除
  23. 很棒的tool, 我也是BIOS工程師, 目前也正在做類似功能(Parsing IFR/UNI), 想請教:
    我是用GUID 8913C5E0-33F6-4D86-9BF1-43EF89FC0666找尋UNI, D0BC7CB4-6A47-495F-AA11-710746DA06A2找尋IFR的offset, 除了Setup這個module之外, 其他的都能找到, 但您的tool卻能找到. 請問能否指導一下, 是如何辦到的?
    註: 若方便, 可以私我的賴: tianmuer, 感謝!

    回覆刪除
  24. Great program, thank you! On some bioses i get an array out of bounds exception trying to load the bios. Example: Asus H81M-K bios 3604 (cap file) and Lenovo M92 bios update (9sjt9cusa.zip, Image9s.cap), and also backed up bios image.

    The backtrace is as follows:
    ************** Exception Text **************
    System.IndexOutOfRangeException: Index was outside the bounds of the array.
    at Uefi.EfiDecompress.Decode()
    at Uefi.EfiDecompress.Decompress(CompressType type, Byte[] source, Byte[] destination)
    at Uefi.EfiSectionCompression..ctor(EFI_COMMON_SECTION_HEADERS headers, Byte[] image, Int32 offset)
    at Uefi.EfiSection.ParseSection(Byte[] image, Int32 offset, Int32 fileLength)
    at Uefi.EfiFirmwareFile.ProcessFirmwareFile()
    at Uefi.EfiFirmwareFile.ParseFirmwareFile(Byte[] image, Int32 offset, Int32 fileLength, Boolean erasePolarity)
    at Uefi.EfiFirmwareVolume.ProcessFirmwareVolume()
    at Uefi.EfiFirmwareVolume..ctor(EFI_FIRMWARE_VOLUME_HEADER fvh, Byte[] image, Int32 offset)
    at Uefi.EfiFirmwareImage.BuildFirmwareVolume(Byte[] image)
    at Uefi.EfiFirmwareImage..ctor(Byte[] image)
    at UefiBiosEditor.FirmwareForm.BackgroundWorker_DoWork(Object sender, DoWorkEventArgs e)
    at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
    at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

    回覆刪除
    回覆
    1. Thank you for reporting this issue, I have fixed it. It has been 2 years, I didn't update this tool...

      刪除
  25. Greetings,

    The UEFI BIOS Editor is a remarkable tool and it is highly appreciated by many users, I would like to inquire regarding how to close BIOS files when more than one are opened?

    And is there away to send private messages to your email to request your guidance regarding a tool based on EDK II that its author stopped developing it?

    Many thanks in advance.

    回覆刪除
    回覆
    1. Hi Sat,
      You can close the BIOS file by middle-clicking on the BIOS tab.
      Sorry, it's hard to make my email public... Could you leave your questions or your contact here?

      刪除
    2. Thank you very much for the quick and nice reply,

      Please feel free to email me at lucky.jackie898@gmail.com, I think what I am going to share with you should be interesting.

      刪除
  26. 作者已經移除這則留言。

    回覆刪除
    回覆
    1. I have Asus Rog Strix z270e, when i open the bios file using the UEFI tool i get this error.

      ************** Exception Text **************
      System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
      Parameter name: index
      at System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
      at System.Collections.Generic.List`1.get_Item(Int32 index)
      at UefiBiosEditor.UefiUserControl.AddPcdToList(TreeNode node, PcdDatabase pcd)
      at UefiBiosEditor.UefiUserControl.ConstructPcdDatabase(EfiFirmwareImage image)
      at UefiBiosEditor.UefiUserControl.Construct(EfiFirmwareImage firmwareImage)
      at UefiBiosEditor.FirmwareForm.BackgroundWorker_RunWorkerCompleted(Object sender, RunWorkerCompletedEventArgs e)
      at System.ComponentModel.BackgroundWorker.OnRunWorkerCompleted(RunWorkerCompletedEventArgs e)
      at System.ComponentModel.BackgroundWorker.AsyncOperationCompleted(Object arg)


      ************** Loaded Assemblies **************
      mscorlib
      Assembly Version: 4.0.0.0
      Win32 Version: 4.8.4510.0 built by: NET48REL1LAST_B
      CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
      ----------------------------------------
      UefiBiosEditor
      Assembly Version: 1.0.0.0
      Win32 Version: 1.0.0.0
      CodeBase: file:///C:/Users/Hyperx/Downloads/UefiBiosEditor_20220416/UefiBiosEditor/UefiBiosEditor.exe
      ----------------------------------------
      System.Windows.Forms
      Assembly Version: 4.0.0.0
      Win32 Version: 4.8.4488.0 built by: NET48REL1LAST_C
      CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
      ----------------------------------------
      System
      Assembly Version: 4.0.0.0
      Win32 Version: 4.8.4488.0 built by: NET48REL1LAST_C
      CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
      ----------------------------------------
      System.Drawing
      Assembly Version: 4.0.0.0
      Win32 Version: 4.8.4390.0 built by: NET48REL1LAST_C
      CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
      ----------------------------------------
      System.Configuration
      Assembly Version: 4.0.0.0
      Win32 Version: 4.8.4190.0 built by: NET48REL1LAST_B
      CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
      ----------------------------------------
      System.Core
      Assembly Version: 4.0.0.0
      Win32 Version: 4.8.4470.0 built by: NET48REL1LAST_C
      CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
      ----------------------------------------
      System.Xml
      Assembly Version: 4.0.0.0
      Win32 Version: 4.8.4084.0 built by: NET48REL1
      CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
      ----------------------------------------

      ************** JIT Debugging **************
      To enable just-in-time (JIT) debugging, the .config file for this
      application or computer (machine.config) must have the
      jitDebugging value set in the system.windows.forms section.
      The application must also be compiled with debugging
      enabled.

      For example:





      When JIT debugging is enabled, any unhandled exception
      will be sent to the JIT debugger registered on the computer
      rather than be handled by this dialog box.


      刪除
    2. Thanks for reporting this problem. I have fixed it. Please try the new version.

      刪除
  27. Hi, thank you for this fantastic tool. I have seen it was written in C#. Do you have thought to convert it to .Net7.0 or 8.0 and Avalonia (or other) to create a cross-platform ? I can help/do for you if you need.
    I use it to explore firmware of a Lenovo laptop and it seems to work fine. Tomorrow, I hope to receive my CH341A programmer to backup current firmware to secure my tests. After that, I will contiue to test your tool and have a lot of ideas ! Thanks again

    回覆刪除
  28. Hi Leon, I'm having a problem saving the bios.
    I attach the Bios that I need to modify and photos for you to see, I only need to change values of the assigned Vram that is by default at 64mb, change it to 128mb and another 512mb bios to see which of the 2 works better, just that. Many thanks to you and your program that is easy to use, I was able to learn a Little.


    See the end of this message for more details on how to invoke debug
    Just-In-Time (JIT) instead of this dialog box.

    ************** Exception text **************
    System.OverflowException: The arithmetic operation caused an overflow.
    in Uefi.SystemNvDataFv.Build()
    in Uefi.EfiFirmwareVolume.Build()
    in Uefi.EfiFirmwareImage.Build()
    in UefiBiosEditor.FirmwareForm.tsmiMainSave_Click(Object sender, EventArgs e)
    at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
    in System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
    at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
    at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
    at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
    at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
    in System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
    in System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
    in System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    in System.Windows.Forms.Control.WndProc(Message& m)
    in System.Windows.Forms.ScrollableControl.WndProc(Message& m)
    in System.Windows.Forms.ToolStrip.WndProc(Message& m)
    in System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
    in System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    in System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


    ************** Assemblies loaded **************
    mscorlib
    Assembly version: 4.0.0.0
    Win32 version: 4.8.9181.0 built by: NET481REL1LAST_C
    Code base: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
    ----------------------------------------
    UefiBiosEditor
    Assembly version: 1.0.0.0
    Win32 version: 1.0.0.0
    Code base: file:///C:/Users/leeni/Desktop/UefiBiosEditor.exe
    ----------------------------------------
    System.Windows.Forms
    Assembly version: 4.0.0.0
    Win32 version: 4.8.9181.0 built by: NET481REL1LAST_C
    Code base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
    ----------------------------------------
    system
    Assembly version: 4.0.0.0
    Win32 version: 4.8.9206.0 built by: NET481REL1LAST_B
    Code base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
    ----------------------------------------
    System.Drawing
    Assembly version: 4.0.0.0
    Win32 version: 4.8.9032.0 built by: NET481REL1
    Code base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll

    回覆刪除
  29. System.Configuration
    Assembly version: 4.0.0.0
    Win32 version: 4.8.9032.0 built by: NET481REL1
    Code base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
    ----------------------------------------
    System.Core
    Assembly version: 4.0.0.0
    Win32 version: 4.8.9200.0 built by: NET481REL1LAST_C
    Code base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
    ----------------------------------------
    System.Xml
    Assembly version: 4.0.0.0
    Win32 version: 4.8.9032.0 built by: NET481REL1
    Code base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
    ----------------------------------------
    Accessibility
    Assembly version: 4.0.0.0
    Win32 version: 4.8.9032.0 built by: NET481REL1
    Code base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
    ----------------------------------------
    System.Windows.Forms.resources
    Assembly version: 4.0.0.0
    Win32 version: 4.8.9032.0 built by: NET481REL1
    Code base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_es_b77a5c561934e089/System.Windows.Forms.resources.dll
    ----------------------------------------
    System.resources
    Assembly version: 4.0.0.0
    Win32 version: 4.8.9032.0 built by: NET481REL1
    Code base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.resources/v4.0_4.0.0.0_es_b77a5c561934e089/System.resources.dll
    ----------------------------------------
    mscorlib.resources
    Assembly version: 4.0.0.0
    Win32 version: 4.8.9032.0 built by: NET481REL1
    Code base: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_es_b77a5c561934e089/mscorlib.resources.dll
    ----------------------------------------
    JIT debugging **************
    To enable Just In Time (JIT) debugging, the configuration file for this
    application or machine (machine.config) must have the
    jitDebugging value set in the system.windows.forms section.
    The application must also be compiled with debugging
    enabled

    https://drive.google.com/file/d/1jYuV1ImDlvC22bmDVkTkFe0XRSMqSAxP/view?usp=drive_link

    回覆刪除
  30. Hey, its me again. ;)

    I still really like the tool and just wanted to give some appreachitaon and wanted to ask if you still maintain your tool.

    I also would have a few comfort or feature request that you might think also can be usefull.

    1) Mutil selction in Variable: [I guess small impact]
    I would like to see a feature to select mutiple vars and delete them. (I know about reclaiming but maybe you only want to delete vars at a certain state oder with certain attributes or so.)

    2) Implement Overlays / Tooltip or a Statusbar. [big impact, but would be a very very nice unique feature]
    E.g. in VFR Window with an opened Variable. Create a hover / tooltip over the byte in the hex view. So while hovering over a Byte it shows (human readable) what this Byte does / which BIOS setting it is. In which Modul (e.g. Setup) it is set. Maybe only types with 1 Byte (but most of them are just 1 byte). E.g. Setup is open, hovering over offset 1f shows that this is the setting for Overclocking XYZ, Defined in AdvancedOptionsDXE.. something like that.

    Thanks so much for you effort and tool so far. :)

    回覆刪除