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