c - 如何执行进程内存?

标签 c api

我想将我的代码注入(inject)到某个进程中,并且我想执行我注入(inject)的代码。

我可以注入(inject)这样的代码:

#include <Windows.h>
#define t_process_name example
BYTE code[7] = { 0x6A, 0x00 , 0, 0, 0, 0, 0};
/*
   0:push 0
   2:jmp 521595
*/
int main(){

HWND hWnd = NULL;
DWORD pid = NULL;
HANDLE hProcess = NULL;
BYTE* space = NULL;
BYTE* dst = 0x521595;
int i = 0;
hWnd = FindWindowA(NULL, t_process_name);
GetWindowThreadProcessId(hWnd, &pid);
hProcess = OpenProcess(PROCESS_ALL_ACCESS, NULL, pid);
space = VirtualAllocEx(hProcess, NULL, sizeof(code), MEM_COMMIT, PAGE_EXECUTE_READWRITE);
code[2] = 0xe9;
*(DWORD*)(code + 3) = (DWORD)(dst - (space+2)) - 5;

WriteProcessMemory(hProcess, space, code, sizeof(code), NULL);

// and...   
}

但我不知道如何执行我注入(inject)的代码。 (推 00 , jmp 521595 )
有没有任何 API 或方法可以做到这一点?

最佳答案

如果您知道要修补什么,请尝试 diablo2oo2 的通用修补程序(仅限 Windows)。它可以为您的应用程序创建加载程序/修补程序。您最好直接编辑源代码。

编辑:显然这不会注入(inject)其他进程,但如果我可以问你为什么要这样做?

关于c - 如何执行进程内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29529169/

相关文章:

c - 读取多个文件时停止读取(无 goto)

c - gcc:错误:/e:/源代码/C/Practice/helloWorld.c:参数无效

c - 查找 2 个整数之间数字不重复的数字计数的算法

ios - 如何将原始数据发送到 API

facebook - 如何在没有FBML的情况下发送Facebook礼物?

java - Android JSON API 调用

c - 带有指向其他尚未声明的静态变量的指针的结构的静态初始化

c - 将结构作为 void* 指针传递时初始化程序无效

mongodb - 使用结构为 Controller 进行模型子类化

api - "Activate"的 RESTful URL