标签: dotpeek

DotPeek PDB生成用于没有调试目录的程序集

我正在尝试使用JetBrains dotPeek 1.4符号服务器但是我遇到了一些失败的第三方程序集,dotPeek状态为:

Pdb has not been generated because assembly does not contain debug directory
Run Code Online (Sandbox Code Playgroud)

使用CFF Explorer我发现这些程序集具有空的"调试目录"可移植可执行(PE)标头值.

是否有一种(简单)方法来编辑PE以添加Debug Directory标头值?

debugging portable-executable dotpeek

17
推荐指数
1
解决办法
2290
查看次数

反编译源中不寻常的C#运算符......?

我刚刚使用DotPeek反编译了一些第三方来源来调试问题.输出代码包含一些不常见的操作符,AFAIK无效C#,所以我想知道它们是什么意思...

摘录看起来像(包括Dotpeek评论,因为它们可能相关);

protected internal void DoReceive(ref byte[] Buffer, int MaxSize, out int Written)
{
    Written = 0;
    .
    .
    .        
    // ISSUE: explicit reference operation
    // ISSUE: variable of a reference type
    int& local = @Written;
    int num = SomeMethod();
    .
    .
    .
    // ISSUE: explicit reference operation
    ^local = num;
}
Run Code Online (Sandbox Code Playgroud)

那么,那里有3个不寻常的操作符...... int& = @Written似乎是在指定一个用@字符无意义命名的变量的指针?

但是什么是^local = num;???

好的,这是来自ILSpy的等效片段,这更有意义,我想反编译到C#没有产生有效的等价物?

