Archer_D9_Patcher

                Never    
C
       
#include <fcntl.h>
#include <stdlib.h>
#include <stdio.h>
#include <sys/ptrace.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>

#define NUM_PATCHES 3

int main(void)
{
	int offsets[NUM_PATCHES] =
	{
		0x1C0A4,
		0x1BF97,
		0x1BF9B
	};

	int patch_data[NUM_PATCHES] =
	{
		0x57E1,
		0x57E1,
		0xA01C149F
	};

	//EDIT this
	int pid = 1466;
	//AND this
	int base_address = 0x401d3000;

	ptrace(PTRACE_ATTACH, pid, NULL, NULL);
	waitpid(pid, NULL, 0);

	long success = -1;
	for(int i = 0; i < NUM_PATCHES; ++i)
	{
		success = ptrace(PTRACE_POKEDATA, pid, (base_address + offsets[i]), patch_data[i]);
		if (success == -1)
		{
			perror("ptrace");
		}
	}

	ptrace(PTRACE_DETACH, pid, NULL, NULL);
}

Raw Text