Bienvenido a nuestro sitio web, ahora hallarás la solucíon a lo que andabas buscando.
Solución:
En los sistemas operativos modernos, cada el proceso tiene su propio espacio de direcciones y las direcciones solo son válidas dentro de un proceso. Si desea ejecutar código en algún otro proceso, debe inyectar una biblioteca compartida o adjunte su programa como un depurador.
Una vez que esté en el espacio de direcciones del otro programa, este código invoca una función en una dirección arbitraria:
typedef int func(void);
func* f = (func*)0xdeadbeef;
int i = f();
Sí, estás describiendo un puntero de función. Aquí hay un ejemplo simple;
int (*func)(void) = (int (*)(void))0x12345678;
int x = func();
Probablemente no funcionará entre procesos: en la mayoría de los sistemas operativos, los procesos no tienen acceso a la memoria de los demás.
Cuando necesite una llamada directa:
((void(*)(void))0x1234)();
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)