| 网站首页 | 资讯 | Hack | 漏洞 | 网管 | 编程 | 培训 | 品黑页 | 软件 | 论坛 | 动画 | 视频 | 经典 | 教学站 | 黑客点睛 | 
服务导航 我要发布 主力频道 空间域名 精华收集 服务器出租 黑客培训 光盘刻录 特色服务 解决方案 我要投诉
您现在的位置: 华夏黑客同盟 >> Hack >> 牧马天地 >> 正文 用户登录 新用户注册
木马编程DIY之系统服务       ★★★ 【字体:
木马编程DIY之系统服务
作者:不详 文章来源:华盟收集 点击数: 更新时间:2008-5-10

  其中LPQUERY_SERVICE_CONFIG lpServiceConfig也是一个结构,它包含指定服务的详细资料,其原形如下所示。

typedef struct _QUERY_SERVICE_CONFIG { // qsc

DWORD dwServiceType;

DWORD dwStartType;

DWORD dwErrorControl;

LPTSTR lpBinaryPathName;

LPTSTR lpLoadOrderGroup;

DWORD dwTagId;

LPTSTR lpDependencies;

LPTSTR lpServiceStartName;

LPTSTR lpDisplayName;

}QUERY_SERVICE_CONFIG, LPQUERY_SERVICE_

CONFIG;

  很清楚了吧?服务类型、启动类型、程序路径、服务名称、显示名称尽在其中。而下面的示例代码则可以得到程序路径和启动方式,其代码如下所示。

LPQUERY_SERVICE_CONFIG ServicesInfo = NULL;

   for ( i = 0; i < n; i++)

   {

       SC_HANDLE service = NULL;

       DWORD     nResumeHandle = 0;

       service=OpenService(scm,lpServices[i].lpServiceName,SERVICE_ALL_ACCESS);

       ServicesInfo = (LPQUERY_SERVICE_CONFIG) LocalAlloc(LPTR, 64 * 1024);

       //注意分配足够的空间

       QueryServiceConfig(service,ServicesInfo,64 * 1024,&nResumeHandle);

       //枚举各个服务信息

       Printf("程序路径: %s",ServicesInfo->lpBinaryPathName);

       if(2==ServicesInfo->dwStartType)      //启动方式

       {

       Printf("自动\n");

       }

       if(3==ServicesInfo->dwStartType)

       {

       Printf("手动\n");

       }

       if(4==ServicesInfo->dwStartType)

       {     Printf("禁止\n");

       }

   }

  上面的代码,只要大家根据需要稍加修改,就可以用到自己的程序中了。现在,对于服务信息的显示就算完成了。

  启动/停止服务

  启动一个服务我们可以用StartService函数来实现,不过在启动前得先用QueryServiceStatus检查一下服务的运行状态。具体的实现代码如下所示。

SERVICE_STATUS status;

    BOOL isSuccess=QueryServiceStatus(service,&status);

    if (!isSuccess)

       {

    Printf("QueryServiceStatus error!\n");

       }

    if ( status.dwCurrentState==SERVICE_STOPPED )

       {

       isSuccess=StartService(service,NULL,NULL);

       if (!isSuccess)

       {

       Printf("启动服务失败!");

       }

       }

  下面是停止服务的实现代码。

 if ( status.dwCurrentState!=SERVICE_STOPPED )

       {

    isSuccess=ControlService(service,SERVICE_CONTROL_STOP,&status);

    if (!isSuccess )

       {

    Printf("停止服务失败!");

       }

       }

  创建/删除服务

  创建服务我们使用的API为CreateService,其原形如下所示。

SC_HANDLE CreateService(

  SC_HANDLE hSCManager,

 // handle to service control manager database

  LPCTSTR lpServiceName,

 // pointer to name of service to start

  LPCTSTR lpDisplayName,

 // pointer to display name

  DWORD dwDesiredAccess,

 // type of access to service

  DWORD dwServiceType, // type of service

  DWORD dwStartType,   // when to start service

  DWORD dwErrorControl,

 // severity if service fails to start

  LPCTSTR lpBinaryPathName,

  // pointer to name of binary file

  LPCTSTR lpLoadOrderGroup,

  // pointer to name of load ordering group

  LPDWORD lpdwTagId,

  // pointer to variable to get tag identifier

  LPCTSTR lpDependencies,

 // pointer to array of dependency names

  LPCTSTR lpServiceStartName,

  // pointer to account name of service

  LPCTSTR lpPassword

 // pointer to password for service account

 );

上一页  [1] [2] [3] 下一页

责任编辑:朱倩  联系方式  Email:朱倩
电话:51228163
  • 上一篇黑客:

  • 下一篇黑客:
  • (只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
    姓 名:
    * 游客填写  ·注册用户
    主 页:
    评 分:
    1分 2分 3分 4分 5分
    评论内容:
    验证码: *
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  • 最新hack更新
    最新推荐资讯
    相关黑客
    菜鸟必懂木马连接原理
    隐形木马在系统中启动
    分享木马免杀技术经验
    社会工程学拿导航站
    木马技术发展趋势回顾
    DBO权限日志备份一句
    社会工程学拿导航站
    查杀模式和木马免杀方案
    权限日志备份专用木马
    加密你的大马
    最新会员软件
    最新推荐视频
    最新推荐动画

    Copyright @ 2005 77169.Net Inc. All rights reserved. 华夏黑客同盟 版权所有
    北京市电信通提供网络带宽

    mailto:webmaster@77169.net
    咨询QQ号:836982 / 59280880
    联系站长 QQ38588913
    热线电话: 86-10-67634029/676229433
    京ICP证041431号