单片机/MCU论坛
直播中

王平

7年用户 1242经验值
私信 关注

如果使用FCALL调用函数而使用RET返回的话, 就会发生CSA泄露怎么解决?

FCALL调用的函数不会自动存储Upper Context, 需要使用FRET进行返回, 如果使用FCALL调用函数而使用RET返回的话, 就会发生CSA泄露.                                                                                                                                                                                                                                                                                                                                                                                                

回帖(1)

向日葵的花季

2024-1-26 17:06:41
CSA(Context-Sensitive Attack)泄露是指在函数调用过程中,不正确地共享或泄露了函数的上下文敏感数据。

解决CSA泄露的方法是使用FRET指令来返回,并确保FRET指令将上下文数据正确地返回到上层函数。FRET指令将上下文数据从栈中弹出并复制到寄存器中,然后再进行返回。这样可以确保在返回时不会泄露上下文数据。

所以,在使用FCALL调用函数后,应当使用FRET指令进行返回,而不是使用RET指令。这样可以防止CSA泄露的问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分