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

本文介绍了2017年某公司秋招的技术笔试题目,涉及ARM汇编、安卓系统、内存文件映射、HTTPS安全、操作系统的安全保护措施、加密算法、文件权限管理、Linux系统、SSL/TLS协议、缓冲区溢出、iOS Hook框架、安卓App调试工具、HTTPS中间人攻击、Webshell漏洞处理、Use After Free漏洞利用、App签名验证、HTTPS通信过程以及手机APP登录安全风险与解决方案等知识点。
摘要由CSDN通过智能技术生成

牛客网练习,某公司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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值