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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ASM (Moderador: Eternal Idol)
| | | |-+  Escribir en MBR
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: Escribir en MBR  (Leído 15,335 veces)
Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Escribir en MBR
« en: 19 Octubre 2013, 23:12 pm »

Buenas, la consulta es la siguiente: Que tan complicado puede ser escribir en el MBR del disco? Se puede solo con ensamblador o tiene que ser en Ring0?

Saludos!


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

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.935


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


Ver Perfil WWW
Re: Escribir en MBR
« Respuesta #1 en: 20 Octubre 2013, 00:00 am »

Hay que partir de la siguiente base: bajo un S.O. moderno podes hacer lo mismo con ensamblador que con C/C++. Con la API de Windows podes hacerlo (ver CreateFile, Physical Disks and Volumes).


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
Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: Escribir en MBR
« Respuesta #2 en: 20 Octubre 2013, 01:26 am »

Jamas pense que CreateFile podria hacer eso.. un poco inseguro por parte del equipo microsoft  :silbar:

Ahora tengo mas para estudiar.. Gracias!!!  ;-)
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.935


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


Ver Perfil WWW
Re: Escribir en MBR
« Respuesta #3 en: 20 Octubre 2013, 02:08 am »

Necesitas privilegios de administrador (con los mismos podes cargar un modulo de modo Kernel).
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
Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: Escribir en MBR
« Respuesta #4 en: 20 Octubre 2013, 23:08 pm »

Si, el tema de los privilegios me lo habia imaginado.. pero ta, en realidad no es lo que me preocupa..  aparte tambien sigo leyendo "programming the windows driver model"  :silbar:

La idea es leer un poco de ambas cosas, asi como para cambiar un poco el tema y no enloquecerme  :xD
Si surgen dudas, vuelvo a preguntar.. Gracias!!
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.935


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


Ver Perfil WWW
Re: Escribir en MBR
« Respuesta #5 en: 20 Octubre 2013, 23:33 pm »

De nada; no lo decia como problema sino que la barrera de seguridad es esa.
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
xv0


Desconectado Desconectado

Mensajes: 1.026



Ver Perfil
Re: Escribir en MBR
« Respuesta #6 en: 22 Octubre 2013, 00:55 am »

Tambien tienes la opcion en ASM de usar la direccion 0x7c00, en ring0 claro.

Cualquier cosa de estas que hagas en ring0, podrias compartirla si quieres.

Un saludo.
En línea

Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: Escribir en MBR
« Respuesta #7 en: 22 Octubre 2013, 01:42 am »

Si logro algo lo comparto, claro! Igual dudo que sea dentro de poco.. Aun no caigo del todo en el Ring0, ya tengo algunas dudas, pero voy a esperar a leer un poco mas, para no quedar tan molesto..

Por el momento estoy viendo CreateFile y DeviceIoControl (que me la vuelvo a cruzar tambien aca, digo porque tambien la he visto con el tema de los drivers.. )
Citar
HANDLE WINAPI CreateFile(
  _In_      LPCTSTR lpFileName,
  _In_      DWORD dwDesiredAccess,
  _In_      DWORD dwShareMode,
  _In_opt_  LPSECURITY_ATTRIBUTES lpSecurityAttributes,
  _In_      DWORD dwCreationDisposition,
  _In_      DWORD dwFlagsAndAttributes,
  _In_opt_  HANDLE hTemplateFile
);
Citar
lpFileName [in]
The name of the file or device to be created or opened.

Ahora me surge la duda con CreateFile si tengo que crear un dispositivo, abrirlo, o escribirle dentro un archivo, el problema es que siquiera se que rutina se ejecuta ahi dentro.. digamos que quiero empezar por escribirle en el MBR un llamado a un programa, asi lo ejecuto, pero no desde el registro de windows, por el momento voy a seguir buscando, se agradece cualquier fuente de estudio o dato importante  :silbar:

PD: Aca hay un ejemplo muy bueno para obtener informacion del disco:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa363147(v=vs.85).aspx
Se puede ver como "llama" al disco para ser leido: #define wszDrive L"\\\\.\\PhysicalDrive0" y otras cositas importantes  ;-)
« Última modificación: 22 Octubre 2013, 01:45 am por Vaagish » En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.935


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


Ver Perfil WWW
Re: Escribir en MBR
« Respuesta #8 en: 22 Octubre 2013, 10:13 am »

Tambien tienes la opcion en ASM de usar la direccion 0x7c00, en ring0 claro.

Cualquier cosa de estas que hagas en ring0, podrias compartirla si quieres.

¿Vos probaste esto? No te olvides que toda la memoria que manejas directamente es virtual (esa que mencionas es una direccion fisica) y no estas trabajando en modo Real sino en modo protegido o largo. Mas alla de esto que es elemental la BIOS lee de un disco la MBR poniendola en MEMORIA RAM, modificar esa memoria no afecta a los datos del disco ...

Vaagish: mira que lo que hay en la MBR es codigo de 16 bits ... no esperes que sea capaz de llamar a la API de Windows para ejecutar un programa tuyo ... CreateFile con OPEN_EXISTING como dice la documentacion es lo que tenes que hacer.

http://wiki.osdev.org/MBR_%28x86%29
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
Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: Escribir en MBR
« Respuesta #9 en: 22 Octubre 2013, 21:04 pm »

Buenas!!  ;D Bueno, esto se puso interesante, al momento de hacer la consulta, no tenia idea que escribir en el MBR tenia tanta similitud con los drivers, pero me vino como anillo al dedo.. y ahora si voy a consultar algunas cosas, ya que despejo dudas de drivers y del mbr...

Por lo que vengo entendiendo, para comunicarse con el disco, lo hace de igual manera que se comunica una aplicación con un driver, no? O es que en realidad estoy llamando a algún driver?
Una duda que tengo con los drivers es si siempre es necesario "hablar" de un dispositivo,, o sea,, los drivers solo sirven para la comunicación con hardware, o puedo ejecutar en un driver una rutina cualquiera? (Hacer alguna cuenta, inyectar algo, etc..)
Y volviendo al tema, hasta CreateFile entiendo, que puedo "comunicarme" con el dispositivo y obtener un handle al mismo.. ahora.. lo que me esta quemando es saber si tengo que escribir ahí dentro en alguna dirección especifica, y algo como que?? Puedo empezar a escribirle dentro cualquier cosa,, pero seguro que no va a arrancar mas el SO  :silbar:
Estaría bueno ver un código de MBR, pero no creo que sea posible eso..

Saludos y Gracias!!
En línea

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

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Escribir un .txt con vb
Programación Visual Basic
Xrage 7 8,938 Último mensaje 11 Junio 2005, 13:24 pm
por p0w3r f1y
Escribir anónimos « 1 2 »
Sugerencias y dudas sobre el Foro
Ertai 10 4,460 Último mensaje 19 Junio 2005, 21:03 pm
por MinusFour
Escribir .ini
Programación Visual Basic
& eDu & 6 2,662 Último mensaje 25 Mayo 2008, 01:29 am
por naderST
Escribir en /dev/mem
Programación C/C++
>FedeX< 6 3,694 Último mensaje 10 Febrero 2011, 20:43 pm
por >FedeX<
Escribir CSS en PDF ? (resuelto)
PHP
Diabliyo 5 3,098 Último mensaje 12 Abril 2014, 18:19 pm
por Diabliyo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines