校园招聘--奇虎360笔试

来源:互联网 发布:带着淘宝混异界 编辑:程序博客网 时间:2024/04/29 13:32

笔试职位:web漏洞挖掘工程师

Ps:十几个岗位同一套试题(其实有A、B卷,但是只是题目顺序调换了一下而已),不知道360啥意思

笔试题目结构是40个选择题+两个主观题

题目涉及的知识面甚是宽广,包括逻辑推理(离散数学知识)、c++面向对象(继承、构造函数等)、操作系统(内存分页、进程线程等)、数据结构(根据任意两种遍历(先序、中序、后序)写出二叉树、完全二叉树叶子节点等)、计算机组层原理(有个什么数据线的题目,忘了)、网络协议基础(TCP连接分析),最后两个选择题一个是objective-c,另外一个是andriod数字签名~_~!!

主观题一、给了一段函数问有什么安全漏洞,怎么修复漏洞?

函数完整的记不起来了,ptr指向一个数组

...charbuf[120];gets(buf);strncpy(ptr,buf,8);...

看到这几句就明白了,属于内存溢出漏洞,对gets进来的buf未进行大小判断,便直接进行拷贝处理,容易超出ptr所指向数组所申请的地址大小,从而造成溢出。

主观题二、给一个整数数组,求该数组中第二大的整数

/***Func:获取整数数组中第二大的整数*Date:2013-10-12**/#include<iostream>using namespace std;//定义个很小的数,int最小-32767const int MINNUMBER = -32767;int find_sec_max( int data[], int count){int maxnumber = data[0];int sec_max = MINNUMBER;for (int i = 1;i < count;i++){if ( data[i] > maxnumber ){sec_max = maxnumber;maxnumber = data[i];}else{if ( data[i] > sec_max )sec_max = data[i];}}return sec_max;}int main(){//测试int a[5]={1,2,3,8,5};int secNum;secNum = find_sec_max(a,5);cout << "第二大的整数为:" << secNum <<endl;return 0;}


原创粉丝点击