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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Hardware y C/C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Hardware y C/C++  (Leído 6,443 veces)
lcclps

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Hardware y C/C++
« en: 18 Enero 2016, 00:11 am »

Buenos días/tardes/noches usuarios.
Como bien sabemos todos, un buen conocedor de ASM puede controlar el hardware del PC, casi a su antojo, si no fuera por lo pesado y/o complejo que puede llegar a ser trabajar en ASM. Además, de la pesada tarea de traducir el ASM de un procesador al de otro, para que tu código funcione en dos maquinas diferentes.


Sin embargo, hace poco recuerdo haber leído por internet, que en C, también se pueden hacer todo lo que puedes hacer en ASM.
 - Sinceramente, discrepo de eso del "todo", pero.... quizás no es que no se pueda hacer todo, si no, que yo no se hacerlo.

Y a todo eso.....
¿Sabeis si en C se puede controlar el Hardware, sin necesidad de hacer uso de ASM en ningún momento?
[/i]
Y me refiero a.. control "avanzado", como por ejemplo: controlar el ventilador, ya sea su velocidad, o el simple hecho de que esté encendido o no.

 - Gracias de antemano.


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: Hardware y C/C++
« Respuesta #1 en: 18 Enero 2016, 01:12 am »

No es parte del standard aunque hay formas (inline assembly o libreria en assembly por ejemplo).

Igual ni assemby ni C/C++ podran acceder directamente al hardware en un S.O. moderno desde modo Usuario.


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
lcclps

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Hardware y C/C++
« Respuesta #2 en: 18 Enero 2016, 02:07 am »

No es parte del standard aunque hay formas (inline assembly o libreria en assembly por ejemplo).

Igual ni assemby ni C/C++ podrán acceder directamente al hardware en un S.O. moderno desde modo Usuario.

Hum... solamente, en usuario Root, entonces?
 - Bueno si, tendría su lógica, en plan "sistema de seguridad"..
Pero utilizando librerías asm.... no solucionaría el problema de la potabilidad de aplicaciones... por que seguiría dependiendo de que la librería esté hecha para procesador X o procesador Y...u.u

 - No se para que miro en Yahoo respuestas... es donde leí eso de que en C se puede hacer todo y portable.
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: Hardware y C/C++
« Respuesta #3 en: 18 Enero 2016, 09:03 am »

Hum... solamente, en usuario Root, entonces?
 - Bueno si, tendría su lógica, en plan "sistema de seguridad"..

No, me refiero al nivel de privilegio con el que ejecuta el codigo, para acceder directamente necesitas un modulo de modo Kernel (un driver) y no un programa de modo Usuario.

Pero utilizando librerías asm.... no solucionaría el problema de la potabilidad de aplicaciones... por que seguiría dependiendo de que la librería esté hecha para procesador X o procesador Y...u.u

Si el recurso esta expuesto como un archivo no es tan complejo y podes usar compilacion condicional pero lo que es acceder DIRECTAMENTE al hardware es por pura logica una operacion de bajo nivel totalmente dependiente de la arquitectura.

- No se para que miro en Yahoo respuestas... es donde leí eso de que en C se puede hacer todo y portable.

Por definicion C/C++ son portables, siempre que recompiles para cada una de las arquitecturas que quieras soportar ... si usas extensiones no standard no lo es y ahi entra la compilacion condicional.
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
MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Hardware y C/C++
« Respuesta #4 en: 18 Enero 2016, 09:29 am »

C puede acceder directamente a la memoria, los punteros le dan esa capacidad. Si la máquina mapea el hardware a la memoria C puede acceder así al hardware,  pero eso no es portable ya que depende de cada arquitectura. Si el acceso al hardware no es por memoria C ya no puede acceder a él y se deben usar funciones escritas en ensamblador expresamente para dotar al programa de ese acceso.
Y todo esto en un sistema sin el modo protegido, en caso contrario hay que solicitar permiso al S.O. o cambiar de anillo en el procesador mediante unos códigos ASM específicos.
En línea

Zekkk

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Hardware y C/C++
« Respuesta #5 en: 19 Enero 2016, 01:02 am »

No entiendo a que te refieres por "acceder al hardware" pero con C/C++ puedes hacer todo lo que puedes hacer con assembly. De hecho la mayoria de compiladores de C/C++ traducen el codigo a assembly. Tambien tu sistema operativo(si usas windows o linux) esta escrito en C con una que otra optimizacion escrita en assembly(el compilador no siempre traduce las cosas de la forma mas eficiente).

En todo caso si quieres controlar la velocidad del ventilador entonces usa la libreria correspondiente del sistema operativo que sea que uses. Si quieres "completo control" sobre el hardware de tu computadora prueba modificar alguna distribucion de linux usando C.

Ese es el tema o me equivoco?
En línea

Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Re: Hardware y C/C++
« Respuesta #6 en: 19 Enero 2016, 01:10 am »

Citar
De hecho la mayoria de compiladores de C/C++ traducen el codigo a assembly.
Cualquier compilador genera un ejecutable en ensamblador, sino ya no sería un compilador. Pero no es lo mismo el ensamblador para un intel que para un arm por ejemplo.

Citar
Tambien tu sistema operativo(si usas windows o linux) esta escrito en C
El kernel de Linux esta en C, el de Windows creo que estaba en C++ si no recuerdo mal, pero bueno.

básicamente, el sistema operativo hace de intermediario con el hardware, este intermediario facilita muchas tareas pero a la hora de hablar directamente con el hardware es un problema.

espero que esto ayude https://es.wikipedia.org/wiki/Anillo_%28seguridad_inform%C3%A1tica%29
« Última modificación: 19 Enero 2016, 01:15 am por Stakewinner00 » En línea

Zekkk

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Hardware y C/C++
« Respuesta #7 en: 19 Enero 2016, 01:15 am »

Cualquier compilador genera un ejecutable en ensamblador, sino ya no sería un compilador.


Para nada. No todos los compiladores traducen el codigo a assembly. Cfront por nombrarte un ejemplo no lo hacia.
En línea

Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Re: Hardware y C/C++
« Respuesta #8 en: 19 Enero 2016, 01:19 am »

Cfront convertía C++ a C, yo diría que es más un traductor¿? Pero bueno, quizás me exprese mal.
« Última modificación: 19 Enero 2016, 01:21 am por Stakewinner00 » En línea

Zekkk

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Hardware y C/C++
« Respuesta #9 en: 19 Enero 2016, 01:24 am »

Todos los compiladores son "traductores".
En línea

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

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
FS9 hardware
Juegos y Consolas
deadisend 0 1,739 Último mensaje 11 Noviembre 2005, 19:45 pm
por deadisend
ID Hardware (Hardware protection)
Seguridad
kity54 5 6,792 Último mensaje 12 Diciembre 2011, 17:12 pm
por kity54
ID Hardware (Hardware protection)
Ingeniería Inversa
kity54 0 3,105 Último mensaje 17 Diciembre 2011, 23:02 pm
por kity54
hardware php
PHP
kakashi20 3 1,913 Último mensaje 7 Marzo 2013, 16:33 pm
por kakashi20
Enmascaramiento de IDs de hardware
Hacking
kaitohh 2 3,284 Último mensaje 16 Agosto 2021, 19:34 pm
por kaitohh
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines