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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Visualizador del primer sector del disco: La tabla MBR
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Visualizador del primer sector del disco: La tabla MBR  (Leído 3,632 veces)
josprou

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Visualizador del primer sector del disco: La tabla MBR
« en: 3 Mayo 2015, 19:32 pm »

Hola a todos!

Me gustaría saber si alguien ya ha desarrollado un visualizador de la tabla MBR, como Boot Record Parser.

La idea es crear un software capaz de leer la tabla MBR, volcarla a un fichero, visualizarla, y restaurarla.

Gracias


En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: Visualizador del primer sector del disco: La tabla MBR
« Respuesta #1 en: 5 Mayo 2015, 05:46 am »

Hola a todos!

Me gustaría saber si alguien ya ha desarrollado un visualizador de la tabla MBR, como Boot Record Parser.

La idea es crear un software capaz de leer la tabla MBR, volcarla a un fichero, visualizarla, y restaurarla.

Gracias
Podes leer el MBR usando CreateFile pasando como ruta del archivo: "\\.\PhysicalDriveX" Donde 'X' es el indice del disco duro conectado al sistema, inicia desde cero. una vez tengas el Handle utilizas ReadFile para leer como cualquier otro archivo, 512 es el tamaño. una vez el buffer con la informacion es simple ya teniendo la estructura del MBR: http://en.wikipedia.org/wiki/Master_boot_record


En línea

Dessa


Desconectado Desconectado

Mensajes: 624



Ver Perfil
Re: Visualizador del primer sector del disco: La tabla MBR
« Respuesta #2 en: 6 Mayo 2015, 16:48 pm »

Hola, Creo que una vez obtenido el Hundle (como te indica x64Core) tenés que manejarte con la función DaviceIOcontrol

https://msdn.microsoft.com/en-us/library/windows/desktop/aa363216(v=vs.85).aspx

https://msdn.microsoft.com/en-us/library/windows/desktop/aa363979(v=vs.85).aspx





En línea

Adrian Desanti
RDGMax

Desconectado Desconectado

Mensajes: 28


Ver Perfil WWW
Re: Visualizador del primer sector del disco: La tabla MBR
« Respuesta #3 en: 7 Mayo 2015, 01:49 am »

Podes leer el MBR usando CreateFile pasando como ruta del archivo: "\\.\PhysicalDriveX" Donde 'X' es el indice del disco duro conectado al sistema, inicia desde cero. una vez tengas el Handle utilizas ReadFile para leer como cualquier otro archivo, 512 es el tamaño. una vez el buffer con la informacion es simple ya teniendo la estructura del MBR: http://en.wikipedia.org/wiki/Master_boot_record


Que respuesta mas basica e inutil.
El como si te dijera. facil. bajate el visual estudio y con el uso de las api correspondiente lo lograras
En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: Visualizador del primer sector del disco: La tabla MBR
« Respuesta #4 en: 7 Mayo 2015, 04:52 am »

Que respuesta mas basica e inutil.
El como si te dijera. facil. bajate el visual estudio y con el uso de las api correspondiente lo lograras

Tampoco se necesita ser un genio RDGMax asi qué esperabas leer? Si esperabas que alguien publicará un programa completo para leer, escribir y manipular el MBR, todos los sectores junto con el código fuente, me temo que estas en el lugar equivocado. Igual dejo un código que hace lo que dije anteriormente.

PS: Lo siento por el código en C, seguro que no es dificil entenderlo para la gente que programa en VB.

Código:
#define SECTOR_SIZE 512 // 512 regular tamaño en bytes por sector, 
// para asegurarse usar DeviceIoControl antes de leer con
// ReadFile/DeviceIoControl

