Step to UEFI (242)写一个输出当前 IP 的函数

前面的文章中,我们写过输出当前IP 的代码,这次,我们要尝试将这个代码编写为C的函数方便我们调用。

因为 X64 无法内嵌汇编,我们值得参考其他的函数,用如下三步可以实现:

1. \MdePkg\Include\Library\BaseLib.h 中加入函数头定义

2. \Md[......]

阅读全文

Step to UEFI (240)分析第一条 Debug Log 的输出方法

前面提到,Debug Log 中的第一条信息位于 SecMain.c 中的 SecCoreStartupWithStack() 函数中:

这次就分析一下 OVMF 这段代码的具体实现方式。DEBUG 这个宏,之前我们有分析过,有兴趣的读者可以在【参考1】看到之前的文章。

1.这里的[......]

阅读全文

Step to UEFI (239)MainAsm跳转到SecEntry的证明

前面提到了 Main.asm 中的 Main16 最后会跳转到 SecEntry.nasm 中,这次用实验来证明这一点。

在Main.asm跳转代码如下,前面找到的地址放在 rsi 中,然后直接跳转到该地址:

这里加入代码,从0x402 Port输出 rsi的值:

接下来在[......]

阅读全文