-
-
[旧帖] 调试第三方的.Net程序, 附加到进程时, 程序直接退出 0.00雪花
-
发表于: 2012-7-1 22:42 4350
-
调试一个第三方的.Net程序, 由主程序和许多DLL构成, 对其中一个DLL兴趣, 于是反编译并用VS10再次编译, 替换到原来的DLL后(编译为Debug), 整个程序运行正常.
想要调试这个反编译的DLL, 在VS10工程中, 点击"附加到进程"时, 整个程序直接就退出了.
尝试用ILSpy"附加到进程"也同样退出.
通过Reflector反编译, 发现AssemblyInfo.cs中有"[assembly: System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute.DebuggingModes.None)]", 我尝试把反编译过的那个DLL修正为"[assembly: System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute.DebuggingModes.DisableOptimizations | System.Diagnostics.DebuggableAttribute.DebuggingModes.EnableEditAndContinue | System.Diagnostics.DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | System.Diagnostics.DebuggableAttribute.DebuggingModes.Default)]
", 仍然无法调试.
整个程序的exe和DLL都有"DebuggingModes.None", 不知道是不是必须把.exe也要重新编译, 并修改"DebuggingModes.None"? exe文件的反编译再重编译太复杂, 并且有非常多的DLL, 而我只关心其中的单个DLL, 想对它进行调试, 不知道有什么好办法能解决?
一般.Net有些什么手段阻止调试? 能解决调试限制么?
想要调试这个反编译的DLL, 在VS10工程中, 点击"附加到进程"时, 整个程序直接就退出了.
尝试用ILSpy"附加到进程"也同样退出.
通过Reflector反编译, 发现AssemblyInfo.cs中有"[assembly: System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute.DebuggingModes.None)]", 我尝试把反编译过的那个DLL修正为"[assembly: System.Diagnostics.Debuggable(System.Diagnostics.DebuggableAttribute.DebuggingModes.DisableOptimizations | System.Diagnostics.DebuggableAttribute.DebuggingModes.EnableEditAndContinue | System.Diagnostics.DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | System.Diagnostics.DebuggableAttribute.DebuggingModes.Default)]
", 仍然无法调试.
整个程序的exe和DLL都有"DebuggingModes.None", 不知道是不是必须把.exe也要重新编译, 并修改"DebuggingModes.None"? exe文件的反编译再重编译太复杂, 并且有非常多的DLL, 而我只关心其中的单个DLL, 想对它进行调试, 不知道有什么好办法能解决?
一般.Net有些什么手段阻止调试? 能解决调试限制么?
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
赞赏
他的文章
看原图
赞赏
雪币:
留言: