gpt4 book ai didi

windows - Microsoft Detours 如何工作以及如何使用它来获取堆栈跟踪?

转载 作者:可可西里 更新时间:2023-11-01 12:14:41 34 4
gpt4 key购买 nike

我是 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()

最后我想获取进程的堆栈跟踪。我怎样才能得到它?

最佳答案

Detours 可让您拦截任何函数。它在您指定的地址中放置一个 jmp,为您的代码创建一个蹦床。最后,如果你想这样做,你可以调用旧函数。要使用 Detours,您必须在要拦截的进程中注入(inject)代码。

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

这是路Deviare API Hook可行,但如果你想创建一个 Hook 另一个进程的应用程序,你需要做的是:

Deviare API Hook Design

应该在目标进程中创建一个代理来拦截你想要的API。要拦截这些 API,您可以使用 Detours,但您必须编写未包含在该库中的 IPC 人员代码。

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

关于windows - Microsoft Detours 如何工作以及如何使用它来获取堆栈跟踪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4507581/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com