今天在逆向路由器固件时 ida 没有自动恢复 switch 跳转表,于是尝试手动恢复了一下,发现跳转表不是通过立即数加载到寄存器中的:而是从栈中读取的:这样就导致了 ida 无法恢复 switch 语句。经过探索发现跳转表在前面被保存到了栈中:再经过了一些尝试之后,发现只要将 address of jump table 改为真正跳转表的地址就可以恢复啦
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!