如何将DLL转换为C ++代码?

时间:2013-03-01 01:32:46

标签: c++ dll reverse-engineering decompiling

我知道将dll转换为c ++代码是不可能的,所以我想从中收集尽可能多的细节。 这不是我的dll,所以我当然没有源代码。我应该使用哪个程序?

3 个答案:

答案 0 :(得分:13)

好吧,如果你很熟练,你可以反汇编DLL并理解它的所有功能。这需要花费大量时间,但如果你这样做,你可以手动将其反转回源。

否则,您可以首先使用Dependency Walker之类的工具来获取它依赖的DLL和函数,以及它导出的函数。从那里你可以找到你感兴趣的功能,并使用像IDA这样的反汇编程序来查看它们的功能。

答案 1 :(得分:2)

您可以使用dumpbin工具查看导出的函数列表。如果导出C ++函数,则可以通过名称mangling来推断参数。

您只需将其“打开”为Visual Studio中的资源查看文件,即可从DLL中提取所有资源。如果DLL是基于COM的DLL,则类型库作为资源嵌入其中的可能性很小。如果你有类型库,你可以#import它来重建公共接口的头文件。

这和它一样好。

答案 2 :(得分:1)

您需要一个PE文件查看器。这将告诉您DLL的导出,您可以在.text部分获取数据以查看机器代码。