Initial
This commit is contained in:
34
hookproc/FRAME.ASM
Normal file
34
hookproc/FRAME.ASM
Normal file
@@ -0,0 +1,34 @@
|
||||
.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
|
||||
Reference in New Issue
Block a user