我正在尝试反汇编原始Xbox的BIOS代码,但是我在设置涉及保护模式分段的外部参照时遇到了麻烦 . 例如,指令:
seg001:FFCE jmp large far ptr 8:0FFFFFE00h
段选择器 8
引用具有段基0的GDT条目,因此结果地址应为 0FFFFFE00h
,但IDA将其视为实模式段基;结果,它结束了一个无效的外部参照来解决 0FFFFFE80h
,它位于一条指令的中间 .
我已经尝试手动输入指令,但是我没有得到地址的外部参照 . 我可以将选择器字节修补为零,但我希望有更好的方法 . 是否可以告诉IDA为给定的段选择器使用自定义基址?如果没有,是否有比修补更好的解决方法?
1 回答
在寻找一些IDC文件后,我找到了一个名为
SetSelector
的函数,它设置了给定选择器的基址 . 所以,我需要做的就是在脚本中手动添加一个调用,将selector0x8
的基数设置为0: