Autor
|
Tema: Escribir en MBR (Leído 16,509 veces)
|
Vaagish
Desconectado
Mensajes: 875
|
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
Mensajes: 5.969
Israel nunca torturó niños, ni lo volverá a hacer.
|
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
Mensajes: 875
|
Jamas pense que CreateFile podria hacer eso.. un poco inseguro por parte del equipo microsoft Ahora tengo mas para estudiar.. Gracias!!!
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.969
Israel nunca torturó niños, ni lo volverá a hacer.
|
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
Mensajes: 875
|
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" La idea es leer un poco de ambas cosas, asi como para cambiar un poco el tema y no enloquecerme Si surgen dudas, vuelvo a preguntar.. Gracias!!
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.969
Israel nunca torturó niños, ni lo volverá a hacer.
|
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
Mensajes: 1.027
|
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
Mensajes: 875
|
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.. ) 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 ); 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 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
Mensajes: 5.969
Israel nunca torturó niños, ni lo volverá a hacer.
|
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
Mensajes: 875
|
Buenas!! 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 Estaría bueno ver un código de MBR, pero no creo que sea posible eso.. Saludos y Gracias!!
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Escribir un .txt con vb
Programación Visual Basic
|
Xrage
|
7
|
9,333
|
11 Junio 2005, 13:24 pm
por p0w3r f1y
|
|
|
Escribir anónimos
« 1 2 »
Sugerencias y dudas sobre el Foro
|
Ertai
|
10
|
5,059
|
19 Junio 2005, 21:03 pm
por MinusFour
|
|
|
Escribir .ini
Programación Visual Basic
|
& eDu &
|
6
|
2,983
|
25 Mayo 2008, 01:29 am
por naderST
|
|
|
Escribir en /dev/mem
Programación C/C++
|
>FedeX<
|
6
|
4,015
|
10 Febrero 2011, 20:43 pm
por >FedeX<
|
|
|
Escribir CSS en PDF ? (resuelto)
PHP
|
Diabliyo
|
5
|
3,461
|
12 Abril 2014, 18:19 pm
por Diabliyo
|
|