Quote:
procedure SetJMP(Func:Pointer; Addr:DWORD);
begin;
VirtualProtect(ptr(Addr), 10, PAGE_EXECUTE_READWRITE, Ret);
asm
mov eax, Func
mov ecx, Addr
sub eax, ecx
sub eax, 05h
mov dword ptr ds:[ecx], 0E9h
mov dword ptr ds:[ecx+1], eax
end;
VirtualProtect(ptr(Addr), 10, Ret, Ret);
end;
Quote:
procedure SetJGE(Func:Pointer; Addr:DWORD);
begin;
VirtualProtect(ptr(Addr), 10, PAGE_EXECUTE_READWRITE, Ret);
asm
mov eax, Func
mov ecx, Addr
sub eax, ecx
sub eax, 06h
mov dword ptr ds:[ecx], 0Fh
mov dword ptr ds:[ecx+1], 8Dh
mov dword ptr ds:[ecx+2], eax
end;
VirtualProtect(ptr(Addr), 10, Ret, Ret);
end;