gpt4 book ai didi

c - 用于测试错误处理程序的错误 C 代码

转载 作者:太空宇宙 更新时间:2023-11-04 00:41:41 27 4
gpt4 key购买 nike

我正在搜索“坏/损坏”的 C 代码,我可以使用它来测试基于 MCU 的系统上的错误处理程序。

我正在搜索会在运行时中断的代码。

所以发疯吧,你的后兜里有多少小段代码可以用来破坏系统。并且应该由错误处理程序处理以避免不受控制的行为。

/谢谢


我将从几个例子开始。

写入空指针

int* pointer = 0x0;
*pointer = 0xBAADC0DE;

将一个值写入一个无效的指针

int* pointer = 0xCAFEBABE;
*pointer = 0xDEADBEEF;

跳转到一个无效的函数指针

int (*fpBabe)() = 0xDEADBABE;
fpBabe();

那么,您是否还有一些更坏的东西可以扔给错误处理程序?

最佳答案

除以零(以及简单的数学计算以防编译器试图优化它):

int i = argc;
return 34/(argc-i);

尝试访问高内存地址和低内存地址:

char *v = ~0;
*v = '\0';

如果你有堆管理库,尝试释放两次:

char *ptr = malloc(4096);
free(ptr); free(ptr);

尝试不放弃地分配内存:

for(;;)
malloc(4096);

尝试耗尽堆栈:

int foo(int arg) { return foo(arg+1); }
int main(int a, char *v[]) { return foo(1); }

关于c - 用于测试错误处理程序的错误 C 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5655047/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com