3

eip 寄存器为 32 位,每增加一条新指令。那么当它达到 32 位数字的最大值时会发生什么:4294967295。

4

1 回答 1

6

通常,您不会让它发生。%eip 不会无条件递增;它受流控制指令(如jmp, call,bcc等)的影响。

实际上,这种行为是不可预测的。在某些 CPU 上,溢出 %eip 会导致错误。在其他一些情况下,它会默默地归零。

这些差异导致了(原始)Xbox 引导 ROM 的著名利用,因为开发套件使用 AMD CPU(在环绕时出现故障),而生产硬件使用英特尔 CPU(没有)。有关详细信息,请参阅第 140 页左右的《破解 Xbox:逆向工程简介》 。

于 2014-12-26T08:22:52.357 回答