2021-01-27 21:26:19 +00:00
|
|
|
#pragma once
|
2020-09-25 16:43:53 +00:00
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
2021-06-17 21:32:24 +00:00
|
|
|
#include "log.h"
|
|
|
|
#include "util.h"
|
|
|
|
#include "string.h"
|
|
|
|
#include "exec.h"
|
|
|
|
#include "elf.h"
|
|
|
|
|
2021-09-12 03:18:12 +00:00
|
|
|
#ifdef REBORN_HAS_COMPILED_CODE
|
2021-02-22 03:43:57 +00:00
|
|
|
|
|
|
|
// Patching Functions
|
|
|
|
|
2020-11-20 18:36:03 +00:00
|
|
|
void _overwrite_call(const char *file, int line, void *start, void *target);
|
|
|
|
#define overwrite_call(start, target) _overwrite_call(__FILE__, __LINE__, start, target);
|
|
|
|
|
2020-11-10 00:49:41 +00:00
|
|
|
void _overwrite_calls(const char *file, int line, void *start, void *target);
|
|
|
|
#define overwrite_calls(start, target) _overwrite_calls(__FILE__, __LINE__, start, target);
|
2020-10-03 16:57:58 +00:00
|
|
|
|
2020-11-10 00:49:41 +00:00
|
|
|
void _overwrite(const char *file, int line, void *start, void *target);
|
|
|
|
#define overwrite(start, target) _overwrite(__FILE__, __LINE__, start, target);
|
2020-10-03 16:57:58 +00:00
|
|
|
|
2021-07-19 01:08:51 +00:00
|
|
|
void _patch(const char *file, int line, void *start, unsigned char patch[4]);
|
2020-10-03 16:57:58 +00:00
|
|
|
#define patch(start, patch) _patch(__FILE__, __LINE__, start, patch);
|
|
|
|
|
2020-10-04 00:30:15 +00:00
|
|
|
void _patch_address(const char *file, int line, void *start, void *target);
|
2020-10-03 16:57:58 +00:00
|
|
|
#define patch_address(start, target) _patch_address(__FILE__, __LINE__, start, target);
|
2020-09-25 16:43:53 +00:00
|
|
|
|
2021-06-17 21:32:24 +00:00
|
|
|
#endif // #ifdef __arm__
|
|
|
|
|
2020-09-25 16:43:53 +00:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|