【问题标题】:Tracing C# DLL function calls跟踪 C# DLL 函数调用
【发布时间】:2014-04-18 07:46:31
【问题描述】:

[旧版应用程序(属于供应商)] -> [DLL(混淆)] -> [新子系统(已替换)]

我得到了一个 DLL,它被混淆了(除了公开的函数名)。

我无法反编译它,也没有任何关于如何调用这些调用的参考手册。

有没有办法让我注入一些代码,以便我知道它是如何被调用的顺序?

这个DLL比较复杂,我不可能在这个DLL和我的函数之间写一个代理。

我需要确保我能够替换 DLL,并将其指向新的子系统,而不会对其他供应商提供的旧版应用程序造成任何问题。

提前致谢。

【问题讨论】:

    标签: c# dll reflector


    【解决方案1】:

    您可以使用ILSpy。打开DLL,选择要分析的任何方法,选择分析方法。将打开一个新窗口,其中显示三个类别(使用、使用者和覆盖者)。您可以在层次结构中导航。

    如果有任何免费工具可以在运行时显示跟踪...我不知道。但我目前正在使用 ANTS Performance Profiler,它显示了跟踪(包括性能细节)。

    最后还有这篇关于codeproject的文章:http://www.codeproject.com/Articles/15410/Creating-a-Custom-NET-Profiler 它展示了如何构建“自定义 .NET Profiler”并将跟踪保存在文本文件中:

    System.IO.StringWriter.Write, id=70671928, call count = 622
      System.Text.StringBuilder.Append, id=21629200, call count = 635
        System.IntPtr.op_Inequality, id=21665400, call count = 717
        System.String.AppendInPlace, id=9670768, call count = 635
    System.Configuration.XmlUtilWriter.AppendAttributeValue, id=73427152, call count = 14
      System.Xml.XmlTextReader.get_QuoteChar, id=70046432, call count = 14
        System.Xml.XmlTextReaderImpl.get_QuoteChar, id=70049120, call count = 14
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-26
      • 2012-02-29
      • 1970-01-01
      • 2014-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多