我实现了一个带跳转表的开关构造。 (Windows x86-64)
一切都已建立,但它冻结了。我想我不太明白间接跳跃是如何起作用的。
我设置了跳转表(在说明之前)。使用相对"距离的64位条目"我想跳。例如:
00 00 00 00 00 00 00 00 12 00 00 00 00 00 00 00
(两个值,0和+18,具有正确的字节顺序)
我目前实施的跳转指令:
FF 25 A2 FF FF FF
翻译(使用反汇编程序):
jmp QWORD PTR [rip+0xffffffffffffffa2]
其中读取跳转表中的第一个值(偏移应该是正确的),即零。 所以,不应该将它添加到RIP并且不做任何跳转,i。即继续下一行?