BOOLEAN ReadMBR(
    _In_ ULONG HardDiskIndex
    )
{
    BOOLEAN bStatus;
    TCHAR Path[MAX_PATH + 1];
    HANDLE FileHandle;
    BYTE MBRRaw[SECTOR_SIZE];
    DWORD Read;

    bStatus = FALSE;
    wsprintf(Path, _T("\\\\.\\PhysicalDrive%u"), HardDiskIndex);
    FileHandle = CreateFile(
        Path,
        GENERIC_READ,
        FILE_SHARE_READ | FILE_SHARE_WRITE,
        NULL,
        OPEN_EXISTING,
        FILE_ATTRIBUTE_NORMAL,
        NULL);

    if (FileHandle != INVALID_HANDLE_VALUE)
    {
        if (ReadFile(
            FileHandle,
            MBRRaw,
            SECTOR_SIZE,
            &Read,
            NULL
            ))
        {
            for (ULONG x = 0; x < SECTOR_SIZE; x++)
            {
                if (!(x % 10))
                {
                    printf("\n");
                }

                printf("%02X ", MBRRaw[x]);
            }

            bStatus = TRUE;
        }

        CloseHandle(FileHandle);
    }

    return bStatus;
}

INT __cdecl main()
{
    ReadMBR(0);
    return 0;
}



Y sí, como dijo @Dessa, es posible también leer el MBR con DeviceIoControl asi como con ReadFile.
¿Cual es la diferencia? Realmente no veo mucha diferencia, ambos terminan enviando un IRP al driver del File System.
« Última modificación: 7 Mayo 2015, 10:25 am por engel lex » En línea

okik


Desconectado Desconectado

Mensajes: 462


Ver Perfil
Re: Visualizador del primer sector del disco: La tabla MBR
« Respuesta #5 en: 7 Mayo 2015, 17:08 pm »

Hola Josino

Lee en este Foro:
http://www.vbforums.com/showthread.php?599664-reading-writing-sectors-on-a-USB-memory-stick-including-MBR


Código de ejemplo:
http://www.vbforums.com/attachment.php?attachmentid=75666&d=1263714614

Introduce un PenDrive (vacío) y sustituye la letra "H:" por la letra del PenDrive en esta línea:

Código
  1. If SplitMapping(0) = "H:" Then

Al hacer clic en el botón se leerán los dos primeros bytes del MBR. La línea "DirectWriteDriveNT SplitMapping (2), 0, 511, hex2ascii ("AA")" está desactivada porque es para escribir. "Ojo con eso".

El código debe iniciarse como "Administrador", así que si usas un cuenta de usuario limitada el programa no funcionará.

En cuanto a tu queja, entiendo tu malestar. A mi me pasa lo mismo. A veces pregunto y me contestan diciendo "haz un Read Truck" o algo así y es como si me dijeran "haz un chung ching chang". Vamos que me quedo igual. Pero a veces a pesar que la respuesta sea superbásica y vaga me sirve de referéncia para buscar en google, es decir, te indica un poco el camino.

Me recuerda un poco cuando estudiaba y usaba el Yahoo Respuestas para algo muy concreto y me contestaban "mira en le wikipedia" y se quedaban tan anchos  :xD

Yo siempre que puedo pongo ejemplos, porque me encantan lo ejemplos y aporto código e incluso programas completos. Siempre se ha de suponer que el que pregunta no pregunta por gusto, si no porque no sabe.

Te sugiero que cuando busques algo y no encuentres busques en Google en inglés. Por ejemplo pones "Read MBR VB6", incluso en chino o coreano. Encontrás mucha más información y código. Hazlo desde Chrome y cuando entres en la página en cuestión pulsa con el botón derecho del ratón y selecciona "Traducir esta página" y se pondrá en castellano (español). Lo malo es que si hay código de ejemplo también se traducirá "If i= 6 then" -> "Si i=6  entonces" ten en cuenta eso.


« Última modificación: 7 Mayo 2015, 17:11 pm por okik » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Bad Sector o Sector Dañado en Discos Duros
Hardware
Javi Cabfer 2 6,251 Último mensaje 7 Noviembre 2011, 22:38 pm
por Javi Cabfer
ayuda disco duro 1tb con 1 SECTOR REASIGNADO
Hardware
tu7 1 3,433 Último mensaje 22 Marzo 2012, 12:51 pm
por Aprendiz-Oscuro
Pc me ha rallado un sector circularmente en un disco de arranque live dvd-r
Seguridad
Hason 7 5,998 Último mensaje 21 Junio 2022, 22:40 pm
por Tachikomaia
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines