amdsecgs.asm
来自「C语言库函数的原型,有用的拿去」· 汇编 代码 · 共 70 行
ASM
70 行
;***
;amdsecgs.asm - amd64 -GS cookie check compiler helper
;
; Copyright (c) Microsoft Corporation. All rights reserved.
;
;Purpose:
; AMD64 security cookie checking routine
;
;*******************************************************************************
TITLE "AMD64 GS Security Check Compiler Helper"
include ksamd64.inc
extern __security_cookie:QWORD
extern __report_gsfailure:PROC
;*++
;
; VOID
; __security_check_cookie (
; ULONG64 Value
; )
;
; Routine Description:
;
; This function checks the specified cookie value against the global
; cookie value. If the values match, then control is returned to the
; caller. Otherwise, the failure is reported and there is no return
; to the caller.
;
; N.B. No registers except for RCX are modified if the return is to the
; caller.
;
; Arguments:
;
; Value (rcx) - Supplies the value of cookie.
;
; Return Value:
;
; None.
;
;--*
LEAF_ENTRY __security_check_cookie, _TEXT
cmp rcx, __security_cookie ; check cookie value in frame
jne ReportFailure ; if ne, cookie check failure
rol rcx, 16 ; make sure high word is zero
test cx, -1
jne RestoreRcx
db 0f3h ; (encode REP for REP RET)
ret ; no overrun, use REP RET to avoid AMD
; branch prediction flaw after Jcc
;
; The cookie check failed.
;
RestoreRcx:
ror rcx, 16
ReportFailure:
jmp __report_gsfailure ; overrun found
LEAF_END __security_check_cookie, _TEXT
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?