eip 寄存器为 32 位,每增加一条新指令。那么当它达到 32 位数字的最大值时会发生什么:4294967295。
user4344762
问问题
186 次
1 回答
6
通常,您不会让它发生。%eip 不会无条件递增;它受流控制指令(如jmp
, call
,bcc
等)的影响。
实际上,这种行为是不可预测的。在某些 CPU 上,溢出 %eip 会导致错误。在其他一些情况下,它会默默地归零。
这些差异导致了(原始)Xbox 引导 ROM 的著名利用,因为开发套件使用 AMD CPU(在环绕时出现故障),而生产硬件使用英特尔 CPU(没有)。有关详细信息,请参阅第 140 页左右的《破解 Xbox:逆向工程简介》 。
于 2014-12-26T08:22:52.357 回答