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

  对系统服务的管理几乎是目前的木马必不可少的功能,比如神气儿、上兴远程控制等,都提供了此项服务。要是我们能给自己编写的木马也加上这个功能,看着也不赖哦。好啦,废话不多说,下面开始干活!我们的木马要实现的效果如图1和图2所示。

  取得配置权限

  在对服务进行管理设置前,我们需要以相应的权限打开服务,本文通过下面的两个API来实现操作。

SC_HANDLE OpenSCManager(

LPCTSTR lpMachineName,

// pointer to machine name string

LPCTSTR lpDatabaseName,

// pointer to database name string

DWORD dwDesiredAccess  // type of access

);

SC_HANDLE OpenService(

SC_HANDLE hSCManager,

// handle to service control manager database

LPCTSTR lpServiceName,

// pointer to name of service to start

DWORD dwDesiredAccess

// type of access to service

);

  对于系统服务的管理,通常情况下我们是以完全权限打开的,要实现这个功能,我们可以使用下面的代码来操作。

SC_HANDLE scm;

    SC_HANDLE service;

       if((scm=OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS))==NULL)

       {     Printf("OpenSCManager Error\n");

       }

    service=OpenService(scm,ServerName,SERVICE_ALL_ACCESS);

       if(!service)

       {    Printf("OpenService error!\n");

       }

  这样,就可以通过Service句柄对服务进行各种操作了。

  枚举基本服务信息

  想要对服务进行设置,就需要知道服务的当前信息。其中对我们有用的通常是以下几项:服务名称、显示名称、启动状态、启动方式和程序路径等。这些信息我们可以通过API函数EnumServicesStatus来实现,它的原形如下:

BOOL EnumServicesStatus(

  SC_HANDLE hSCManager,

 // handle to service control manager database

  DWORD dwServiceType,

 // type of services to enumerate

  DWORD dwServiceState,

 // state of services to enumerate

  LPENUM_SERVICE_STATUS lpServices,

  // pointer to service status buffer

  DWORD cbBufSize,

 // size of service status buffer

  LPDWORD pcbBytesNeeded,

 // pointer to variable for bytes needed

  LPDWORD lpServicesReturned,

  // pointer to variable for number returned

  LPDWORD lpResumeHandle

 // pointer to variable for next entry

 );

  在上面的代码中,LPENUM_SERVICE_STATUS lpServices是一个结构,其原形如下:

typedef struct _ENUM_SERVICE_STATUS { // ess

LPTSTR lpServiceName;

LPTSTR lpDisplayName;

SERVICE_STATUS ServiceStatus;

} ENUM_SERVICE_STATUS, *LPENUM_SERVICE_STATUS;

  这个结构中包含服务名称、显示名称、启动状态。虽然它所返回的信息是极为有限的,但它是一次枚举所有的服务信息的。在要求不高的情况下,用它还是相当方便的。下面的示例代码可以枚举系统中所有服务的基本信息,实现代码如下所示。

LPENUM_SERVICE_STATUS lpServices    = NULL;

       DWORD    nSize = 0;

       DWORD    n;

       DWORD    nResumeHandle = 0;

       lpServices=(LPENUM_SERVICE_STATUS) LocalAlloc(LPTR, 64 * 1024);   //注意分配足够的空间

       EnumServicesStatus(scm,SERVICE_WIN32,SERVICE_STATE_ALL,(LPENUM_SERVICE_STATUS)lpServices,64 * 1024,&nSize,&n,&nResumeHandle);

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

       {

       Printf("服务名称: %s",lpServices[i].lpServiceName);

       Printf("显示名称: %s",lpServices[i].lpDisplayName);

       if ( lpServices[i].ServiceStatus.dwCurrentState!=SERVICE_STOPPED)

       {     Printf("启动状态:  已启动\n");

       }

       }

  枚举详细服务信息

  如果想要得到更详细的服务信息,我们可以使用另一个API函数QueryServiceConfig来获得,它的原形如下所示。

BOOL QueryServiceConfig(

  SC_HANDLE hService, // handle of service

  LPQUERY_SERVICE_CONFIG lpServiceConfig,

  // address of service config. structure

  DWORD cbBufSize,

  // size of service configuration buffer

  LPDWORD pcbBytesNeeded

 // address of variable for bytes needed

 );

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

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

  • 下一篇黑客: 没有了
  • (只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
    姓 名:
    * 游客填写  ·注册用户
    主 页:
    评 分:
    1分 2分 3分 4分 5分
    评论内容:
    验证码: *
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  • 最新hack更新
    最新推荐资讯
    相关黑客
    曝光木马十大藏身地
    巧用遨游找出传马路径
    经典一句话Asp木马加密
    黑客常用远程控制木马
    亮点频频的黑洞2007
    隐形木马在系统中启动
    木马生成的技术
    菜鸟必懂木马连接原理
    某网游盗号木马的实现
    手工添加后门中系统服务
    最新会员软件
    最新推荐视频
    最新推荐动画

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

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