Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

patching memory in another process

Name: Anonymous 2006-02-06 9:03

Hi /prog/

I am writing a program to patch a memory location in another running process. Unfortunately it doesn't work as ReadProcessMemory gets an error 6 ("The handle is invalid."), even though the process ID passed on the command line is valid.

Has anyone here done this sort of thing before, and if so d'you know what I may be doing wrong?

Code is below:

#define PATCH_LOCATION 0x0013A142

void error(char *msg)
{
    printf("Error (%s) [0x%08x]\n", msg, GetLastError());
    ExitProcess (0);
};

void main(int argc, char* argv[])
{
    int patch_int;
    HANDLE process_id;
    HANDLE hToken;

    // get process id from command line
    if (argc<2)
        error ("args");
    sscanf(argv[1],"%u",&process_id);
    printf("process_id = %u\n", process_id);

    // attach to process as debugger
    if (DebugActiveProcess((DWORD)process_id)==FALSE)
        error ("DebugActiveProcess()");

    // read patch location
    if (ReadProcessMemory(process_id, (LPVOID)PATCH_LOCATION, &patch_int, 4, NULL)==FALSE)
        error ("ReadProcessMemory()");

    printf("patch_int = 0x%08x\n", patch_int);

    // check if patch location contains expected value
    if (patch_int==250)
    {
        // if so, overwrite with patch value
        patch_int=0xFFFFFFFF;
        if(WriteProcessMemory (process_id, (LPVOID)PATCH_LOCATION, &patch_int, 4, NULL)==FALSE)
            error ("WriteProcessMemory()");
    }
    else
    {
        // or fail
        error("patch_int");
    }

    printf("success!\n");
};

Name: Anonymous 2006-03-02 18:47

>>20
[quote]Linux, even if I have to cope with (1) the fucking FHS ugly mess, (2) a sluggish GUI, and (3) compiling others' shit[/quote]

(1) Are you implying that Windows has a neater file organization than Linux's FHS? Ha!

(2) When I'm using Linux the GUI works fine (except for Firefox which is a shitty piece of shit anyway.) When I'm using Windows everything is so sluggish that I feel like beating my mouse frantically with an iron rod. (Yes I keep an iron rod by my PC, just in case.) Are you sure you didn't install all the latest bells and whistles on an old pc, because you didn't know any better?

(3) Who ever told you to compile shit if you don't want to? Ever heard of binary packages? Debian for instance has 15,000+ precompiled binary packages that follow strict guidelines and fit nicely with each other. Most other distributions do that as well.

Do you, by any chance, base your experience with Linux on some epenis-inspired fucking around with Gentoo or similar NerdCore stuff?

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List