首页 文章

IDA中的保护模式分段

提问于
浏览
0

我正在尝试反汇编原始Xbox的BIOS代码,但是我在设置涉及保护模式分段的外部参照时遇到了麻烦 . 例如,指令:

seg001:FFCE jmp large far ptr 8:0FFFFFE00h

段选择器 8 引用具有段基0的GDT条目,因此结果地址应为 0FFFFFE00h ,但IDA将其视为实模式段基;结果,它结束了一个无效的外部参照来解决 0FFFFFE80h ,它位于一条指令的中间 .

我已经尝试手动输入指令,但是我没有得到地址的外部参照 . 我可以将选择器字节修补为零,但我希望有更好的方法 . 是否可以告诉IDA为给定的段选择器使用自定义基址?如果没有,是否有比修补更好的解决方法?

1 回答

  • 0

    在寻找一些IDC文件后,我找到了一个名为 SetSelector 的函数,它设置了给定选择器的基址 . 所以,我需要做的就是在脚本中手动添加一个调用,将selector 0x8 的基数设置为0:

    SetSelector(0x8, 0);
    

相关问题