牛客网练习,某公司2017秋招。叫车 2017年

第一题:
现有某函数,其方法声明为:int func(int x)
该函数对应的ARM汇编代码如下:
0000016A PUSH {LR}
0000016C MOVS R3, #1
0000016E ADDS R1, R3, #0
00000170 loc_170
00000170 CMP R0, #0
00000172 BLE loc_184
00000174 MOVS R2, R0
00000176 MULS R2, R3
00000178 ADDS R3, R2, #1
0000017A TST R0, R1
0000017C BEQ loc_180
0000017E ADDS R3, R2, #0
00000180 loc_180
00000180 SUBS R0, #1
00000182 B loc_170
00000184 loc_184
00000184 MOVS R0, R3
00000186 POP {PC}
从上面的汇编代码可以得出func(3)的值等于? 答案 : 7

解释:执行到倒数第一步时r0=0,r1=1,r2=1,r3依次变为1、1+1=2、1+2=3、3+3+1=7,即r3=7,arm使用r0做函数返回值,故最终执行movs r0,r3后r0=7。

第三题:
安卓系统中所有App进程是下面的哪个进程fork产生的? 答: zygote
A.init
B.system_server
C.zygote
D.kthreadd

解释: Android进程从大类来划分,可分为内核进程和用户进程安卓有3个非常重要的进程system_server(zygote孵化出)、mediaserver(init孵化出)、servicemanager(init孵化出)A.init进程 :是Linux系统的用户空间进程,或者说是Android的第一个用户空间进程。B.SystemServer进程: 系统服务进程由Zygote进程Fork出来的。C.zygote进程 : 是所有上层Java进程的父进程,APP主线程是由 Zygote母体生成.D.kthreadd进程: 2号进程Linux系统的内核进程,是所有内核进程的鼻祖。加载顺序是  init-》kthreadd-》zygote-》APP主线程

第四题:以下关于内存文件mmap映射的说法不正确的是? C

A.当文件被映射到进程地址空间后,进程可以像访问普通内存一样对文件进行访问
B.子进程会继承父进程通过mmap映射的地址空间
C.使用mmap必须指定映射到内存的具体文件
D.同一个文件的不同段内容可以分别被映射到不同的内存空间解释:文件将会被映射到这一区域的某块虚拟内存上,没有指定起始地址,则由内核来分配。

第八题: 现有Android应用内某函数,其方法声明为:private int func()
该函数对应的smali反汇编代码如下:
.method private func()I
00000000 const-string v2, “Didichuxing”
00000004 const/4 v0, 0
00000006 const/4 v1, 0
00000008 invoke-virtual String->length()I, v2
0000000E move-result v3
00000010 if-ge v1, v3, :2E
00000014 const/16 v3, 0x0069
00000018 invoke-virtual String->charAt(I)C, v2, v1
0000001E move-result v4
00000020 if-ne v3, v4, :28
00000024 add-int/lit8 v0, v0, 0x01
00000028 add-int/lit8 v1, v1, 0x01
0000002C goto :8
0000002E return v0
.end method
从上面的smali反汇编代码可以得出该方法的返回值等于 答案:3

