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

  其中DWORD dwStartType是指动方式,有SERVICE_AUTO_START(自动)、SERVICE_DEMAND_START(手动)和SERVICE_DISABLED(禁用)三种方式。此函数的参数比较多,但我们通常只会用到其中的一部分,比如SC_HANDLE hSCManager(用OpenSCManager打开的句柄)、LPCTSTR lpServiceName(服务名称)、LPCTSTR lpDisplayName(显示名称)、DWORD dwStartType(启动方式)和LPCTSTR lpBinaryPathName(程序路径),其它的直接赋值为0或Null就可以了。而下面的代码就可以创建一个名为 LengFeng、路径为C:\LengFeng.EXE的自启动服务。

void CreateServer()

{

SC_HANDLE scm=NULL;

SC_HANDLE service=NULL;

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

{

Printf("OpenSCManager Error");

}

service=CreateService(scm,"LengFeng","LengFeng",SERVICE_ALL_ACCESS,SERVICE_WIN32_OWN_PROCESS,SERVICE_AUTO_START,SERVICE_ERROR_NORMAL,"C:\LengFeng.EXE",0,0,0,0,0);

if(!service)

Printf("服务创建失败");

CloseServiceHandle(service);

CloseServiceHandle(scm);

}

  要实现删除服务则比较容易,我们只要使用DeleteService即可实现,其代码如下所示。

  BOOL DeleteService( SC_HANDLE hService);

  这里提醒大家一下,SC_HANDLE hService是我们上面用OpenService打开的服务句柄,在删除服务前要注意先用启动/停止服务中介绍的方法停止正在运行的服务才可以。

  配置启动方式

  有时候我们需要对服务的启动方式进行更改,比如将Telnet改为自动运行,对已存在的服务进行配置等。我们可以用ChangeServiceConfig来实现,其原形如下所示。

BOOL ChangeServiceConfig(

  SC_HANDLE hService, // handle 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 service binary file name

  LPCTSTR lpLoadOrderGroup,

  // pointer to load ordering group name

  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

  LPCTSTR lpDisplayName // pointer to display name

 );

  揉揉眼睛仔细看一下,上面的代码是不是有点面熟?它的参数跟创建服务的CreateService就是一样的嘛!这下就好办了。我们把需要的地方改掉,不需要的就放个Null或SERVICE_NO_CHANGE就行了。

  为了实现安全的更新配置信息,微软要求在执行ChangeServiceConfig之前需要用LockServiceDatabase来锁定服务数据。我测试了一下,有时候虽然会锁定失败,但仍然可以实现对服务配置的更改。下面的示例代码,可以把上面创建的LengFeng服务的启动方式改为“禁止”,其实现代码如下所示。

SC_LOCK sclLock;

sclLock = LockServiceDatabase(scm);

if (sclLock == NULL)

{

 if (GetLastError() != ERROR_SERVICE_DATABASE_

LOCKED)

Printf("LockServiceDatabase error\n");

} if (! ChangeServiceConfig(

service,   // handle of service

SERVICE_NO_CHANGE, // service type: no change

SERVICE_DISABLED, // 这里做了更改

SERVICE_NO_CHANGE, // error control: no change

NULL,        // binary path: no change

NULL,        // load order group: no change

NULL,        // tag ID: no change

NULL,        // dependencies: no change

NULL,       // account name: no change

NULL,           // password: no change

NULL))       //displayname

{Printf("ChangeServiceConfig error!\n"); }

UnlockServiceDatabase(sclLock);

  至此为止,与系统服务相关的操作,我们就搞个八九不离十了。要想把它们加到自己的木马程序中,我们只要设计一个便于网络传输的结构,然后把代码拷进去就差不多了。在写这个小程序时,我将遇到的问题写在了自己的博客blog.csdn.net/chinafe中,有兴趣的读者可以跟我一起讨论,或者登录黑防官方论坛一起讨论也可。

上一页  [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号