56 DPRINT((0,
"other_module_cleanup_module()\n"));
160 NewSyscallHandler:\n\t \ 161 // save used regs\n\t \ 168 // push the syscall number\n\t \ 173 lea 48(%esp),%eax\n\t \ 176 // setup default data selectors\n\t \ 180 call _CSyscallHandler\n\t \ 182 // remove pushed params\n\t \ 185 // restore used regs\n\t \ 190 // chain to old handler\n\t \ 192 jmp *_OldSyscallHandler");
196 ULONG LocalSyscallHandler;
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
__asm__("\n\t \
NewSyscallHandler:\n\t \
// save used regs\n\t \
pushfl\n\t \
cli\n\t \
cld\n\t \
pushal\n\t \
pushl %ds\n\t \
\n\t \
// push the syscall number\n\t \
pushl %ebx\n\t \
pushl %eax\n\t \
\n\t \
// frame ptr\n\t \
lea 48(%esp),%eax\n\t \
pushl %eax\n\t \
\n\t \
// setup default data selectors\n\t \
movw %ss,%ax\n\t \
movw %ax,%ds\n\t \
\n\t \
call _CSyscallHandler\n\t \
\n\t \
// remove pushed params\n\t \
add $12,%esp\n\t \
\n\t \
// restore used regs\n\t \
popl %ds\n\t \
popal\n\t \
popfl\n\t \
\n\t \
// chain to old handler\n\t \
.byte 0x2e\n\t \
jmp *_OldSyscallHandler")
struct _FRAME_SYSCALL FRAME_SYSCALL
void(* old_cleanup_module)(void)
void DeInstallSyscallHook(void)
ecx edi ebx edx edi decl ecx esi eax jecxz decl eax andl ebx
void CSyscallHandler(FRAME_SYSCALL *ptr, ULONG ulSysCall, ULONG ebx)
void RevirtualizeBreakpointsForModule(PDEBUG_MODULE pMod)
void InstallSyscallHook(void)
PDEBUG_MODULE pModJustFreed
void other_module_cleanup_module(void)
BOOLEAN bReportProcessEvents