| 网站首页 | 硬件维修 | 应用学院 | 网络组建 | 网站制作 | 菜鸟黑客 | 编程之道 | 数码大全 | 娱乐休闲 | 软件下载 | 在线视频 | 请您留言 | 技术论坛 | 
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
  • 如何一次性删掉木马

  • 用C语言轻松编写QQ挂机王

  • 木马是怎样突破QQ防御中心的

  • 如何利用路由器做到防止DoS洪…

  • 用Windows自带工具打造“免检…

  • 如何有效防范自己的IP地址泄…

  • 怀疑PC安装木马?学学网络安…

  • 用端口截听实现隐藏嗅探与攻…

  • 关于木马隐藏一个的新方法

  • 教你如何:入侵UNIX和Linux服…

  • Q
    您现在的位置: 我是IT人 >> 菜鸟黑客 >> 黑客攻防 >> 文章正文
    木马中如何编程实现远程关机         
    木马中如何编程实现远程关机
    作者:网络 文章来源:转载 点击数: 更新时间:2005-9-7
    [ 字体:缩小 正常 放大 | 双击自动滚屏 ]
    请选择合适的字体颜色:

     远程控制中,有一个重要的部份就是如何实现远程关机,如在各种黑客入侵中,我们到处可以见到木马的身影,木马它作为一种远程控制软件,它一般是实现了远程关机功能的。如我国大名鼎鼎的木马“冰河”等,都是有这个功能的,只是它是各种功能的集合罢了,今天我们就来看看这个重要的关机部分是如何编程实现的,在这里我就用眼下流行的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)

    [1] [2] 下一页  

    文章录入:小秦    责任编辑:小秦 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系站长 | 关于我们 | 友情链接 | 版权申明 |