Content /...

The package "madRemote" gives you the basic tools you need to get into foreign processes. You can allocate&free memory in a specified process (AllocMemEx/FreeMemEx), you can copy a function to the memory context of a specified process (CopyFunction) and you can even create a remote thread in any 32bit process (CreateRemoteThreadEx).

To make your life even easier, you can use the high level function RemoteExecute, which internally makes use of the low level functions mentioned above. Also you can enumerate processes (EnumProcesses).

Well, you might now say: The Windows API already offers "VirtualAllocEx" for memory allocation and "CreateRemoteThread" for thread creation in foreign processes, so what is so special about madRemote? The special thing is that the mentioned Windows APIs only work in NT based systems, while madRemote offers you the full power in NT *and* in 9x/ME. And I'm not talking about a more or less working "CreateRemoteThread" simulation (by e.g. misusing "SetWindowsHookEx" or "Get/SetThreadContext"). I'm talking about the *real* one, that works always, that does not need any cooperation of the destination process!

A reference of what is contained in madRemote can be found in the madRemote Reference.

Alloc/FreeMemEx CopyFunction CreateRemoteThreadEx RemoteExecute EnumProcesses ProcessHandleToId

The package "madRemote" is needed by the packages madCodeHook and madKernel.

madRemote is free for non-commercial usage (only).

You can find more information including the full download at