IDA ARM Unwind Plugin
功能
使用 IDA 调试 arm 调试时,打印实时的栈回溯。
IDA 的菜单栏有一处功能:Debugger -> Debugger windows -> Stack trace (Ctrl + Alt + S),在调试 x86、x64、arm64 的程序时它的功能是正常的,在调试 arm 程序时它的功能是不正常的,表现出来栈回溯缺失和栈回溯错误。本质上因为 arm 使用的是自己搞的一套 arm exception handler abi,由 .arm.exidx 和 .arm.extab 描述;而其他 cpu 使用的是 dwarf,由 .eh_frame 描述,IDA 没有针对它做处理。本文使用 idapython 实现这个缺失的功能。
用法
1. 安装 pyelftools >= 0.27
当前最新版是0.26,该版本暂不提供 arm ehab