小米2018春季实习生安全开发工程师笔试题

1、设计数据签名是为了保证

  • 检查数据完整性
  • 保证数据来源合法

2、你知道的前端产生的漏洞有

  • XSS
  • CSRF

3、移动端hook框架有

  • xposed
  • Substrate
  • Cydia
  • Frida

4、可以抓取数据包的工具有

  • ubertooth
  • tcpdump
  • burpsuite
  • HackRF

5、通过智能设备上的 UART 接口一般我们可以做哪些事情?

  • 查看设备调试信息
  • 获取设备权限

6、以下关于进程、线程、协程的的说法正确的是?

  • 线程是堆共享,栈私有
  • 一般而言,执行开销进程 > 线程 > 协程

7、下列哪些是smali函数中的寄存器

  • p0
  • v0

8、ARM汇编

若函数中有下列代码

char dst[32];
strcpy(dst, src);

若攻击者可以控制该函数变量的src,选项中无法在ARM架构上实现的是:

  • 覆盖dst以外的变量,改变程序运行逻辑
  • 覆盖栈数据从而构筑ROP攻击
  • 覆盖调用栈导致段错误

可以实现的是:

  • 覆盖返回地址从而跳转到攻击者复制到dst中的恶意代码

9、下面哪些工作常被用于智能设备固件分析:

  • binwalk

10、iOS中功能与url scheme相似但是安全性更好是

  • Universal Links

11、xor %eax,%eax 该操作后eax的值为多少

  • 0000 0000

12、Android如果有一个任意写入的漏洞,如何将写权限转成执行权限

  • DexClassLoader 动态载入应用可写入的 dex 可执行文件
  • java.lang.Runtime.exec 方法执行应用可写入的 elf 文件
  • System.load 和 System.loadLibrary 动态载入应用可写入的 elf 共享对象
  • 本地代码使用 system、popen 等类似函数执行应用可写入的 elf 文件
  • 本地代码使用 dlopen 载入应用可写入的 elf 共享对象
  • 利用 Multidex 机制

13、阅读下列汇编代码

66a:  push   %rbp
66b:  mov    %rsp,%rbp
66e:  mov    %rdi,-0x18(%rbp)
672:  mov    %rsi,-0x20(%rbp)
676:  movl   $0x0,-0x4(%rbp)
67d:  mov    -0x4(%rbp),%eax
680:  movslq %eax,%rdx
683:  mov    -0x20(%rbp),%rax
687:  add    %rdx,%rax
68a:  mov    -0x4(%rbp),%edx
68d:  movslq %edx,%rcx
690:  mov    -0x18(%rbp),%rdx
694:  add    %rcx,%rdx
697:  movzbl (%rax),%eax
69a:  mov    %al,(%rdx)
69c:  mov    -0x4(%rbp),%eax
69f:  movslq %eax,%rdx
6a2:  mov    -0x20(%rbp),%rax
6a6:  add    %rdx,%rax
6a9:  movzbl (%rax),%eax
6ac:  test   %al,%al
6ae:  je     6b6 
6b0:  addl   $0x1,-0x4(%rbp)
6b4:  jmp    67d 
6b6:  nop
6b7:  mov    $0x0,%eax
6bc:  pop    %rbp
6bd:  retq  

注: 题中gnu形式的汇编代码右侧为目的操作数, 左侧为源操作数%rdi,%rsi分别对应第一个参数与第二个参数

问:

  • 该代码最有可能是哪个string函数(strcpy, strlen, strcmp等), 写出分析过程.
  • 该函数与c标准库中的string函数有何不同?

答:

  • strcpy
  • 返回值不同 标准库返回dest指针 该函数返回0

猜你喜欢

转载自blog.csdn.net/kelxLZ/article/details/111875469