我正在尝试使用JetBrains dotPeek 1.4 symbol server,但是我遇到一些第三方程序集失败,dotPeek状态为:
Pdb has not been generated because assembly does not contain debug directory使用CFF Explorer时,我发现这些程序集具有空的“调试目录”可移植可执行( Portable Executable,PE)标头值。
有没有一种(简单的)方法来编辑PE以添加Debug Directory标头值?
发布于 2015-10-26 01:31:28
de4dot在dotPeek眼里创建了无效的.net可执行模块。然而,这是dotPeek的问题,不是de4dot的问题。但是,由于我们没有dotPeek的源代码,我们应该改为修改de4dot以实现互操作性。修改: de4dot.code/AssemblyModule.cs模块添加
writerOptions.WritePdb = true;
module.CreatePdbState();到de4dot.code.AssemblyModule.Save函数,并在exe模块中填入有效的pdb函数。
为了节省您的时间,您可以在我的补丁中使用de4dot项目:https://github.com/earnol/de4dot/commit/24c6e696fb9251f7d048ac33c88c710013a649d6,它会将调试目录添加到输出可执行文件中。只需删除生成的PDB并再次运行dotPeek即可。它将完美无瑕地工作。使用如下内容: de4dot.exe -f filein.exe -o fileout.exe -fpdb
https://stackoverflow.com/questions/31299157
复制相似问题