如何从本机DLL获取源代码?

时间:2013-02-17 18:49:57

标签: dll native reflector

如何从原生dll获取源代码?反射器没有运气。

1 个答案:

答案 0 :(得分:2)

你不能。

严格来说,您也无法使用Reflector获取托管 dll的源代码(例如,没有评论;如果已经被观察,您也将看不到源代码)。 .NET Reflector只是非常擅长反汇编MSIL代码。

可以 反汇编原生dll,你只是不喜欢它。例如,我正在尝试调试不是我的代码中的崩溃:

CPU Disasm
Address   Hex dump          Command                                  Comments
20C46D9B  |>  8B4424 14     |MOV EAX,DWORD PTR SS:[LOCAL.1]
20C46D9F  |.  8B40 10       |MOV EAX,DWORD PTR DS:[EAX+10]
20C46DA2  |.  83C0 08       |ADD EAX,8
20C46DA5  |>  8B08          |/MOV ECX,DWORD PTR DS:[EAX]
20C46DA7  |.  3B0F          ||CMP ECX,DWORD PTR DS:[EDI]             ; Crash with EDI=00000008
20C46DA9  |.  75 12         ||JNE SHORT 20C46DBD
20C46DAB  |.  83EE 04       ||SUB ESI,4
20C46DAE  |.  83C7 04       ||ADD EDI,4
20C46DB1  |.  83C0 04       ||ADD EAX,4
20C46DB4  |.  83FE 04       ||CMP ESI,4
20C46DB7  |.^ 73 EC         |\JAE SHORT 20C46DA5

但源代码?否。