Step to UEFI (213)EFI 的WinPE 格式研究

这一系列文章并不是按照“由浅入深”的原则排列的,更多的是按照“任务驱动”的方式编写的。就是按照:提出问题,解决问题,为什么能解决问题,是否还有其他解决问题的方法,原理探究的方式进行排列的。这种方式可以帮助你快速掌握编程技术,当然要想实现这个目标更重要的是要亲手操作研读代码。

前面的文章中介绍过[......]

阅读全文

Step to UEFI (211)调用 ConOut 的条件(下)

前面的研究中提到了调用 ConOut 必须满足的2个条件,这次就研究一下其中的另外条件:

“代码起始处的 push rdi , 不一定是RDI,任何8Bytes的寄存器都可以,但是如果没有这语句在调用ConOut的时候这个函数内部会发生错误”

针对这个问题,使用单步跟踪的方式,尝试定位出[......]

阅读全文

Step to UEFI (210)调用 ConOut 的条件(上)

前面的研究中提到了调用 ConOut 必须满足的2个条件,这次就研究一下其中的一个条件:

“实践发现在调用 SystemTable->ConOut 的时候会损坏堆栈,比如下面的调用方式(按道理2个参数的情况下是通过寄存器来进行参数传递的)

运行之后会发现 rdx 值发生了变化”[......]

阅读全文