我有一个嵌入式 CPU 的二进制映像,其中一个内存区域包含许多指向二进制入口点的指针。这是 CPU 使用的二进制中断向量表。我如何向 IDA 提示此内存是什么,以便它可以使用入口点进行分析?
1 回答
我假设您已经为加载的二进制映像使用正确的处理器设置了 IDB。
如果图像文件是原始文件(即没有标题),您可以在选项->常规的反汇编选项卡下定义低/高地址可疑性限制。
使用此设置,您可以通过将文本光标放在第一个字节上并按“O”或“Ctrl+O”来将此向量中的第一个元素设置为偏移量。您还可以对“用户定义”偏移执行“Ctrl+R”(打开一个包含多个选项的对话框)。所有各种偏移量都可以在Edit->Operand type->Offset->...下查看
使用第一个元素集,并将文本光标放在上面,然后您可以点击小键盘上的“*”键来创建一个实际的数组(假设您知道向量中有多少元素)。这应该将相同的操作数类型信息应用于数组中的所有元素。由于在这种情况下操作数是一个偏移量,IDA 应该(自动)尝试并反汇编被引用的字节。
注意:如果元素值超出可疑限制,则不会将其转换为偏移量
如果这是原始图像,如果您知道二进制文件包含纯代码或纯数据部分,您可能希望设置一些分段信息 (Shift+F7)。我不确定上面提到的“自动反汇编”是否仅在段的类被定义为“CODE”或者它是否重要时才完成。
注意:您始终可以通过按工具栏中的彩色圆圈图标(它应该是绿色的,否则 IDA 正忙于做某事)或通过单击“常规”->“选项”中“分析”选项卡中的“重新分析程序”来重新运行分析。