'C#'

 int& local = @Written;
 byte[] numArray2 = this.FInSpool;
 int num = (int) __Global.Min(numArray2 == null ? …
Run Code Online (Sandbox Code Playgroud)

c# syntax dotpeek

14
推荐指数
1
解决办法
4674
查看次数

了解dotPeek反编译代码中编译器生成的类型

喜.我正在阅读Digi Traffic Accelerator反编译源(我认为这是最好的学习方法),直到我得到一些不可理解的代码!请看一下:

  internal class ProxyFarm
  {
    private static Random rand = new Random();
    private static Regex UserPassAtHostPort = new Regex("\r\n                ^\r\n                (?<user>[^:]+?) : (?<pass>[^@]+?)\r\n                @\r\n                (?<host>[^:]+? (?: : \\d+)? )\r\n                $", RegexOptions.IgnorePatternWhitespace);
    private static Regex HostPortUserPass = new Regex("\r\n                ^\r\n                (?<host>[^:]+? : \\d+) : (?<user>[^:]+?) : (?<pass>.+?)\r\n                $", RegexOptions.IgnorePatternWhitespace);
    public const string NEW = "new";
    public const string ACTIVE = "active";
    public const string BLOCKED_BY_GOOGLE = "blocked by Google";
    public const string INACTIVE = "inactive";
    public const …
Run Code Online (Sandbox Code Playgroud)

c# decompiler compiler-generated dotpeek

12
推荐指数
2
解决办法
2万
查看次数

是Jetbrains dotPeek给我一个关于我的代码的警告吗?

我正在看一些我自己的代码,我用dotPeek反编译.

我一直看到这个:

// ISSUE: method pointer
Run Code Online (Sandbox Code Playgroud)

这是什么意思?这是为了通知我代码的问题吗?

谢谢

.net decompiling dotpeek

12
推荐指数
1
解决办法
1998
查看次数

dotPeek符号服务器不向VS2013调试器提供源代码

我对dotPeek符号服务器功能的理解如下:

每当IDE要求调试给定程序集的信息时,dotPeek会将程序集和符号(+反编译的源代码?)反编译回IDE.

但我的经验如下:

配置我的IDE并在调试时检查"输出"窗口后,我看到正在加载所有托管程序集的符号.我可以进入这些库/ .NET平台并在那里调试没有问题.

但是有一个我遇到问题的第三方组装.输出窗口在我的应用程序启动期间打印出来:

'iisexpress.exe' (Managed (v4.0.30319)): Loaded 'C:\Users\kostas\AppData\Local\Temp\Temporary ASP.NET Files\root\9bc23327\4940c90d\assembly\dl3\8fde229b\401c97fd_0937d001\WebApi.Hal.dll', Symbols loaded.
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试进入WebApi.Hal类时,IDE会要求我提供源代码文件,并输出以下内容:

SRCSRV: The module 'C:\Users\kostas\AppData\Local\Temp\Temporary ASP.NET Files\root\9bc23327\4940c90d\assembly\dl3\8fde229b\401c97fd_0937d001\WebApi.Hal.dll' does not contain source server information.
Run Code Online (Sandbox Code Playgroud)

组态:

选项 - >调试 - >符号:

按此顺序配置三个Symbol服务器

http://srv.symbolsource.org/pdb/Public

http://referencesource.microsoft.com/symbols

HTTP://本地主机:33417 /

选项 - >调试 - >常规截图:

选项 - >调试 - >常规截图

我错过了什么?

c# symbol-server dotpeek visual-studio-2013

9
推荐指数
0
解决办法
1068
查看次数

像DotPeek这样的软件可以反编译和编辑DLL吗?

对于这个新手问题很抱歉,但是经过3个小时的敲打我的头后我才得到了DotPeek,我发现它很适合查看.dll文件.但是我根本无法编辑它们.是否有像DotPeek这样的免费软件让我编辑DLL而不仅仅是看它?

更新:我能够单独保存.dll文件中的所有.cs文件,并在VS(Visual Studio)中编辑它们.现在如何在编辑后将它们恢复到.dll文件中?

谢谢!

.net decompiling dotpeek

8
推荐指数
3
解决办法
1万
查看次数

dotPeek问题调试第三方.dll

我使用dotPeek v1.2with VS2013 Update 3尝试调试引用的C#.dll的代码.我已经按照从下面的教程的所有方向:使用dotPeek作为一个符号服务器(http://localhost:33417/设置为符号的位置等),说实话,我已经读过了一堆像文章这样这个,通过所有必要的设置梳理和调试第三方非骨架的还真没见过1个有效的解决方案.dll文件,所以我不相信这是一个完全正常工作的产品,从这个方面.

Regardelss,dotPeek应该允许一旦符号服务器开始步入并根据他们的文档调试来自VSNET的第三方程序集的代码.我知道为dotPeek选择哪些.dll,因为我从Debug - > Windows - > Modules检查了它们的路径.

我碰巧ReSharper还安装了允许我在右键单击一行代码并选择"转到声明"时进行反编译.问题是,符号服务器似乎没有做任何事情来协助在调试时提供代码.相反,ReSharper提供的反编译源似乎是VS.NET想要进入的.问题是我总是得到以下错误:

源文件:C:\ Users\username\AppData\Local\JetBrains\ReSharper\v8.2\SolutionCaches_ReSharper.Meijer.Ecommerce.Nav.WebAppServices.-382002776\Decompiler\decompiler\53\66e7ccc2\MyClass.cs

模块:C:\ Projects\MyProject\bin\Debug

进程:[24808] vstest.executionengine.x86.exe

源文件与构建模块时不同.您希望调试器还能使用它吗?

如果我说'是'并且调试器中的步骤似乎位于文件中不存在且不同步的行上.这是有道理的,因为它.cs从"源文件"位置显示类,但从.dll加载.dll/bin/Debug

但是,我不明白为什么会发生这种情况,因为dotPeek应该提供加载的符号,/bin/Debug而不是试图进入任何反编译源ReSharper.

我该如何配置,从而VS2103实际调试符号和代码担任了dotPeek

debugging resharper visual-studio dotpeek

7
推荐指数
1
解决办法
3698
查看次数

在dotPeek中反编译.NET Framework v4.5可执行文件"非.NET程序集文件"但可执行文件运行正常

客户端已经与他们之前的开发人员烧毁了桥梁,我正在尝试从他们的工资单可执行文件的剩余部分中提取源代码,不幸的是,作为一个Web开发人员,我对.NET框架没有多少经验.

编辑:我们的客户合法拥有该软件,但没有要求源代码,开发人员没有回应我们的通信.我在SO上提出这个问题的意图不是为了法律建议(我们有人处理),而是用于反编译的任何选项.

我之前成功地使用JetBrains dotPeek反编译了可执行文件,但是它们都运行了.Net Framework v2.0/v4.5框架.我正在使用的客户端工资单可执行文件,.Net Core v4.5这是dotPeek,ILSpy或其他C#反编译软件无法识别的,我作为.NET程序集文件运行.

经过一番研究,我相信.Net Core最近是开源的......但是我不确定如何继续进行反编译过程,或者在这一点上是否可行.有什么建议?

注意:我会接受一个答案:"不可能反编译,但你先尝试过X,Y,Z吗?".我需要让客户知道是否可以完成,因为我们的运行时间很紧.

我做了一些澄清:program.exe在dotPeek中打开,右键单击属性给我这个:

在此输入图像描述

它声称"不是.NET程序集文件",但我可以运行可执行文件.

编辑:是否有可能从可执行文件中提取更多信息,以便我可以缩小另一种方法进行反编译?

我怀疑.NET反编译器不会在这里提供帮助.

.net c# decompiling ilspy dotpeek

6
推荐指数
2
解决办法
8028
查看次数

在没有ReSharper的情况下在Visual Studio中使用dotPeek

dotPeek是免费的.NET反编译器。作为独立工具时,它也是ReSharper的一部分:如果告诉ReSharper导航到class.dll文件中的定义,它将自动反编译该文件并向您提供源代码。

我不想使用ReSharper。没有ReSharper可以得到相同或相似的功能吗?这是仅ReSharper的功能吗?

.net resharper decompiling visual-studio dotpeek

6
推荐指数
1
解决办法
4739
查看次数

dotpeek 显示不同版本的代码

我对 dotpeek 产品有最奇怪的事情。

我从本地文件夹打开了一个旧的 dll 版本,并在 dotpeek 中看到了一些添加到新版本的代码。经过大约一天的调查,反汇编向我展示了旧代码。

有人可以向我解释如何做到这一点以及将来如何避免它。我能想到的唯一解释是新版本已加载到 GAC(全局程序集缓存)。

有人遇到过这个问题并且知道如何解决吗?

c# resharper dotpeek

5
推荐指数
1
解决办法
1747
查看次数