阅读下列说明,回答问题1至问题4,将解答写在答题纸的对应栏内。 【说明】 基于Windows 32位系统分析下列代码,回答相关问题。 void Challenge(char*str) { char temp[9]={

admin2018-05-26  29

问题 阅读下列说明,回答问题1至问题4,将解答写在答题纸的对应栏内。
【说明】
    基于Windows 32位系统分析下列代码,回答相关问题。
    void Challenge(char*str)
    {
        char temp[9]={0};
        strncpy(temp,str,8);
        printf("temp=%s\n",temp);
        if(strcmp(temp,"Please!@")==0){
           printf("KEY:******");
        }
    }
    int main(int argc,char*argv[])
    {
        char buf2[16];
        int check=1;
        char buf[8];
        strcpy(buf2,"Give me Key!!");
        strcpy(buf,argv[1]);
        if(check==65)    {
            Challenge(buf);
        }
        else {
            printf("Check is not 65(%d)\n Program terminated!!\n",check);
        }
        return 0;
    }
main函数内的三个本地变量所在的内存区域称为什么?它的两个最基本操作是什么?

选项

答案堆栈,push(压栈)和pop(弹栈)操作。

解析 软件安全问题日益突出,代码的安全一直都是网络安全中的一个大问题,迄今为止没有太好的解决软件安全漏洞的好方法。本题也是为了突出此问题,考查考生对软件安全开发和漏洞修补的知识和技能。这是一段C代码。main函数内的三个本地变量都是静态分配的,所属区域在系统的堆栈区。堆栈是一种先进后出的数据结构,它有的两个操作就是push(入栈)和pop(出栈)。
转载请注明原文地址:https://kaotiyun.com/show/nuTZ777K
0

相关试题推荐
最新回复(0)