Windows – Microsoft Detours如何工作,如何使用它来获取堆栈跟踪?

前端之家收集整理的这篇文章主要介绍了Windows – Microsoft Detours如何工作,如何使用它来获取堆栈跟踪?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是微软绕行的新人。我已经安装它来跟踪一个进程所做的系统调用。我运行以下从网络获得的命令
syelogd.exe /q C:\Users\xxx\Desktop\log.txt 
withdll.exe /d:traceapi.dll C:\Program Files\Google\Google Talk\googletalk.exe

我得到日志文件。问题是我不完全明白这里发生了什么。绕道如何工作?它如何跟踪系统调用
另外我也不知道如何读取log.txt中的输出。这是log.txt中的一行

20101221060413329 2912 50.60: traceapi: 001 GetCurrentThreadId()

最后我想得到进程的堆栈跟踪。我该怎么做?

绕行可让您拦截任何功能。它将jmp放置在您指定的地址中,为您的代码创建蹦床。最后,如果要这样做,你调用函数
要使用曲折,您必须在要拦截的过程中注入代码

为了简化此过程,您可以使用Deviare API Hook,它可以使用所有的注入工作人员,您可以使用任何支持COM技术的编程语言(包括.NET,Delphi,C,Python等)的截取应用程序。
下载包后,您会发现一些例子。有一个名为DeviareCSharpConsole的控制台,您可以拦截显示完整堆栈跟踪信息的任何进程的任何API。

这是Deviare API Hook的工作方式,但是如果您要创建一个挂钩另一个进程的应用程序,则需要执行以下操作:

应在目标进程中创建一个代理,以拦截所需的API。为了拦截这些API,您可以使用“绕行”,但是必须对该库中未包含的IPC员工进行编码。

如果您需要使用Deviare API Hook在目标进程中编写代码,则可以使用Deviare Custom Hooks.此功能可以拦截API并异步处理已处理的参数。

猜你在找的Windows相关文章