代码之家  ›  专栏  ›  技术社区  ›  Arve

用于分析可执行文件的库

  •  3
  • Arve  · 技术社区  · 15 年前

    有一些工具 Dependency Walker ,dumpbin,ildam,用于查找Windows上的dlls/exe文件。我想从代码中分析DLL,尤其是托管和非托管依赖项。是否有任何(.net)库可用于使用类似功能进行分析?

    我想用这个来验证我们是否在我公司创建的安装程序中部署了正确的DLL。我们有200多个DLL。

    4 回复  |  直到 15 年前
        1
  •  3
  •   Jb Evain    15 年前

    你可以使用 Cecil 用于分析托管可执行文件的库。你可以使用 Gendarme 如果您希望规则引擎检查您的应用程序,则使用Cecil。

        2
  •  3
  •   Patrick from NDepend team    15 年前

    NDepend 确实是您要查找的工具,但您还应考虑减少程序集的数量,如下所述: Advices on partitioning code through .NET assemblies

        3
  •  1
  •   Eilon    15 年前

    如果您想自己进行依赖性检查,可以为Visual Studio的托管代码程序集编写代码分析(FxCop)插件。

    Tutorial on writing your own Code Analysis rule

    如果需要预构建的工具,可以使用:

    1. Visual Studio中的内置代码分析(FxCop)工具。
    2. NDepend
        4
  •  1
  •   wj32    15 年前

    我希望这不会违反任何规则,但您可能想看看我开发的一个库,它可以看到图像导入和导出等一堆东西。从这里下载源代码: https://sourceforge.net/projects/processhacker/files . 提取processhacker.common和processhacker.native,将它们包含在解决方案中,并引用它们。

    以下是如何使用它:

    using ProcessHacker.Native.Image;
    
    MappedImage image = new MappedImage("file.exe");
    
    for (int i = 0; i < image.Imports.Count; i++)
    {
        Console.WriteLine("Imports for " + image.Imports[i].Name + ":");
    
        for (int j = 0; j < image.Imports[i].Count; j++)
            Console.WriteLine(image.Imports[i][j].Name);
    }
    

    不过,我不知道如何处理.NET引用。