Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Eternal Idol

#1831
Foro Libre / Re: Muere Hugo Chávez
5 Marzo 2013, 23:19 PM
 :-(

Hoy mas que nunca: VIVA CHAVEZ CARAJO.
#1832
Creo que como te dijo x64Core SciCalc no coincide con la calculadora de Windows PERO lo que tenes que hacer es DEPURAR el programa linea y por linea y ver que devuelven las llamadas a la API.
#1833
ASM / Re: Modo protegido, dolor de cabeza
4 Marzo 2013, 17:50 PM
Gracias, tratemos de no desviar el tema, como ya dije antes este no es el foro idoneo para desarrollo de Kernels o S.O., asi que por favor tratemos de centrarnos en las dudas concretas que se plantean.

Para publicar codigo, discutir standards y demas ya se citaron varios foros incluyendo el de uno de los usuarios que participa en el hilo.
#1834
ASM / Re: Modo protegido, dolor de cabeza
4 Marzo 2013, 17:26 PM
EIP es un registro, deberias verlo en el depurador, en el codig no podes usar mov (podes usar lea o hacer una llamadita):

http://stackoverflow.com/questions/4062403/how-to-check-the-eip-value-with-assembly-language

Igual si estas generando el Kernel con VC++ entonces hacete un favor y hace una version de depuracion (/Zi para el compilador /DEBUG para el depurador creo que era, fijate en Google o MSDN) o al menos genera los simbolos (.PDB), despues podes cargar en el WinDbg tu Kernel (con la opcion de carga dump) y con X ver todas las direcciones (son relativas a la base donde fue cargada asi que despues simplemente la sustraes y le sumas la base donde cargaste el Kernel).
#1835
ASM / Re: Modo protegido, dolor de cabeza
4 Marzo 2013, 16:53 PM
Registro EIP = EXTENDED INSTRUCTION POINTER.

No se que usas para compilar el Kernel pero en VC++ podes generar listings con archivos .asm y .map (/FAcs, /map o cosas por el estilo) por ejemplo, ahi verias las direcciones facilmente.
#1836
ASM / Re: Modo protegido, dolor de cabeza
4 Marzo 2013, 16:34 PM
Busca la direccion de la instruccion especifica y listo ... fijate si podes generar simbolos de depuracion (ahi en el enlace que te deje lo mencionan), asi se te simplificaria bastante el asunto ...
#1837
ASM / Re: Modo protegido, dolor de cabeza
4 Marzo 2013, 16:10 PM
Cita de: lweb20 en  4 Marzo 2013, 15:54 PM¿Cómo así?

Uno como OSDev, especifico del tema.

Cita de: lweb20 en  4 Marzo 2013, 15:54 PMDebería haber :D

No realmente, los sub-foros se crean de acuerdo a la demanda, de esto sobran los dedos de las manos para contar a los realmente interesados  ::)

Cita de: lweb20 en  4 Marzo 2013, 15:54 PMAhh y una pregunta. Estoy depurando con Bochs y quiero que mediante el código hacer un punto de interrupción ¿se podrá? (disculpen la ignorancia xD) Por ejemplo ejecutando int 0x3? o int 0x1?

http://bochs.sourceforge.net/doc/docbook/user/internal-debugger.html
#1838
ASM / Re: Modo protegido, dolor de cabeza
4 Marzo 2013, 15:46 PM
Cita de: lweb20 en  4 Marzo 2013, 15:39 PMY discúlpenme pero creo que está mal ubicado el tema en asm (yo lo puse en C).

Ahi estaria peor ubicado cuando es necesario para la mitad de lo que mostras inline assembly  ;) Aca no tenemos un sub-foro para desarrollo de Kernel/SOs, tal vez debas buscar un foro especifico, pero todos los temas tratados estan mas cercanos a ensamblador que a C++.
#1839
ASM / Re: Modo protegido, dolor de cabeza
4 Marzo 2013, 14:38 PM
Cita de: lweb20 en  4 Marzo 2013, 14:01 PM
La idea de ejecutar el formato PE no es cargar sus librerías en la memoria y hacerlo todo como Windows (por decirlo así), más bien es crear un programa en Visual Studio y poder ejecutarlo desde mi sistema operativo; ya que me parece mucho más sencillo el asm inline de Visual Studio que el de gcc (y además es mi IDE favorito).

Podes usar MASM directamente en ese caso, lees un par de estructuras y encontras el Entry Point del ejecutable.

Cita de: lweb20 en  4 Marzo 2013, 14:01 PMAhora la última pregunta hasta que regrese de solucionar estos problemillas: ¿es posible ejecutar una interrupción que ejecute operaciones administrativas del IVT desde el modo usuario (RING3)? Tengo claro que sí es posible ejecutar una interrupción desde el modo usuario, lo que no tengo muy claro es por ejemplo si mediante esa interrupción puedo por ejemplo cargar una nueva GDT, o reiniciar el sistema (administración del sistema, por decirlo así). Ahora esto lo puedo detectar cuando solucione problemas que tengo al entrar al modo usuario, que extrañamente ya no me funciona (se queda colgado o sino error de protección general). Hasta pronto.

Si, lo que haces es PASAR a modo Kernel: el manejador de la interrupcion.
#1840
ASM / Re: Modo protegido, dolor de cabeza
4 Marzo 2013, 10:23 AM
Cita de: lweb20 en  4 Marzo 2013, 02:13 AM
no no yo me refiero un PE simple a esto por ejemplo:

int main(){
   char* stringToPrint = "hola";
   _asm{
      xor eax, eax
      mov ebx,[stringToPrint]
      int 0x80
   }
   return 0;
}
es decir ninguna librería de windows.

Es que eso solo en algunas versiones de Windows ni es un PE valido (al no importar ninguna funcion de ninguna DLL). Ademas es puro inline assembly ... pero bueno.


Cita de: lweb20 en  4 Marzo 2013, 02:13 AM- ¿Ejecutar una interrupción? no te entiendo, disculpa. Se puede ejecutar una interrupción en modo usuario pero la pregunta es cómo salir del modo usuario.
- sysenter/syscall háblame un poco más de eso.

Si, ya te confirmaron lo que te decia, los SOs modernos en modo Protegido pasan al Kernel desde los programas (modo Usuario) con una interrupcion (Linux 0x80, Windows 0x2E) o con instrucciones de llamada especificas (estas son mas modernas asi que antes se usaba siempre una interrupcion). Aca tenes un poco al respecto orientado a Windows:

http://www.codemachine.com/article_syscall.html

Cita de: lweb20 en  4 Marzo 2013, 02:13 AMLo que quiero hacer es ejecutar un programa (monotarea) en modo usuario y luego retornar a modo kernel. ¿Se podrá?

Si, seguro, incluso de la misma forma, asi es se termina un programa sin ir mas lejos ExitProcess termina haciendo una llamada al sistema y se supone que en Linux esta la sys_exit para eso mismo (en este SO no tengo mucha experiencia).