无忧启动论坛

标题: 能不能从windows启动管理器启动G4E? [打印本页]

作者: kellllby    时间: 2021-12-24 12:19
标题: 能不能从windows启动管理器启动G4E?
做了一个双启U,原生EFI加mbr,mbr引导的G4D没有问题了,现在突发奇想,能不能从原生EFI启动的管理器中加入G4E启动到G4E的菜单
作者: sunsea    时间: 2021-12-24 13:52
bootmgfw的话绝无可能。
作者: szwp    时间: 2021-12-24 13:54


原生是指主板里的固件吧,其它都是外带的。
作者: liuzhaoyzz    时间: 2021-12-24 15:55
这是很多人的梦想,但是现实很残酷,微软不会同意,会强力打压排斥禁止。        
作者: wintoflash    时间: 2021-12-24 16:00
sunsea 发表于 2021-12-24 13:52
bootmgfw的话绝无可能。

大佬有没有x86下BOOT_APPLICATION_PARAMETER_BLOCK里面FirmwareParametersOffset对应的BL_FIRMWARE_PARAMETERS的文档?

https://www.bv2ex.com/t/532802
作者: sunsea    时间: 2021-12-24 20:07
wintoflash 发表于 2021-12-24 16:00
大佬有没有x86下BOOT_APPLICATION_PARAMETER_BLOCK里面FirmwareParametersOffset对应的BL_FIRMWARE_PARAM ...

我这是没有的,我这没研究过UEFI……Google出来的大部分都没啥用,但是这个似乎有点那个意思,不知道能不能参考:https://github.com/ajkhoury/UEFI-Bootkit

作者: wintoflash    时间: 2021-12-24 20:24
sunsea 发表于 2021-12-24 20:07
我这是没有的,我这没研究过UEFI……Google出来的大部分都没啥用,但是这个似乎有点那个意思,不知道能不 ...
  1. typedef struct _BL_FIRMWARE_DESCRIPTOR
  2. {
  3.         UINT32 Version;
  4.         UINT32 Unknown;
  5.         EFI_HANDLE ImageHandle;
  6.         EFI_SYSTEM_TABLE* SystemTable;
  7. } BL_FIRMWARE_DESCRIPTOR, *PBL_FIRMWARE_DESCRIPTOR;
复制代码

这个不是完整的结构体。EFI_SYSTEM_TABLE* SystemTable 下面还有东西。不过我的汇编水平菜的抠脚,所以搞不定。
http://reboot.pro/index.php?s=3f ... ic=17655&page=3
So in order to run normal UEFI applications, you have to perform a section of platform-specific code (I implemented only in ARM32, which is reverse-engineered from developrmenu.efi from a private Windows Phone Adaption Kit). See my example here: https://github.com/imbushuo/boot-shim

After performing platform-specific initialization code, you takes control of certain things, have interrupt services & exception vector disabled. Then you can do whatever you want with EFI protocols. Simple text input/out works for me.

Things will be easier on x86 / amd64 platforms. I think there is a reference implementation in ReactOS's UEFI library. IDA Pro is helpful to this too. Load symbols, check functions with name started "ArchInitializeContext"... and "ArchSwitchContext".

ReactOS 的实现里面似乎也没有完整的这个结构体。
作者: sunsea    时间: 2021-12-24 20:28
wintoflash 发表于 2021-12-24 20:24
这个不是完整的结构体。EFI_SYSTEM_TABLE* SystemTable 下面还有东西。不过我的汇编水平菜的抠脚,所以 ...

是啊,bootmgfw.efi就是一黑箱,而且M$现在不开放符号包下载只能调试器从网上下载了。想IDA都困难。
作者: szmsys    时间: 2022-1-9 06:32
很简单,把g4e的 bootx.efi 改名 bootmgfw.efi 替换微软的就行了
作者: liuzhaoyzz    时间: 2022-1-9 07:55
szmsys 发表于 2022-1-9 06:32
很简单,把g4e的 bootx.efi 改名 bootmgfw.efi 替换微软的就行了

你这是偷换命题,不是真正地解决问题了。即使替换了,他也还是g4e引导啊,并非是微软的启动管理器引导g4e啊,那和不改名有什么分别?      




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3