【问题标题】:Interpret Windows Native API call arguments解释 Windows 本机 API 调用参数
【发布时间】:2013-01-15 21:04:20
【问题描述】:

我正在根据执行跟踪分析可执行文件。我已经使用NtTrace 工具获得了执行跟踪。输出是一系列带有参数的原生 api 调用。我已经设法解释了大多数 API 调用,但以下调用除外:

NtQueryKey( KeyHandle=0x46a, KeyInformationClass=7 [KeyHandleTagsInformation], KeyInformation=0x312c4e0, Length=4, ResultLength=0x312c4dc [4] ) => 0

NtDeviceIoControlFile( FileHandle=0xbe4, Event=0xce8, ApcRoutine=null, ApcContext=null, IoStatusBlock=0x124cf2b0 [0/0xffc], IoControlCode=0x00012017, InputBuffer=0x124cf298, InputBufferLength=0x10, OutputBuffer=null, OutputBufferLength=0 ) => 0

NtQueryKey 中,如何将KeyHandle=0x46a 映射到实际的注册表项。更进一步,在NtDeviceIoControlFile基于IoControlCode=0x00012017是不是可以查出是不是TCP_RECV,TCP_SEND等等...

谢谢。

【问题讨论】:

    标签: winapi kernel kernel32 ntdll nt-native-api


    【解决方案1】:

    来自 Sysinternals(现在是 Microsoft 的一部分)的 Process Monitor 将在显示注册表活动时向您显示实际的密钥路径。它还可以监控网络活动。

    Sysinternals Tools

    【讨论】:

      【解决方案2】:

      只需在跟踪中回顾一下,即可找到所处理的密钥被打开的点。如果该键是相对于另一个键打开的,则您可能必须递归地重复此过程。将来,我建议使用来自 sysinternals 的 procmon。输出要好得多。

      【讨论】:

        猜你喜欢
        • 2014-07-09
        • 2011-01-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多