我刚刚将 ARM 内核映像加载到 IDA 中。当我启动 ARM 内核并检查内核符号时,我可以看到以下内容:-
/ $ cat /proc/kallsyms | head -n 10
00000000 t __vectors_start
80008240 T asm_do_IRQ
80008240 T _stext
80008240 T __exception_text_start
80008244 T do_undefinstr
80008408 T do_IPI
8000840c T do_DataAbort
800084a8 T do_PrefetchAbort
80008544 t gic_handle_irq
800085a0 T secondary_startup
当我将内核映像加载到 IDA 中时,我会看到带有加载在 0x8000 处的内存段的函数。由于内核符号不存在于 ARM 内核中,这使得分析变得困难。
如何将我在 ARM 映像中看到的地址(我在 Qemu 中运行它,并且可以使用 gdb-multiarch 调试内核)与我在 IDA 中看到的地址进行映射?我猜想重新调整.textIDA 中的部分将是要走的路。如果是这样,我怎样才能找到我必须重新定位该段的地址?