小米2018春季实习生安全开发工程师笔试题
时长:120分钟 总分:100分
358浏览 0人已完成答题
题型介绍
题型 | 单选题 | 多选题 | 简答题 |
---|---|---|---|
数量 | 4 | 8 | 2 |
若函数中有下列代码char dst[32]strcpy(dst...
char dst[32]
strcpy(dst, src)
若攻击者可以控制该函数变量的src
选项中无法在ARM架构上实现的是
66a:  push   ...
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分别对应第一个参数与第二个参数
问:
1, 该代码最有可能是哪个string函数(strcpy, strlen, strcmp等), 写出分析过程.
2, 该函数与c标准库中的string函数有何不同?