Ver Mensaje Individual
  #2  
Antiguo 28-02-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Reputación: 22
cHackAll Va por buen camino
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
Responder Con Cita