Theory on hacking SetupUtility.EFI of Insyde H2O

Discussion in 'BIOS Mods' started by SuperBubble, Dec 28, 2013.

  1. SuperBubble

    SuperBubble MDL Member

    Nov 18, 2011
    For a few days now, I've been trying to fiddle the Insyde H2O BIOS in my notebook to display the hidden Power and Advanced menus. I was also chasing the UEFI Boot options, but that seems easy by comparison, as long as I add the right .EFI modules to the BIOS image as well. But that was pretty academic, since I run 32-bit Windows...

    Anyway, after trawling through disassemblies and decompilations until my eyes went square - my assembly knowledge goes as far as the 6502 processor, and I can't say I know C very well, even after all these years - I've finally given up in disgust, and think I'll just change my POST logo and be done with it.

    Now, before you all run away at the mention of 'Insyde unlock hidden menus' - magic words that seem to be a pretty effective way to kill a thread (or to get totally ignored) here on MDL - hear me out. I HAZ IDEA (that I'm not willing to try out myself for fear of bricking my battle-axe that goes everywhere I go :D).

    Feel free to shoot me down in flames with this - but I've noticed that a lot of Insyde BIOSes (the earlier HP versions, and quite a lot of Acers) seem to suppress the hidden menus in SetupUtility.EFI by skipping menus that match a certain form ID - a blacklist, basically. The solution I saw presented (over on donovan6000's blog) was to hack the code, and NOP out the skip.

    But... what stops us coming from the other direction, and changing the form ID of these hidden menus? Fewer bytes changed (1 < x < 2Mh) - as I understand it, the arrow-key navigation routine probably needs to be hacked too - and a smaller patch is a better patch.

    I can only see two problems - first, it wouldn't work for BIOSes (like mine) that seem to use a white list - only displaying menus that match certain form IDs; and second, I'm not familiar enough with the inner workings of SetupUtility.EFI - since I don't speak AMD64 assembly - to know if changing form IDs could break something else.

    Thoughts? Comments? Rotten fruit thrown at me? :)
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...