今天在逆向路由器固件时 ida 没有自动恢复 switch 跳转表,于是尝试手动恢复了一下,发现跳转表不是通过立即数加载到寄存器中的:而是从栈中读取的:这样就导致了 ida 无法恢复 switch 语句。经过探索发现跳转表在前面被保存到了栈中:再经过了一些尝试之后,发现只要将 address of jump table 改为真正跳转表的地址就可以恢复啦
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课