`
qzriso
  • 浏览: 236390 次
  • 性别: Icon_minigender_1
  • 来自: ph
社区版块
存档分类
最新评论

如何编程实现远程关机

阅读更多

远程控制中,有一个重要的部份就是如何实现远程关机,如在各种黑客入侵中,我们到处可以见到木马的身影,木马它作为一种远程控制软件,它一般是实现了远程关机功能的。如我国大名鼎鼎的木马“冰河”等,都是有这个功能的,只是它是各种功能的集合罢了,今天我们就来看看这个重要的关机部分是如何编程实现的,在这里我就用眼下流行的VC6.0来编写,同时用VC也大大减少了我们的一些设计工作,让我们的菜鸟也来动手写一下自己的入侵工具。

在木马中,我们是采用的让客户端Socket给服务端的Socket发送相关的指令,同时当服务端收到相应的指令后,就执行相对应的操作指令,这些操作当然是在服务端的计算机上所进行的。而这个操作实质就是调用相应的函数来处理,这个函数及其参数说明就是如下:

BOOL ExitWindowsEx(UINT uFlags,DWORD dwReserved);

在其中uFlags可以有的取值:

EWX_LOGOFF:注消; EWX_POWEROFF:强制关机; EWX_REBOOT:重启;

EWX_SHUTDOWN:先保存再关机; EWX_FORCE:不保存就关机; 

EWX_FORCEIFHUNG:不保存就关机(WIN2K以上版本);

好了,接下来我们就在VC中来用这个函数实现我们所要的功能。

首先,由VC中的向导生成一个对话框,注意在生成向导中要选择成静态联编,由于我们在木马中一般是常用的是重启,那么我们就把这个程序取名为reboot吧!去掉它默认生成的静态文本,然后添加了三个单选项。并把其它主要的项设定如下:

控件      ID             属性
Button1   OnOK          “确定”
Button2   OnCancel      “取消”
Radio1    IDC_LOGOFF    “注消计算机”
Radio2    IDC_REBOOT    “重启计算机”
Radio3    IDC_SHUTDOWN  “关闭计算机”
 

第二,打开MFC ClassWizard进行消息的映射处理,五个主要的控件都是用单击这个消息处理,从而为为每个控件进行了消息映射。

 

第三、在rebootDlg.h中为三个单选按钮添加一个标志成员整形变量m_mark。并且在三个单选项按钮的函数体分别加入m_mark=0, m_mark=1, m_mark=2,如:(另两个也同理)

void CRebootDlg::OnLogoff()

{

       // TODO: Add your control notification handler code here

      m_mark=0;    

}

第四、在双击“确定”的按钮,去掉它原来默认调用的ONOK(),并且加入以下的代码为:

 

 

void CRebootDlg::OnCok()

{

       // TODO: Add your control notification handler code here

HANDLE hToken;

TOKEN_PRIVILEGES tkp;

DWORD dwVersion; //版本号

dwVersion = GetVersion(); //得到WINDOWS NT或Win32的版本号

 

switch(m_mark)//由接收单选项值进行相关操作

{

case 0:

           ExitWindowsEx(EWX_LOGOFF,0);

              break;    //注消操作

case 1:

            if(dwVersion < 0x80000000)

            {

              OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|

                                       TOKEN_QUERY,&hToken);

              LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);

              tkp.PrivilegeCount = 1;  //设置权限

              tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

              AdjustTokenPrivileges(hToken,FALSE,&tkp,0,(PTOKEN_PRIVILEGES)NULL,0);

              ExitWindowsEx(EWX_REBOOT | EWX_FORCE,0);

             }

             else //WIN系列其它系统

             {

                   ExitWindowsEx(EWX_FORCE | EWX_REBOOT,0);

             }

             break;            //重启操作

case 2:

       if(dwVersion < 0x80000000)//用于判断WIN系列,从而设置相应的权限

       {

              OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES |

                                   TOKEN_QUERY,&hToken);

              LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);

              tkp.PrivilegeCount = 1;

              tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

              AdjustTokenPrivileges(hToken,FALSE,&tkp,0,(PTOKEN_PRIVILEGES)NULL,0);

              ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE,0);

       }

       else

       {

               ExitWindowsEx(EWX_FORCE | EWX_SHUTDOWN ,0);

        }

     break;//关闭计算机

  }

}

第五、“取消”可以不做处理,采用默认的就可了,然后编译运行完成,这样你就为你的木马编写了远程关机部分。

分享到:
评论

相关推荐

    VC++实现聊天程序(包括远程关机功能)源码

    C++的聊天程序源码, 并带有远程关机和重启功能 仅供学习使用 作者樱花祭------QQ441356547

    远程关机的C++实现

    内容索引:VC/C++源码,网络相关,远程关机 用VC++编程实现远程关机,还可以中止执行目标机的程序。  在IP地址框输入IP,就可以执行操作了,请不要用于非法途径或恶作剧,仅供学习参考。

    VB中编程实现远程唤醒(开机)方法

    6、 网卡与主板连接:主板上通常都有一个专门的3芯插座,以便在关机时为网卡供电,支持远程唤醒的网卡上都有一个3针的WOL接口和一条3芯的远程唤醒电缆,通过判断网卡是否带有WOL接口即可7、 因为条件有限只在INTER...

    毕业设计 基于JAVA CS远程监控系统软件的实现(源代码+论文)

    本系统采用Java网络编程和Java图形编程实现。笔者在开发过程中将网络技术与远程监控理论基础相结合,实现了以下功能:能连续获得被监控端机器屏幕变化;实现被监控端硬盘文件的上传、下载;实现对鼠标、键盘的模拟;...

    基于JAVA CS远程监控系统软件的实现(源代码+WORD论文文档论文).zip

    本系统采用Java网络编程和Java图形编程实现。笔者在开发过程中将网络技术与远程监控理论基础相结合,实现了以下功能:能连续获得被监控端机器屏幕变化;实现被监控端硬盘文件的上传、下载;实现对鼠标、键盘的模拟;...

    基于JAVA CS远程监控系统软件的实现.rar

    远程操作实现:利用Java的网络编程技术,实现远程关机、重启、文件管理等功能。 安全认证:采用安全认证机制,确保只有授权的管理员可以访问和操作系统。 日志记录:使用日志记录框架,记录系统的运行日志和用户...

    基于JAVA的CS远程监控系统软件的设计与实现.doc

    本系统采用Java网络编程和Java图形编程实现。笔者在开发过程中将网络技术与远程监控理论基础相结合,实现了以下功能:能连续获得被监控端机器屏幕变化;实现被监控端硬盘文件的上传、下载;实现对鼠标、键盘的模拟;...

    远程监控软件的设计与实现

    (1)能够远程监控一台主机,显示主机屏幕内容,能远程关机 (2)能远程下载或上传文件。 (3)能远程执行一些DOS命令。 (4)能远程运行一些可执行命令。 具体实现要求:至少实现其中三个功能。

    基于JAVA CS远程监控系统软件的实现毕业设计论文

    本系统采用 Java网络编程和 Java图形编程实现。 笔者在开发过程中将网络技术与远程监控理论基础相结合,实现了以下功能:能 连续获得被监控端机器屏幕变化;实现被监控端硬盘文件的上传、下载;实现对 鼠标、键盘的...

    基于JAVA CS远程监控系统软件的实现(源代码+论文)

    本系统采用Java网络编程和Java图形编程实现。笔者在开发过程中将网络技术与远程监控理论基础相结合,实现了以下功能:能连续获得被监控端机器屏幕变化;实现被监控端硬盘文件的上传、下载;实现对鼠标、键盘的模拟;...

    基于java的CS远程监控系统系统设计与实现毕业设计(源代码+项目报告).zip

    本系统采用Java网络编程和Java图形编程实现。笔者在开发过程中将网络技术与远程监控理论基础相结合,实现了以下功能:能连续获得被监控端机器屏幕变化;实现被监控端硬盘文件的上传、下载;实现对鼠标、键盘的模拟;...

    基于java的CS远程监控系统系统设计与实现毕业设计(源代码+说明报告)

    本系统采用Java网络编程和Java图形编程实现。笔者在开发过程中将网络技术与远程监控理论基础相结合,实现了以下功能:能连续获得被监控端机器屏幕变化;实现被监控端硬盘文件的上传、下载;实现对鼠标、键盘的模拟;...

    [计算机毕设]基于java的CS远程监控系统系统设计与实现(源代码+项目报告).zip

    本系统采用Java网络编程和Java图形编程实现。笔者在开发过程中将网络技术与远程监控理论基础相结合,实现了以下功能:能连续获得被监控端机器屏幕变化;实现被监控端硬盘文件的上传、下载;实现对鼠标、键盘的模拟;...

    基于JAVA CS远程监控系统软件的实现(源代码+说明文档).zip

    本系统采用Java网络编程和Java图形编程实现。笔者在开发过程中将网络技术与远程监控理论基础相结合,实现了以下功能:能连续获得被监控端机器屏幕变化;实现被监控端硬盘文件的上传、下载;实现对鼠标、键盘的模拟;...

    毕业设计-基于JAVA CS远程监控系统软件的实现(源代码+论文)

    本系统采用Java网络编程和Java图形编程实现。笔者在开发过程中将网络技术与远程监控理论基础相结合,实现了以下功能:能连续获得被监控端机器屏幕变化;实现被监控端硬盘文件的上传、下载;实现对鼠标、键盘的模拟;...

    基于JAVA CS远程监控系统软件的实现(源代码+论文)_sicknef_JAVA执行文件_JavaRobot_javasock

    本系统采用Java网络编程和Java图形编程实现。在开发过程中将网络技术与远程监控理论基础相结合,实现了以下功能:能连续获得被监控端机器屏幕变化;实现被监控端硬盘文件的上传、下载;实现对鼠标、键盘的模拟;实现...

    基于JAVA C/S远程监控系统软件

    本系统采用Java网络编程和Java图形编程实现。笔者在开发过程中将网络技术与远程监控理论基础相结合,实现了以下功能:能连续获得被监控端机器屏幕变化;实现被监控端硬盘文件的上传、下载;实现对鼠标、键盘的模拟;...

    java 毕业设计 答辩 论文

    Java Socket j 本系统采用Java网络编程和Java图形编程实现。笔者在开发过程中将网络技术与远程监控理论基础相结合,实现了以下功能:能连续获得被监控端机器屏幕变化;实现被监控端硬盘文件的上传、下载;实现对鼠标...

    一个简单的远程控制软件报告

    一个简单远程监控软件的设计与实现 任务:实现一个简单远程...(1)能够远程监控一台主机,显示主机屏幕内容,能远程关机 (2)能远程下载或上传文件。 (3)能远程执行一些DOS命令。 (4)能远程运行一些可执行命令。

    C# 实现局域网视频监控(Socket 编程)

    服务器端可以实时观察远程客户端,并可以对客户端进行各种操作,例如:关机、注销账户或重新启动,当然还可以对客户端输入设备进行锁定和解锁。除了这些,服务器端可以执行更高级的操作:即浏览客户端文件系统,并...

Global site tag (gtag.js) - Google Analytics