[UEFITool] UEFI firmware image viewer and editor

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

  1. CodeRush

    CodeRush MDL Member

    Joined:
    Jun 20, 2011
    Messages:
    221
    Likes Received:
    667
    Trophy Points:
    10
  2. FredWst

    FredWst MDL Novice

    Joined:
    Nov 18, 2013
    Messages:
    11
    Likes Received:
    13
    Trophy Points:
    0
  3. krack38

    krack38 MDL Novice

    Joined:
    Aug 26, 2009
    Messages:
    7
    Likes Received:
    10
    Trophy Points:
    0
    With phoenixTool 2.19, the structure is like in uefitool.



    The compression action is active ?
    Because it's always disabled or don't know how to use it.

    Edit: i didn't see the 0.9.2, i'll test and report
     
  4. CodeRush

    CodeRush MDL Member

    Joined:
    Jun 20, 2011
    Messages:
    221
    Likes Received:
    667
    Trophy Points:
    10
    krack38, pad files GUID will always be FFs or 00s depending on volume erasePolarity bit in images modded by UEFITool, but there is no difference, because GUID of pad file must not be read according to PI specifications.
    Compression mode change can be used only if compressed section is selected.
     
  5. krack38

    krack38 MDL Novice

    Joined:
    Aug 26, 2009
    Messages:
    7
    Likes Received:
    10
    Trophy Points:
    0
    Ok, with 0.9.2. Mmtool reports same structure.

    Will test compression and report.
     
  6. krack38

    krack38 MDL Novice

    Joined:
    Aug 26, 2009
    Messages:
    7
    Likes Received:
    10
    Trophy Points:
    0
    Compression works nicely !!!

    I like the way to compress module :biggrin: without extracting and insert it compressed mmtool's way
    and we can batch modules remove !!!


    But Correct me if i'm wrong.

    We can change the compression only in the compressed section of the module.
    But if we insert an uncompressed module, there's no compression section in the module.
    How can we compress this module ?

    Can you explain the Rebuild button ?

    Edit:
    When i compress some modules (TcpDxe to Udp6Dxe), i free space in volume 2 but the volume 1 grows as Total bytes used:

    Total Bytes Free : 021ED0 ( 135 KB) Total Bytes Used : 3DE130 (3960 KB)
    Total Bytes Free : 010D78 ( 67 KB) Total Bytes Used : 3EF288 (4028 KB)

    I assume it's the same explanation that you wrote to xpamamadeus.
     
  7. CodeRush

    CodeRush MDL Member

    Joined:
    Jun 20, 2011
    Messages:
    221
    Likes Received:
    667
    Trophy Points:
    10
    krack38, you are right about compression, the ability to compress previously uncompressed module will be added later (together with "Extract uncompressed", because they will use the same code). That is why the action called "Change compression method". :)

    About the Rebuild action: imagine that you have done some manual modification (or just ran PMPatch on some complex structured BIOS) and some of checksums became invalid. You opened that modified BIOS with UEFITool and saw message about invalid checksum. You don't need to change BIOS structure, just to correct checksums and stuff. The way to do it is Rebuild. As you can see, all other operations apply Rebuild on all parents of their target, so resulting file has (if there are no bugls like in version before 0.9.2) a valid structure.

    Yep, it's the same thing. Second volume is located inside compressed section of file in first volume, and double compression of the same data will very unlikely produce smaller data.
     
  8. CodeRush

    CodeRush MDL Member

    Joined:
    Jun 20, 2011
    Messages:
    221
    Likes Received:
    667
    Trophy Points:
    10
  9. CodeRush

    CodeRush MDL Member

    Joined:
    Jun 20, 2011
    Messages:
    221
    Likes Received:
    667
    Trophy Points:
    10
  10. XpamAmAdEuS

    XpamAmAdEuS MDL Novice

    Joined:
    Oct 24, 2009
    Messages:
    46
    Likes Received:
    15
    Trophy Points:
    0
    thx for this explanation.
    Maybe its too much but can u compress coredxe and doo such modification for me?
    or make more detailed how to do it becouse i am not sure if i get all right.
     
  11. CodeRush

    CodeRush MDL Member

    Joined:
    Jun 20, 2011
    Messages:
    221
    Likes Received:
    667
    Trophy Points:
    10
  12. XpamAmAdEuS

    XpamAmAdEuS MDL Novice

    Joined:
    Oct 24, 2009
    Messages:
    46
    Likes Received:
    15
    Trophy Points:
    0
  13. CodeRush

    CodeRush MDL Member

    Joined:
    Jun 20, 2011
    Messages:
    221
    Likes Received:
    667
    Trophy Points:
    10
    XpamAmAdEuS, one addition: do not compress any of inserted FFS in volumes, that will later be compressed, because it only make resulting compressed section bigger. If modules don't fit, UEFITool will increase volume size automatically.
    Check it yourself that I have uncompressed all Osmozis-related modules after inserting.
    You can either insert your kexts uncompressed, or change compression type of an inserted kext to "Uncompressed" right after insertion.
     
  14. XpamAmAdEuS

    XpamAmAdEuS MDL Novice

    Joined:
    Oct 24, 2009
    Messages:
    46
    Likes Received:
    15
    Trophy Points:
    0
    Thx.
    Good to know.
    But what about flashing this bios?
    Why it fail to flash with all methods i try ?
     
  15. CodeRush

    CodeRush MDL Member

    Joined:
    Jun 20, 2011
    Messages:
    221
    Likes Received:
    667
    Trophy Points:
    10
    Try afudos bios.rom /gan from DOS-bootable USB drive.
     
  16. XpamAmAdEuS

    XpamAmAdEuS MDL Novice

    Joined:
    Oct 24, 2009
    Messages:
    46
    Likes Received:
    15
    Trophy Points:
    0
    Not working.
    Error getting firmware info.
     
  17. CodeRush

    CodeRush MDL Member

    Joined:
    Jun 20, 2011
    Messages:
    221
    Likes Received:
    667
    Trophy Points:
    10
  18. CodeRush

    CodeRush MDL Member

    Joined:
    Jun 20, 2011
    Messages:
    221
    Likes Received:
    667
    Trophy Points:
    10
    0.11.0 sources are pushed to the repo, binaries will be ready tomorrow.

    Changes:
    - UI reworked once again, I hope it's the last big UI rework
    - Search for hex pattern and text string (both ASCII and Unicode) implemented
    - Window position, size, tree widget size and width of all columns are now stored in and loaded from ini file
    - Code slightly refactored

    Known issue:
    - Qt 5.2 is still not released, so OSX version may crash on opening BIOS image file

    To be implemented next:
    - Autopatching engine and "Replace" action
     
  19. CodeRush

    CodeRush MDL Member

    Joined:
    Jun 20, 2011
    Messages:
    221
    Likes Received:
    667
    Trophy Points:
    10
    0.11.0 binary for Windows uploaded.
     
  20. CodeRush

    CodeRush MDL Member

    Joined:
    Jun 20, 2011
    Messages:
    221
    Likes Received:
    667
    Trophy Points:
    10