首页
社区
课程
招聘
[旧帖] [原创]在真实环境下动态跟踪调试分析系统服务程序的技术方法 0.00雪花
发表于: 2008-5-20 16:50 3089

[旧帖] [原创]在真实环境下动态跟踪调试分析系统服务程序的技术方法 0.00雪花

2008-5-20 16:50
3089
/////////////////////////////////////////////////////////////////////////////////////////////
文章名称:在真实环境下动态跟踪调试分析系统服务程序的技术方法
文章类型:逆向工程、动态跟踪调试分析系统服务程序
编写作者:Coderui
编写日期:2008年05月20日
作者博客:http://hi.baidu.com/coderui
/////////////////////////////////////////////////////////////////////////////////////////////
---------------------------------------------------------------------------------------------
介绍:
  在真实环境下动态跟踪调试分析系统服务程序的技术方法在网络上貌似很难找到。由于当前众多计算机病毒都采用了服务的方式来运行,我们就不得不去寻找合适的方法进行对付。经过几个小时的调试和分析,总结出了一个可以在真实环境下动态跟踪调试分析系统服务程序的技术方法,并整理后将其以笔记的形式公开,只希望对需要这部分资料的朋友有帮助,也许可以做一点点的参考吧。
  本方法可能不够科学简练,但是是自己分析总结的。记得以前在网络上一直都没搜索到关于这部分的资料,也不知道是没有,还是没人公开,呵呵。很多朋友可能想在真实环境下去动态跟踪调试分析一个系统服务程序(比如一个以系统服务方式启动运行的病毒程序,想仔细的去按照系统加载后代码的执行顺序去跟踪调试,而不是单纯的看病毒现象或看静态反汇编代码的话,就需要掌握在真实环境下动态跟踪调试分析系统服务程序的技术方法),但无从下手,希望这份资料可以对您有一点点的启发。实际反复多次调试测试都有效,就看你手法的速度了,呵呵。
---------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------
安装、调用服务程序部分:
(负责安装、启动运行服务程序。)
--------------------------------------------------------------
安装服务:
bp CreateServiceA

启动服务(程序在调用系统执行该函数时,系统“服务管理器”会等待(大概30秒左右)返回是否成功启动的消息。):
bp StartServiceA
--------------------------------------------------------------

服务程序部分:
(服务程序被系统启动后,系统在等待(大概30秒左右)该服务返回是否启动成功的消息时,我们要以最快的速度去完成下边的所有操作。)
(因为系统如果等待超时(大概30秒左右),就会强行把启动的服务程序关闭掉。我们就无法再向下去继续动态跟踪调试服务程序了。)
(只有当系统服务管理器在有限的时间内接收到了服务程序“StartServiceCtrlDispatcherA”函数发出的消息,才会让该服务程序继续运行下去。)
--------------------------------------------------------------
服务程序与普通程序走同一个OEP入口,需要用(INT3)把服务程序在启动时停在OEP入口处。

对服务程序中的创建服务执行函数下断(该函数的参数是一个SERVICE_TABLE_ENTRY结构):
bp StartServiceCtrlDispatcherA

SERVICE_TABLE_ENTRY结构(该结构包含了进程内所有服务的名称和服务入口点)的第2个地址值为服务程序入口地址(服务程序代码最先执行的地方):
00104000 A0174000

然后对这个程序的服务入口地址下断,[F9]运行,服务程序就会停在这里了(这里就是服务程序要执行功能代码的开头):
004017A0    56              PUSH ESI

后边的代码就可以放心的去慢慢的继续动态跟踪分析了,不会再被“系统服务管理器”给强行关闭掉了。
这就是在真实环境下动态调试分析服务程序的方法(实际调试测试通过,方法由作者“Coderui”自创并整理发布,希望对需要这部分资料的朋友有帮助)。
--------------------------------------------------------------
---------------------------------------------------------------------------------------------
/////////////////////////////////////////////////////////////////////////////////////////////

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//