解释: 这道题就是计算这个字符串中i出现的次数。int v1=v0=0;string v2="Didichuxing";int v3=string.length(v2)=11;for(;v1!=v3;v1++){v3=0x0069=105='i';v4=string.charAt(v2,v1);//就是遍历V2看是否有‘i’if(v3=v4)//如果有‘i’v0++;}return v0;

第十题: 当一个HTTPS 站点的证书存在问题时,浏览器就会出现警告信息以提醒浏览者注意,下列描述中哪一条不是导致出现提示的必然原因? 答案D
A.证书过期
B.证书没有被浏览器信任
C.证书的CN与实际站点不符
D.浏览器找不到对应的证书颁发机构

解释:我知道ABC是对的,不知道D为什么错,猜测D只是潜在风险,尚不确定吧。

第十三题: 攻击者截获并记录了从A到B的数据,然后又从早些时候所截获的数据中提取出信息重新发往B称为? 答案:D .重放攻击

解释:中间人攻击会出现3个人,A、B是朋友,C是入侵者,A-B的所有信息都会经过C,由C决定怎么处理。中间人攻击比重放攻击后果更严重。

第十四题: 以下哪一项不是针对操作体统的安全保护措施? 答案:nProtect
A.SELINUX
B.nProtect
C.DEP
D.ASLR

解释:
A.SELinux:Security-Enhanced Linux
B.nProtect:键盘加密保护系统,保护用户的隐私。
C.DEP:数据执行保护 在内存上执行额外检查以帮助防止在系统上运行恶意代码。
D.ASLR:(Address space)是一种针对缓冲区溢出的安全保护技术.

第十五题: 以下哪个算法不是对称加密算法?
A.DES
B.RC5
C.ECDH
D.AES

解释:ECDH是密钥协商算法。

第十六题:文件aaa的访问权限为rw-r–r--,现要增加所有用户的执行权限和同组用户的写权限,下列哪些命令是正确的? 答案:AD
A.chmod a+x g+w aaa
B.chmod 764 aaa
C.chmod o+x g+w aaa
D.chmod 775 aaa

解释:o所有者、g组、a所有人

第十七题:文件aaa的内容如下:
1001:1
1002:2
1003:1
1004:2
期望处理aaa文件得到以下输入结果:
1001
1003
以下命令能满足的有? 答案:BD

A.grep "1$" aaa | awk -d: '{print $1}'
B.grep "1$" aaa | cut -d: -f0
C.sed '/:2/d' aaa | sed 's/:1//g'
D.awk -F: '{if ($2==1){print $1}}' aaa解释:选项B, grep 筛选器, cut 选取特定列 -d指定列分割符,-f指定列选项C, sed  筛选器,把:2后缀的删掉选项D,awk 以冒号为分割,如果第二部分等于1,输出第一部分。

第十八题:下列关于SSL的描述中,正确的有 ABC

A.SSL即安全套接字层,是一种安全协议,它为网络的通信提供私密性,工作在应用层和传输层之间。
B.SSL能加密数据以防止数据中途被窃取,维护数据的完整性,确保数据在传输过程中不被改变。
C.SSL实际上是共同工作的两个协议,SSL记录协议和SSL握手协议。
D.SSL握手协议为高层协议提供基本的安全服务。  解释: 选项D,说法错误,应把SSL握手协议改为 SSL记录协议。

第十九题: 以下说法中,哪些说法是正确的? A C D

A.缓冲区溢出指的是通过向程序的缓冲区写入超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其他的指令,以达到攻击的目的。
B.在C/C++语言中,缓冲区溢出的任何尝试通常都会被语言本身自动检测并阻止。
C.检查缓冲区长度、GS编译选项、堆栈保护可以防御溢出攻击
D.溢出是程序设计者设计时的不足所带来的错误。 解释:选项A: 溢出攻击分2步,第一步往内存中写入溢出程序,第二步利用溢出漏洞转入溢出程序并执行。选项B: 溢出区攻击编译器无法识别,因为溢出攻击发生在运行时,编译时还没有表现。故错误选项C: 如果缓存区足够大,不会发生溢出。windows安全机制GS编译通过校验堆栈信息防御溢出攻击。选项D: 溢出是程序设计不足带来的问题,是一个严重的安全漏洞。

第二十题:Linux系统下,关于权限描述错误的是? 答案:B
B.文件权限描述"drw-rw-rw-"中的首字符’d’表示该文件为软链接文件

解释:- 第一个字符代表文件(- )、目录( d ),链接( l )- 其余字符每3 个一组( rwx ),读( r )、写( w )、执行( x )- 第一组rwx :文件所有者的权限是读、写和执行- 第二组rw- :与文件所有者同一组的用户的权限是读、写但不能执行- 第三组r-- :不与文件所有者同组的其他用户的权限是读不能写和执行

第二十二题:同一进程下的线程可以共享以下? 答案:BD

A.stack(线程的堆栈)
B.data section(进程的共有数据)
C.register set(寄存器组的值)
D.file fd(文件描述符)解释:
可以共享的有:进程的代码段、进程的共有数据、进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID 、进程用户组ID
不可以共享的有:线程ID、寄存器组的值、线程的堆栈、错误返回码、线程的信号屏蔽码、线程的优先级

第二十三题:下列哪部分代码片段如果使用不当会导致安全漏洞? (ACD)

A.    <?php...$sql = "select * from admin where id=".$_GET['id'];$result = mysql_query($sql);...
B.    <?php$username = $_GET['name'];echo  htmlspecialchars($username);...
C.    <?php...$file = $_GET['file'];echo file_get_contents($file);...
D.    <?php$string = $_GET['text'];$pattern = '/(\w+) (\d+), (\d+)/ie';$replacement = '${1}1,$3';echo preg_replace($pattern, $replacement, $string);?>解释: 选项A. id=xxx,可以构造SQL注入漏洞。

第二十五题:浏览器和服务器在基于https进行请求链接到数据传输过程中,用到了如下哪些技术:
A.非对称加密技术
B.对称加密技术
C.散列(哈希)算法
D.数字证书

解释:通过检测数字证书确认网站的合法性HTTP+ 加密 + 认证 + 完整性保护 =HTTPS HTTPS 采用共享密钥加密和公开密钥加密两者并用的混合加密机制。第一次访问时用共享密钥加密稍后要使用的对称密钥。

第二十六题:下列哪些函数可能导致缓冲区溢出? 答案:ABC
A.wcscpy
B.vsprintf
C.scanf
D.strcat_s

解释:
凡后面加_s的都是安全升级版函数。选项A  wcscpy()即为strcpy()的宽字符版本(Unicode)
选项B  vsprintf 是sprintf 的一个变形,它只有三个参数。vsprintf 用于执行有不定数量参数的函数,类似printf 格式。
选项D strcat_s脱胎于strcat,vs2005的安全升级版

第二十七题:iOS平台上常见的Hook框架有? 答案:D

A.Xposed
B.Intent Fuzz
C.Drozer
D.Substrate解释:Android Hook框架:Xposed。Android漏洞挖掘工具:Drozer,Intent Fuzzer。

第二十九题: 使用以下哪些工具可以直接调试安卓app代码逻辑? 答案:CD

A.baksmali
B.ddms
C.IDA
D.gdb 解释:D.在Linux应用程序开发中,最常用的调试器是gdb

第三十题: Android 应用中导致HTTPS中间人攻击的原因有? 答案:ABC
A.没有对SSL证书校验
B.没有对主机名进行校验
C.SSL证书被泄露
D.使用WIFI连接网络

解释:缺乏SSL主机名验证,允许攻击者在SSL证书中获取任意的主机名,这为中间人攻击的利用开辟了道路

第三十一题:外部某平台报告公司产品存在Webshell漏洞。老板指定身为安全工程师的你全权协调处理此事,请思考,你需要做些什么 ?

解释: 1.备份数据,不影响业务的情况下,临时恢复未攻击前的备份。2.删除webshell,检查还有没有其他后门。3.外部入侵分析日志,模拟入侵过程。4.编写补丁,发布补丁,恢复最近的备份,一切恢复正常。5.再次安全评估加固。

第三十二题:自行编写一段代码,要求代码包含UAF(Use After Free)漏洞。假设该代码运行在内核中,简述普通用户如何利用代码中的UAF漏洞提升权限。

解释: 无解释。

第三十三题:简述客户端App签名验证的原理和基本过程。

解释:  无解释。

第三十四题:简述一次https通信建立的全过程。

解释:一次https通信建立的全过程:1.客户端通过发送 Client Hello 报文开始 SSL 通信。2.服务器可进行 SSL 通信时,会以 Server Hello 报文作为应答。3.之后服务器发送 Certificate 报文。报文中包含公开密钥证书。4.最后服务器发送 Server Hello Done 报文通知客户端,最初阶段的 SSL 握手协商部分结束。5.SSL 第一次握手结束之后,客户端以 Client Key Exchange 报文作为回应。报文中包含通信加密中使用的一种被称为 Pre-master secret 的随机密码串。该报文已用步骤 3 中的公开密钥进行加密。6.接着客户端继续发送 Change Cipher Spec 报文。该报文会提示服务器,在此报文之后的通信会采用 Pre-master secret 密钥加密。7.客户端发送 Finished 报文。8.服务器同样发送 Change Cipher Spec 报文。9.服务器同样发送 Finished 报文。10.服务器和客户端的 Finished 报文交换完毕之后,SSL 连接就算建立完成。11.应用层协议通信,即发送 HTTP 响应。12.最后由客户端断开连接。

第三十五题:请分析手机APP的登录功能可能面临的安全风险或漏洞,并提供相应的解决方案。

解释:1. 暴力破解用户名和密码。登录失败后写入登录日志,1小时内最多尝试5次。2. 重放攻击中间人截获数据包,修改后再另一台手机重复发送给服务器。数据包中包含时间,并校验数据包完整性。3. SQL注入攻击使用安全函数转义。4. 密码泄露加密传输登录信息。

第三十六题:请说出常见的安全漏洞类型及漏洞原理

解释:1.SQL注入漏洞,把用户输入作为命令或查询第一部分。2.跨站脚本攻击XSS,往正常的页面注入恶意脚本。3.跨站请求伪造CSRF,恶意站点,盗取用户身份,盗取Cookie,进行非法操作。4.上传漏洞,绕过限制上传恶意脚本,提权进行非法操作。5.缓冲器攻击,第一步把恶意代码写入内存,第二步利用溢出漏洞跳去执行恶意代码。

牛客网练习,某公司2017秋招 叫车 2017年相关推荐

  1. 【牛客】恒生公司2015秋招开发类笔试题

    恒生公司2015秋招开发类笔试题(一) 关于windows的消息机制的描述: 只有当一个线程调用Win32 API中的GDI(Graphics Device Interface)和User函数时,操作 ...

  2. 牛客网题库公司真题 2021阅文C++方向笔试卷答案

    牛客网题库公司真题技术(软件)信息技术类 C++工程师 2021阅文C++方向笔试卷 以上的标题就是牛客网这个试卷的位置,链接在这里不确定以后是不是有效,我自己做个记录的:2021阅文C++方向笔试卷 ...

  3. 【牛客】快手2020校园招聘秋招笔试--算法A试卷

    链接:https://www.nowcoder.com/questionTerminal/c8cfc98711a14a3fbc587ca5aabc09ee 来源:牛客网 [编程题]计算累计平方和. 热 ...

  4. 【牛客网】字节跳动2019春招研发部分编程题汇总

    1-万万没想到之聪明的编辑 解题思路 此题的编辑规则如下 三个同样的字母连在一起,一定是拼写错误,去掉一个的就好啦:比如 helllo -> hello 两对一样的字母(AABB型)连在一起,一 ...

  5. 牛客网练习,某公司2017秋招。叫车 2017年

    牛客网练习,某公司2017秋招.叫车 2017年 第一题:     现有某函数,其方法声明为:int func(int x)     该函数对应的ARM汇编代码如下:     0000016A     ...

  6. 【爬虫】牛客网简易爬虫(二)用Selenium看看你投过简历的公司这个月哪些有笔试+笔试时间

    在 牛客网--求职--笔试日历 可以笔试时间每天都有哪些公司有笔试,如下图 一.需求 1.看看这个有笔试的公司哪家你还没看过. 2.看看自己投过的公司哪家这个月有笔试及笔试的时间. 当然,你还是得把你 ...

  7. 2021字节跳动秋招整理牛客网---Java后端提前批面试

    一.字节提前批 java 后端一面 1.1 你说你用了 RPC 远程调用,讲讲原理是怎么样的 RPC(Remote Procedure Call)远程调用,通过某种手段,协议,约定调用非本地服务 RP ...

  8. 牛客网——2017校招真题在线编程(pythonC++)

    牛客网--2017校招真题在线编程(python&C++) 1.n个数里的最小k个 题目描述 找出n个数里最小的k个 输入描述: 每个测试输入包含空格分割的n+1个整数,最后一个整数为k值,n ...

  9. 运维校招面经汇总(来源牛客网)

    shopee SRE 作者:Stackingrule 链接:https://www.nowcoder.com/discuss/626107?source_id=discuss_experience_n ...

最新文章

  1. LeetCode实战:将有序数组转换为二叉搜索树
  2. freebsd系统/: write failed, filesystem is full问题解决办法
  3. 李倩星r语言实战_《基于R的统计分析与数据挖掘》教学大纲
  4. hdu 5785 Interesting(manacher+前缀和)
  5. EBOOT跳转到NK的过程
  6. java中数组合并的方法,数组合并--Java原生方法
  7. JavaSE02、方法,递归迭代
  8. 如果 AI 技术可以让你永生,你愿意么?
  9. php连接memcache(php.ini配置)
  10. [渝粤教育] 西南科技大学 计算机辅助设计 在线考试复习资料2021版
  11. 我已经不用 try catch 处理异常了!太辣鸡了!
  12. [译]ASP.NET 5 Configuration
  13. myeclipse 的 restart server和Redeploy/Reload application的区别
  14. 朱石景 201671010457 团队项目评审课程学习总结
  15. fantastical2语言设置_如何为iPhone定制Fantastical2以适应您的需求
  16. 小区报修管理系统c语言,小区物业报修管理系统的设计与实现.pdf
  17. 学习-Java类和对象之对象组合之求圆柱体积
  18. 软件设计和开发规范(国标)
  19. PHP开发环境phpnow的详细安装步骤
  20. win7 加密oracle修正,win7 远程连接服务器出现身份验证错误,又找不到加密Oracle修正...

热门文章

  1. mysql signal_[MySQL]MySQL的signal sqlstate
  2. 单核浏览器和双核浏览器有什么区别,哪个好用?
  3. 蓝叠模拟器查看Android版本,BlueStacks蓝叠版本信息在哪看蓝叠模拟器版本信息查看方法...
  4. 【Python】实现一个小说下载器,可以打包成exe(附原码)
  5. 服装进销存管理软件哪个好用?看测评就知道了
  6. 王者转号仅显示可转移的服务器,王者荣耀转移账号是免费的吗 角色转移进度怎么查看...
  7. 超材料常用的仿真软件CST COMSOL HFSS指导实际操作
  8. WGCLOUD和ZABBIX有什么不一样
  9. 生信自学笔记(五)计分矩阵的实例
  10. 美国将派大量自动昆虫机器人到火星执行任务