Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=26)
-   -   copiar un fichero en el primer sector (https://www.clubdelphi.com/foros/showthread.php?t=53720)

reinier 27-02-2008 23:53:24

copiar un fichero en el primer sector
 
Leyendo hace poco sobre el Master Boot Record me vino a la mente la idea
de crear un procedimiento para copiar ficheros en el primer sector de un disco
sin embargo intente de varias maneras y solo me daba error tras error si alguien supiera como hacerlo por favor publíquenlo :confused:

cHackAll 28-02-2008 19:32:18

Para escribir un archivo en el MBR necesitas abrir la unidad física mediante APIs:

Código Delphi [-]
var
 hDevice: Cardinal;
 Buffer: array [0..511] of char;
 
begin
 hDevice := _lopen('\\.\PhysicalDrive0', OF_READWRITE);
// Leer con _lread, modificar SOLO el MBR y
 _lwrite(hDevice, @Buffer, SizeOf(Buffer));
...

De esto encontrarás información realizando una búsqueda. Ahora el chiste de hacerlo es entender la estructura del primer sector (MBR), el cual son 512 bytes que permiten arrancar el Boot (primer sector), de la unidad marcada como "Activa" de la partición primaria (la cual tambien esta en dichos 512 bytes). Por ello es que puse el comentario de leer, modificar y escribir.

Algo que debes tener muy en cuenta es que dicho programa (el del MBR), debe estar realizado en Assembler y sus "saltos" y llamadas deben ser relativas a la memoria convencional, entendiendo que dicho sector es cargado gracias a la interrupción 19h (Bootstrap Loader Service) en 0:7C00h

Suerte :cool:

Casimiro Noteví 28-02-2008 19:47:21

También debe tener en cuenta que como meta la pata en un byte... je... je... je... :D

cHackAll 28-02-2008 20:01:51

Cita:

Empezado por Casimiro Notevi (Mensaje 269469)
También debe tener en cuenta que como meta la pata en un byte... je... je... je... :D

Buen dato amigo Casimiro... es fatal para un usuario inexperto un error a nivel de bits.

seoane 28-02-2008 21:01:11

Aunque ya te respondió chackall aprovecho para recordar este truco:

http://www.clubdelphi.com/trucos/index.php?id=356

En algún otro hilo que hablamos de este tema se planteo la duda de si windows permite sobreescribir el mbr, pues la respuesta es que si. Yo lo averigüe, desgraciadamente, al despistarme cuando intentaba grabar el mbr de un disquete y termine sobreescribiendo el mbr de C. y lo peor es que no me dí cuenta hasta que reinicie el equipo al día siguiente.

En resumen mucho cuidado con esto y Asegurarte de tener a mano el cd de windows para hacer un fixmbr si es necesario :D


La franja horaria es GMT +2. Ahora son las 21:56:46.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi