反转 Windows 服务
逆向工程
视窗
ollydbg
恶意软件
2021-07-09 03:49:41
2个回答
如果您想调试服务初始化并且它自动发生(不是由您执行的某些操作触发),您可能无法在任何比 XP 新的 Windows 上使用 ollydbg 进行调试。您必须使用 WinDbg。
您需要为您的进程名称设置 IFEO Debugger 以将 CDB作为服务器运行(例如cdb.exe -server tcp:port=12345 -noio
),并将 WinDbg 作为客户端运行并连接到您的服务器(windbg.exe -remote tcp:server=localhost,port=12345
)。
您可能希望将HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServicesPipeTimeout
注册表值更改为更长一点。这是 SCM 等待它运行的服务与之对话的时间。
如果不需要调试初始化,只需在服务启动后附加到服务,然后就可以使用ollydbg。
所有这些以及您需要了解的几乎所有内容都记录在标题为Debugging a Service Application的 MSDN 页面下。
编辑:如果可以修补二进制文件,您可以像gandolf建议的那样在入口点添加一个无限循环,然后在登录后附加调试器。
或者,如果二进制文件没有执行任何干扰它的 SEH 技巧:向入口点添加异常(0xCC - int 3 是明显的选择),设置AeDebug
为长时间运行的进程(例如notepad.exe
),然后附加调试器. 这就是Inside Windows Debugging 的建议(第 139 页)。
或者,更简单、更有意义的方法是:添加相同的 INT3,并设置AeDebug
为与cdb.exe
放入 IFEO相同的命令行,并在登录后将 WinDbg 连接到它。