mirror of
https://github.com/aydencharles/onionHEN.git
synced 2026-10-22 20:02:59 -05:00
27 lines
688 B
C++
27 lines
688 B
C++
#pragma once
|
|
|
|
#include <cstddef>
|
|
#include <cstdint>
|
|
#include <memory>
|
|
#include <sys/types.h>
|
|
|
|
namespace onion::cheats {
|
|
|
|
/** Strategy: remote process memory access for patch apply. */
|
|
class IMemoryBackend {
|
|
public:
|
|
virtual ~IMemoryBackend() = default;
|
|
|
|
virtual int read(pid_t pid, uint64_t addr, void *buf, size_t len) = 0;
|
|
virtual int write(pid_t pid, uint64_t addr, const void *buf, size_t len) = 0;
|
|
virtual int mapCodeCave(pid_t pid, uint64_t addr, size_t len) = 0;
|
|
};
|
|
|
|
class MemoryBackendFactory {
|
|
public:
|
|
/** Pick backend from Prospero FW major (util_system_fw_major). */
|
|
static std::unique_ptr<IMemoryBackend> create(uint32_t fw_major);
|
|
};
|
|
|
|
} // namespace onion::cheats
|