我在一个嵌入式应用程序中使用memset来删除一个数据。以下是功能:
uint8_t Delete()
{
memset(cure.name, 0x0, 32);
cure.volume = 0;
cure.valid=0;
printf("[*] Cure DELETED\n");
return 1;
}
我试图评估它的故障注入攻击(时钟故障)。正如我在时钟故障后的实验中看到的那样,memset也覆盖了邻居的内存块。(它们被零填充)。对memset是否有更安全(更有保障)的替代功能可以使用?可能是在所有复制步骤中都验证目标块的指令。
提前感谢您的帮助;
发布于 2021-04-14 09:15:40
memset是一个标准的库函数;它不太可能考虑到有意生成的硬件故障。固件对这些故障的保护似乎取决于:
unpredictable
我怀疑您必须编写自己的函数才能做到这一点;例如,您可以在循环中添加随机延迟以对内存进行零化。
我不知道这是否足够。您可能需要更多关于系统中哪些易受攻击的详细信息;哪些指令是有针对性的,以便同时添加验证代码。
https://stackoverflow.com/questions/67072768
复制相似问题