_stack_chk_guard 是什么


#1

___stack_chk_guard是指什么 没看明白,函数里面进行了多次赋值:
__text:000000000000B46C LDR X8, =___stack_chk_guard

__text:000000000000B438 SUB SP, SP, #0x130
__text:000000000000B43C STP D11, D10, [SP,#0x130+var_80]
__text:000000000000B440 STP D9, D8, [SP,#0x130+var_70]
__text:000000000000B444 STP X28, X27, [SP,#0x130+var_60]
__text:000000000000B448 STP X26, X25, [SP,#0x130+var_50]
__text:000000000000B44C STP X24, X23, [SP,#0x130+var_40]
__text:000000000000B450 STP X22, X21, [SP,#0x130+var_30]
__text:000000000000B454 STP X20, X19, [SP,#0x130+var_20]
__text:000000000000B458 STP X29, X30, [SP,#0x130+var_10]
__text:000000000000B45C ADD X29, SP, #0x130+var_10
__text:000000000000B460 MOV X20, X2
__text:000000000000B464 MOV X19, X0
__text:000000000000B468 NOP
__text:000000000000B46C LDR X8, =___stack_chk_guard
__text:000000000000B470 LDR X8, [X8]
__text:000000000000B474 STUR X8, [X29,#-0x78]
__text:000000000000B478 NOP


#2

https://wiki.osdev.org/Stack_Smashing_Protector

用来检查进出函数时堆栈是否平衡和数据是否被修改


#3

检查栈帧是否溢出


#4

可以绕过这个检测吗
不执行这行代码 会有问题吗


#5

你自己试试