如何在CEntryPoint阶段就挂上NDB

2024.04.12
实验环境:

如果能够更早地在NDB中断下来,就能够跟踪到UEFI更多的执行细节,对关键代码跟踪一遍,好过多遍阅读源代码。

更多的准备细节可参考:
UEFI启动后的快速手动断点

How:
只需在CEntryPoint开头加上两行代码,第一行开SD口复用成JTAG+UART,第二行,延时5秒,让NDB有足够时间挂上。

为了第一时间看有没有断下来,还用NDB原来已经加载的旧符号,马上break,不错,还在栈底:

在Ghidra中验证一下位置,确实还在延时的循环中:

当前pc是个跳转:

比较、循环:

UEFI实战源代码可以如此自由地修改、编译、写入、运行,并可立即自由地在NDB中断下来观察学习,可以飞的感觉。

作者:朱博渊  创建时间:2024-04-12 13:51
最后编辑:朱博渊  更新时间:2024-12-20 17:01