逆向工程窗口服务

逆向工程 视窗 艾达 ollydbg
2021-06-19 20:12:09

我正在尝试对包含 2 个组件、Windows 服务和控制面板应用程序的驱动程序进行逆向工程。我逆向工程的目标是用我自己的程序替换控制面板。

现在据我所知,我有几种可能的方法:

  1. 我尝试对控制面板进行逆向工程,并发现发送的呼叫。但是这个面板包含很多英国媒体报道。
  2. 我尝试对服务进行逆向工程,并发现所需的输入。但该服务还处理其他(未知)功能。
  3. 我尝试捕捉面板和服务之间的通信。

现在 3 将是最简单的方法,但我不知道这在技术上是否可行。然后我尝试了选项 2,但我只能静态分析 exe,因为动态分析会导致它过早崩溃。选项1似乎是最合乎逻辑的,这是我尝试的第一个,但我真的找不到一个有趣的起点。

有没有人可以指出我正确的方向。我有一些来自rackme 和应用程序的逆向工程经验,但这是我第一次尝试逆向驱动程序。

1个回答

如果您的目标是最终控制服务,那么反转它比反转控制面板更有意义。谁知道呢,您可能会发现您不知道的功能。逆向windows服务的关键是要意识到它是在服务控制管理器的上下文中运行的,仅仅运行可执行文件是行不通的。您需要了解任何 Windows 服务的几个主要组件。我已经回答了services.exe 如何触发服务的启动?问题。它描述了 Windows 服务的内部工作原理。

只要您了解下划线概念,就可以动态和静态地反转 Windows 服务。如果您在命令提示符的上下文中运行您的服务,它将失败。设计的每个 Windows 服务都必须调用服务控制管理器,如果该调用失败,则意味着该服务未在 SCM 中执行。预计在 SCM 之外执行将失败。如果服务需要输入,您就必须弄清楚它需要什么。首先,您需要找到 Service Worker Thread。此后,定位它与控制面板通信的部分方式应该很容易。