【发布时间】:2016-03-18 23:37:59
【问题描述】:
我们在一个缓冲区中,正在查看 x86 操作码。 |标记当前指针。
68 0F 00 6A 90 | 00
找到下一条指令的开始很容易,因为电流的大小是可以确定的。但是你怎么能稍微准确地猜出前一个的开始呢?
68 0F 00 6A 90 - 总共 5 个字节,结束于 |
0F 00 6A 90 - 总共 4 个字节,结束于 |
00 6A 90 - 共 3 个字节,结束于 |
6A 90 - 共 2 个字节,结束于 |
90 - 总共 1 个字节,以 | 结束
显然这不是一个实际示例,但它说明了问题所在。这与其说是一个问题,倒不如说是一个好奇心,但现代反汇编程序是如何准确猜测的呢?他们是否存储带有调用/跳转引用的点并找到与当前指令结束的最近标签的最近地址?
【问题讨论】: