30H, 32H COUNT EQU ($-ASCBUF)/2 ;$为当前地址指针 BCDBUF DB COUNT DUP() DATA ENDS CODE SEGMENT ASSUME CS: CODE, DS:DATA, ES:DATA START: MOV AX, DATA MOV DS, AX MOV ES, AX ;设置附加段与数据段完全重叠 CLD MOV SI, OFFSET ASCBUF MOV DI, OFFSET BCDBUF MOV CX, COUNT AA: LODSB AND AL, 0FH MOV BL, AL LODSB PUSH CX MOV CL, 4 SHL AL, CL POP CX OR AL, BL STOSB LOOP AA MOV AH, 4CH INT 21H CODE ENDS END START
A.4000
B.3FFE
C.3FFC
D.4002
阻止缓冲区溢出的方法有哪些?
A.不使用不安全的数据拷贝函数;
B.在往缓冲区中填充数据时必须进行边界检查。
C.尽量动态分配内存以存储数据,不要使用固定大小的缓冲区
D.使用进行边界检查的编译器
E.使用户堆栈段不可执行
F.尽量不设置suid/sgid属性