#include <iostream>
#include <fstream>
#include <Windows.h>
// 检查当前操作系统是否为Windows XP
bool isWindowsXP() {
OSVERSIONINFOEX osvi;
ZeroMemory(&osvi, sizeof(OSVI));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
osvi.dwMajorVersion = 5; // Windows XP 主要版本号
osvi.dwMinorVersion = 1; // Windows XP 次要版本号
DWORDLONG dwlConditionMask = 0;
VER_SET_CONDITION(dwlConditionMask, VER_MAJORVERSION, VER_EQUAL);
VER_SET_CONDITION(dwlConditionMask, VER_MINORVERSION, VER_EQUAL);
return VerifyVersionInfo(&osvi, VER_MAJORVERSION | VER_MINORVERSION, dwlConditionMask) != FALSE;
}
void createFile(const std::string& fileName) {
std::ofstream file(fileName);
if (file.is_open()) {
file << "这是一个示例文件内容,实际应用中应避免产生恶意行为。\n";
file.close();
std::cout << "成功创建文件: " << fileName << "\n";
} else {
std::cerr << "无法创建文件: " << fileName << "\n";
}
}
// 修改注册表(此处仅为示例,实际操作时需要管理员权限并谨慎对待)
bool modifyRegistry(const std::string& keyPath, const std::string& valueName, const std::string& valueData) {
HKEY hKey;
LONG result = RegOpenKeyEx(HKEY_CURRENT_USER, TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Run"), 0, KEY_WRITE, &hKey);
if (result == ERROR_SUCCESS) {
// 在真实情况下,应确保valueData是一个合法的可执行文件路径
result = RegSetValueEx(hKey, TEXT(valueName.c_str()), 0, REG_SZ, (const BYTE*)valueData.c_str(), (DWORD)valueData.length());
RegCloseKey(hKey);
if (result == ERROR_SUCCESS) {
std::cout << "成功修改注册表项\n";
return true;
} else {
std::cerr << "修改注册表失败,错误代码: " << result << "\n";
return false;
}
} else {
std::cerr << "打开注册表键失败,错误代码: " << result << "\n";
return false;
}
}
int main() {
if (isWindowsXP()) {
std::cout << "警告:此操作在Windows XP上模拟了潜在危险行为。\n";
// 创建文件
createFile("D:\\驱邪少女女装.vbe");
// 模拟在XP系统下将文件添加到启动项(这里假设没有权限问题)
bool regStatus = modifyRegistry(
"Software\\Microsoft\\Windows\\CurrentVersion\\Run",
"驱邪神社下载器",
"D:\\驱邪少女女装.vbe"
);
} else {
std::cout << "此程序在非Windows XP系统上执行安全操作,并生成无害文件。\n";
createFile("驱邪少女宝箱.vbe");
}
return 0;
}