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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  Puertos I/O
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: Puertos I/O  (Leído 14,365 veces)
xv0


Desconectado Desconectado

Mensajes: 1.026



Ver Perfil
Puertos I/O
« en: 16 Mayo 2013, 15:17 pm »

Hola

Citar
it0 at isa0 port 0x2e/2: IT8720F rev 8, EC port 0x228

Es el sensor de temperatura.

Tengo el siguiente código:

Código
  1. movb $0x2e, %dl ; movw $0x228, %dx
  2. in %dx, %eax

El resultado es un core dumped, que estoy haciendo mal?

Un saludo.



En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.937


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Puertos I/O
« Respuesta #1 en: 17 Mayo 2013, 20:07 pm »

No tenes permisos, usa ioperm antes.


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
0xDani


Desconectado Desconectado

Mensajes: 1.077



Ver Perfil
Re: Puertos I/O
« Respuesta #2 en: 18 Mayo 2013, 15:36 pm »

Además necesitarás darle permisos al proceso.

Saludos.
En línea

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM
xv0


Desconectado Desconectado

Mensajes: 1.026



Ver Perfil
Re: Puertos I/O
« Respuesta #3 en: 18 Mayo 2013, 17:40 pm »

Estoy utilizando openbsd, la función ioperm solo esta disponible en la arquitectura alpha, hay otra función llamada i386_set_ioperm, pero nada para la amd64.

¿Qué puedo hacer?

Un saludo.

P.D: Probaré esa función en un i386 que tengo, ya os contaré como fue.
En línea

xv0


Desconectado Desconectado

Mensajes: 1.026



Ver Perfil
Re: Puertos I/O
« Respuesta #4 en: 23 Mayo 2013, 20:12 pm »

Cuando compilo me dice que no encuentra referencia ala función.

Código:
http://www.openbsd.org/cgi-bin/man.cgi?query=i386_set_ioperm&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format=html

Incluyo todas la librerias y al compilar ese -li386.

¿Por qué root no puede acceder a los puertos directamente, sin utilizar esas funciones?

Un saludo.
En línea

Arkangel_0x7C5


Desconectado Desconectado

Mensajes: 361



Ver Perfil
Re: Puertos I/O
« Respuesta #5 en: 24 Mayo 2013, 19:06 pm »

Porque es parte de la proteccion de los niveles de ejecucion (Modo usuario y modo kernel)
Tendrias que darle permisos al proceso para poder usar los puertos I/O

Saludos
En línea

xv0


Desconectado Desconectado

Mensajes: 1.026



Ver Perfil
Re: Puertos I/O
« Respuesta #6 en: 26 Mayo 2013, 01:20 am »

Gracias por las respuestas, pero no puedo hacer nada porque no dispongo de ioperm.

Un saludo.
En línea

xv0


Desconectado Desconectado

Mensajes: 1.026



Ver Perfil
Re: Puertos I/O
« Respuesta #7 en: 6 Junio 2013, 03:49 am »

Estoy intentando darle permisos desde ASM, leyendo los manuales me estoy enterando un poco de que va el tema, pero no hay manera de que funcione.

Tengo que tener CPL en 0 para poder acceder a la flag IOPL, con las instrucciones popf y iret, iret no funciona, y acceder ala base TSS que nose como acceder.

No encuentro ningun código ni nada, la verdad es que un ejemplo me ayudaría.
Por cierto estoy en long mode, el manual casi todo lo que dice es para virtual-8086.

Un saludo.

P.D: Perdón por el doble post.

En línea

Arkangel_0x7C5


Desconectado Desconectado

Mensajes: 361



Ver Perfil
Re: Puertos I/O
« Respuesta #8 en: 6 Junio 2013, 16:54 pm »

lo primero, estas en modo kernel o ring0? si no lo estas, no vas a poder tocar nada de eso en asm

Saludos
En línea

xv0


Desconectado Desconectado

Mensajes: 1.026



Ver Perfil
Re: Puertos I/O
« Respuesta #9 en: 6 Junio 2013, 19:46 pm »

No, estoy en mode long.

Por lo que dices tengo que entrar en modo kernel, pero como?
Al igual que in y out ese iret tampoco puedo ejecutarlo, sera por los permisos.

Pero ahora tambien tengo otra duda, como se accede a la base TSS?

Un saludo.
En línea

Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Diferencias entre puertos del router y puertos del ordenador?
Redes
avmiitxe 4 6,729 Último mensaje 11 Septiembre 2011, 18:00 pm
por int_0x40
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines