Что используется для создания этих сторонних программ? Какой язык?
Чаще всего C.
Как они работают?
Например так:
victim.c#include <stdio.h>
#include <windows.h>
int main() {
char cmd[2048];
int var = 5;
printf("%p %d\n", &var, var);
sprintf(cmd, "memchange.exe %lu %x", GetCurrentProcessId(), &var);
system(cmd);
printf("%p %d\n", &a, a);
return 0;
}
memchange.c#include <stdio.h>
#include <windows.h>
int main(int argc, char **argv) {
DWORD pId;
LPVOID pAddr;
HANDLE pHandle;
SIZE_T bytesWritten;
int newValue = 42;
sscanf(argv[1], "%lu", &pId);
sscanf(argv[2], "%x", &pAddr);
pHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pId);
WriteProcessMemory(pHandle, pAddr, &newValue, sizeof(newValue), &bytesWritten);
CloseHandle(pHandle);
fprintf(stderr, "Written %u bytes to process %u.\n", bytesWritten, pId);
return 0;
}