如果程序接收到一个中间带有空终止符的字符串作为 argv[1] 参数会发生什么?例如:
./program test'\0'example
argv[1] 的值是多少?是测试吗?是测试\ 0示例吗?我有这些代码行
max = sizeof(filename);
len = strlen(argv[1]);
if (len > max) goto error;
strcpy(filename, argv[1]);
我需要为这个程序构建一个漏洞利用,我想做的是让 argv[1] 值得测试'\0'示例所以 strlen(argv[1])=strlen("test")=4 和 strcpy(filename , argv[1])=strcpy(filename, "test") 所以我可以使用字符串的其余部分(示例部分)来放置我的漏洞利用。可能吗?非常感谢您?