elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  EIP Del llamador de la función ( EIP FROM FUNCTION CALLER )
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: EIP Del llamador de la función ( EIP FROM FUNCTION CALLER )  (Leído 1,171 veces)
lweb20

Desconectado Desconectado

Mensajes: 43



Ver Perfil WWW
EIP Del llamador de la función ( EIP FROM FUNCTION CALLER )
« en: 17 Mayo 2013, 02:03 am »

Hola a todos. Continuando con el desarrollo de mi SO.

Tengo una duda:

Si tengo el siguiente código de ejemplo:


KERNEL:

Código:
void EjecutarProceso(int id){
   ...
   _asm iret // interrupt return
}

void sys_TerminarProceso(){
   ...
}

void EjecutarPrograma(){
   int id = CrearProceso("programa.exe");
   EjecutarProceso(id);

   continuar:
   ...
}


PROGRAMA:

Código:
#include "syscalls.h"

void main(){
   ...
   sys_TerminarProceso();
}

Explico:

El código de ejemplo lo asemejo a un código para entrar al modo usuario desde el kernel, ejecutar un programa y regresar al modo kernel ( todo funciona perfectamente ). Lo que quiero hacer es que cuando termine el proceso "sys_TerminarProceso" continúe al label "continuar".

Para ello he pensado en 2 alternativas:

PRIMERA ALTERNATIVA ( probada y sí funciona ) :

a) Pasarle como parámetro a "EjecutarPrograma" la dirección de "continuar".
b) Guardar esa dirección en la memoria mediante una variable global.
c) Cuando el programa ( usuario ) ejecute sys_TerminarProceso, esta función ejecutará al final ( después de los ... ) dicha dirección del label.
d) Enjoy! :P

Bueno este es muy seguro y lógico a mi parecer, pero... este "EjecutarPrograma" también lo ejecutará el cliente como un "sys_EjecutarPrograma" y bueno no es muy normal que ejecute algo así: "EjecutarPrograma(etiquetaparacontinuar)".

SEGUNDA ALTERNATIVA ( dudas, problemas ) :

Obtener la dirección de una vez pasada la llamada "EjecutarProceso(id);", es decir, por donde está continuar ( sin el label claro ).


Si alguien tiene alguna idea agradecería mucho su ayuda. Gracias por la atención.


« Última modificación: 17 Mayo 2013, 19:23 pm por lweb20 » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Caller ID Con Moden DSL 2wire
Programación Visual Basic
Viequense 0 1,167 Último mensaje 21 Abril 2006, 16:12 pm
por Viequense
Haciendo Caller Id
Programación Visual Basic
Gasornimplat 2 1,499 Último mensaje 18 Agosto 2006, 23:11 pm
por Ironhorse
Caller ID?
Dudas Generales
TrashAmbishion 0 2,527 Último mensaje 17 Agosto 2011, 05:51 am
por TrashAmbishion
Caller ID Spoofing Android
Hacking Mobile
Teby44 0 3,659 Último mensaje 27 Abril 2012, 10:08 am
por Teby44
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines