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

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  (Consulta - Windows) ¿En que anillo está el buffer manejado por stdout?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: (Consulta - Windows) ¿En que anillo está el buffer manejado por stdout?  (Leído 2,945 veces)
class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
(Consulta - Windows) ¿En que anillo está el buffer manejado por stdout?
« en: 23 Diciembre 2015, 01:55 am »

Hola, muy buenas. La duda es ¿dónde está el buffer de stdout? Por ejemplo, cuando llamamos a la función printf, lo que hacemos es copiar el buffer del parámetro de dicha función a otro buffer manejado por Windows. Entonces, ¿qué nivel de protección tiene?

Por si alguien anda despitadillo, me refiero a los anillos del modo protegido de los procesadores. He escuchado que suelen haber 4. El kernel se encuentra en el nivel 0, y las aplicaciones de usuario en el 3.

Lo pregunto por saber si puedo acceder a ese buffer directamente o está en el kernel, y por tanto solo se puede acceder a el por Windows y su API (o las librerías standard de los compiladores, aunque estas a su vez requieren a la API).

Gracias


En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
fary


Desconectado Desconectado

Mensajes: 1.076



Ver Perfil WWW
Re: (Consulta - Windows) ¿En que anillo está el buffer manejado por stdout?
« Respuesta #1 en: 23 Diciembre 2015, 09:53 am »

Hola,

Creo que no existe dicho buffer...  De todas maneras tienes las interrupciones para imprimir texto por consola pero te limitarias, ya que tu aplicación tendría que ser para 16 bits.

Puedes probar a ver si la API que imprime texto llama a alguna otra API de la NTDLL (segurisimo que si que llama a alguna).

Saludos.


En línea

Un byte a la izquierda.
class_OpenGL


Desconectado Desconectado

Mensajes: 437

Si usas Direct3D, no eres mi amigo :P


Ver Perfil
Re: (Consulta - Windows) ¿En que anillo está el buffer manejado por stdout?
« Respuesta #2 en: 23 Diciembre 2015, 13:30 pm »

De acuerdo. A ver si existe :D
En línea

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL
Arkangel_0x7C5


Desconectado Desconectado

Mensajes: 361



Ver Perfil
Re: (Consulta - Windows) ¿En que anillo está el buffer manejado por stdout?
« Respuesta #3 en: 29 Diciembre 2015, 12:53 pm »

depende de la funcion, por ejemplo yo supongo que printf usa un bufer para crear la cadena final que luego se imprime y no se si puts usa uno o no. pero estos bufers estan a nivel de la libc. si tu llamas a writeConsole o a WriteFile no creo que haya buffer y si lo hay ese si esta dentro de el kernel ya que estas funciones se ejecutan en su mayor parte en el nucleo
Recuerda que la entrada y salida estandar son manejados como ficheros

Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines