Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var mbi: TMemoryBasicInformation;
- si: STARTUPINFO;
- pi: PROCESS_INFORMATION;
- ctx: _CONTEXT;
- hInst: HMODULE;
- Buffer: Byte;
- const HPBAR_VISIBLE_OFFSET: SIZE_T = $13FC1BA;
- begin
- ZeroMemory(@si, SizeOf(si));
- ZeroMemory(@pi, SizeOf(pi));
- ZeroMemory(@mbi, SizeOf(mbi));
- si.cb := SizeOf(si);
- CreateProcess('C:\Program Files (x86)\Overwatch\Overwatch.exe', 'uid=prometheus', nil, nil, False, CREATE_SUSPENDED, nil, nil, si, pi);
- ZeroMemory(@ctx, SizeOf(ctx));
- ctx.ContextFlags := CONTEXT_FULL;
- GetThreadContext(pi.hThread, ctx);
- VirtualQueryEx(pi.hProcess, Pointer(ctx.Rcx), mbi, SizeOf(mbi));
- hInst := HMODULE(mbi.AllocationBase);
- ReadProcessMemory(pi.hProcess, Pointer(hInst+HPBAR_VISIBLE_OFFSET), @Buffer, 1, PSIZE_T(nil)^);
- Buffer := Buffer xor 1;
- WriteProcessMemory(pi.hProcess, Pointer(hInst+HPBAR_VISIBLE_OFFSET), @Buffer, 1, PSIZE_T(nil)^);
- ResumeThread(pi.hThread);
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement