是否有工具允许在正在运行的进程中检查.NET对象?

时间:2009-01-28 00:32:49

标签: .net reverse-engineering

我正在考虑一种在运行时检查对象的工具,主要用于逆向工程,我想知道是否存在这样的事情。

我想到的方式是你有两个视图,一个对象图和一个类列表。从类列表中,您可以选择一个类,并在列表或图形中查看它的实例。在图中,您可以看到对象之间的连接,并进行适当注释,例如:哈希表中的键可以是哈希表对象和值之间边缘上的标签。

您还可以提取对象属性列表并查看/操作其中的值。 .NET中提供的元数据会使这变得相当简单。

有没有人知道可以做到这一点的工具?它似乎是一个非常有用的调试和逆向工程工具。

编辑:另外,另一个有用的功能是能够在查看二进制文件时设置名称映射。也就是说,如果你有一个混淆的二进制文件,你就可以交换混淆的占位符或真实姓名。这不会影响实际的二进制文件,只会影响检查器中的视图。

编辑第2部分:该工具应该能够在Vista和XP上运行,并且支持x64。

4 个答案:

答案 0 :(得分:9)

有一个名为Crack.NET的工具,专门用于分析托管堆。

http://joshsmithonwpf.wordpress.com/cracknet/

http://www.codeplex.com/cracknetproject

答案 1 :(得分:1)

如果您有正在运行的进程,那么您的计算机上就有二进制文件。

您可以在Reflector中加载此二进制文件。

或者,如果安装了Visual Studio,则可以将Visual Studio调试器附加到正在运行的进程。

答案 2 :(得分:1)

有一个名为Hawkeye的程序可以让你查看.NET应用程序中的UI元素。

我还找到了一个名为.NET Component Inspector的程序。我不确定它有多好(现在就试试)。

答案 3 :(得分:1)

您总是可以从相关应用程序中获取一个minidump,并使用WinDBG和SOS进行检查。