1

如何从本机 dll 获取源代码?使用反射器没有运气。

4

1 回答 1

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

但是源代码?不。

于 2013-02-17T18:56:13.930 回答