如何从原生dll获取源代码?反射器没有运气。
答案 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
但源代码?否。