我有一个停止工作的旧DLL(log2vis.dll),我想查看它内部以查看它使用的对象。
DLL是用C ++(而不是.NET)编写的。有没有可以反编译/反汇编C ++文件的工具?
答案 0 :(得分:26)
这可能是不可能的,或者至少是非常困难的。 DLL的内容不依赖于(很多)用C ++编写的内容;这是所有的机器代码。该代码可能已经过优化,因此原始源代码中存在的大量信息都已消失。
尽管如此,here是一篇关于这样做的文章。
答案 1 :(得分:10)
答案 2 :(得分:8)
我认为C ++ DLL是一个机器代码文件。因此,反编译只会导致汇编代码。如果你可以阅读并创建C ++那么你就可以了。
答案 3 :(得分:5)
我不知道有任何反编译器。 W32dasm是一个很好的Win32反汇编程序。
答案 4 :(得分:4)
由于大多数有用信息在编译过程中被丢弃,因此实际上没有任何方法可以做到这一点。但是,您可能需要查看this site以查看是否可以找到从DLL中提取内容的某种方法。
答案 5 :(得分:0)
您要做的最接近的事情是 dissasembler 或调试信息(Log2Vis.pdb)。