mirror of
https://github.com/PretendoNetwork/rce_patches.git
synced 2025-04-02 11:02:12 -04:00
20 lines
762 B
C++
20 lines
762 B
C++
#include "patcher.h"
|
|
|
|
#include "utils/logger.h"
|
|
|
|
#include <kernel/kernel.h>
|
|
#include <coreinit/memorymap.h>
|
|
|
|
bool replace_string(uint32_t start, uint32_t size, const char* original_val, size_t original_val_sz, const char* new_val, size_t new_val_sz) {
|
|
for (uint32_t addr = start; addr < start + size - original_val_sz; addr++) {
|
|
int ret = memcmp(original_val, (void*)addr, original_val_sz);
|
|
if (ret == 0) {
|
|
DEBUG_FUNCTION_LINE("found str @%08x: %s", addr, (const char*)addr);
|
|
KernelCopyData(OSEffectiveToPhysical(addr), OSEffectiveToPhysical((uint32_t)new_val), new_val_sz);
|
|
DEBUG_FUNCTION_LINE("new str @%08x: %s", addr, (const char*)addr);
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|