Files
Work/hookproc/FRAME.ASM
2024-08-07 09:16:27 -04:00

35 lines
1.5 KiB
NASM

.386P
.MODEL FLAT
.DATA
.CODE
_getFS proc near ; PureExceptionRegistration *getFS(void)
push ebp ; save prior stack frame
mov ebp,esp ; create new frame
push esi ; save source index register
push es ; save extra segment register
push fs ; save fs register
pop es ; restor fs into es (Microsoft assembler quirk)
mov eax,es:[0] ; move value of fs:[0] into eax
pop es ; restore extra segment register
pop esi ; restore source index register
pop ebp ; restore stack frame
retn ; return near to caller
_getFS endp
_setFS proc near ; void setFS(PureExceptionRegistration *pPureExceptionRegistration)
push ebp ; save prior stack frame
mov ebp,esp ; create new frame
push esi ; save source index register
push es ; save extra segment register
push fs ; save fs register
pop es ; restor fs into es (Microsoft assembler quirk)
mov esi,[ebp+08h] ; get pointer to PureExceptionRegistration
mov es:[0],esi ; move it into FS register
pop es ; restore extra segment register
pop esi ; restore source index register
pop ebp ; restore stack frame
retn ; return near to caller
_setFS endp
public _getFS
public _setFS
END