问题标签 [ilspy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
91 浏览

cil - 合并表达式导致 Fody 中的返回语句出现问题

考虑以下代码片段:

它被编译为以下 IL 代码:

如果我在 Fody 中应用“修复退货”,我会得到以下 IL 代码:

在 ILSpy 中反编译时,它给了我以下错误,并且无法运行:

我跟踪了堆栈大小,它似乎成立。知道什么可能导致这个问题吗?

更新1:

我为这个问题添加了一个临时快速修复:

到目前为止,它在一个体面的程序中工作。我会继续关注它,如果有任何变化,我会更新。如果我能在“return fixer”中找到问题的根源会更好。

0 投票
0 回答
211 浏览

c# - 从 ILSpy 中的字节数组中反编译任意 IL

我目前正在研究从 methbases 到使用 ILSpy 的 C# 表达式树的编译器(转译器?)。我遇到的一般问题是将 System.Reflection.MethodBases 链接到 ILSpy 输出的 NRefactory AST 中的正确方法声明。

我很清楚 ILSpy 能够为整个程序集提供 AST,例如:

但是,是否可以为一小段 IL 调用 ILSpy,例如您可以通过调用获得:

这将使解决方法库配对问题变得非常容易,我目前有一个非常可怕的解决方案。

0 投票
1 回答
264 浏览

c# - 如何在没有依赖项的情况下反编译程序集

这个问题基于(ILSpy,如何解决依赖关系?

好吧,ILSpy 库发生了变化,现在我们没有 Ast Builder,就像大多数答案一样。

该实例new ICSharpDecompiler有一个可以采用ModuleDefinitionof的重载Mono.Cecil,但我不知道此 ModuleDefinition 是否是此问题的新“解析器”。

在简历中,我需要反编译没有依赖项(dll)的程序集(C#、.dll),我需要使用CSharpDecompiler decompiler = new CSharpDecompiler(dll.Name + ".dll", new DecompilerSettings());没有依赖项的程序集来读取程序集,我该怎么做?

0 投票
1 回答
54 浏览

ilspy - 为什么 ILSpy 在堆栈上添加变量而不是指令?

为什么 ILSpy 在堆栈上添加变量而不是指令?我的意思是,当从堆栈推入或弹出堆栈时,它会添加 Ldloc 和 Stloc 指令。谁能解释为什么它有这种行为?谢谢!

0 投票
1 回答
2148 浏览

dll - 如何使用ILSpy反编译查看Nuget包dll源码

我已经安装了一些 asp.net 核心 mvc dll(Microsoft.AspNetCore.Mvc.Abstraction.dll)。我想反编译它并查看源代码。该dll被添加到我的项目>依赖项> Nuget。

但是,我不确定 dll 在我的系统中的确切位置。

有没有一种快速的方法可以在 ILSypy 中启动添加的 dll 并查看代码或至少查看对象继承树?

谢谢。

0 投票
2 回答
354 浏览

c# - 反编译器如何能够识别已编译的常量?

我正在使用 ILSpy 反编译 .Net 的程序集并查看代码。当我浏览 in 的代码时System.Windows.Vector.AngleBetween(Vector, Vector)WindowsBase.dll我偶然发现了一些奇怪的东西。

这是函数的完整代码:

显然 ILSpy 可以识别Math.PI,这是一个常数。

这是Microsoft Docs关于 C# 中的常量的说法:

事实上,当编译器在 C# 源代码中遇到常量标识符时,它会将文字值直接替换为它生成的中间语言 (IL) 代码。

基于此,ILSpy 所做的似乎是不可能的。

注意:即使在设置中未选中“使用调试符号中的变量名,如果可用”和“显示调试符号中的信息,如果可用”选项,也会出现此行为。

0 投票
1 回答
3669 浏览

c# - 如何使用 ICSharpCode.Decompiler 将整个程序集反编译为文本文件?

我需要将整个 IL 代码或反编译的源代码获取到文本文件中。ILSpy 反编译引擎 ICSharpCode.Decompiler 有可能吗?

0 投票
3 回答
2038 浏览

.net-core - .Net Core 3 自包含的单个可执行文件可以反编译吗?

我尝试使用 Dotpeek 和 ILSpy.Net 来反编译(我自己的代码),但它们失败了。

我是否需要对 .Net Core 3自包含单个可执行文件的分布式二进制文件进行特殊混淆?

0 投票
1 回答
335 浏览

c# - 通过 DecompileTypeAsString 反编译时如何反编译生成相同代码的特定方法

使用 ILSPY 的 NOOB

我正在尝试通过 ILSpy 反编译一个方法。当我使用以下代码时,我重新生成的代码与在原始 C# 中键入的内容非常接近

生成的代码如下所示。

而当我使用以下代码段时,

生成的代码如下:

有没有办法通过只反编译一个函数来生成 DecompileTypeAsString 生成的代码?

0 投票
1 回答
1005 浏览

decompiler - 有没有办法使用 ILSpy 进行自动反编译?

我们有一个相当大的第三方产品,其中包含很多 C# DLL,并且每个月左右都会更新。虽然反编译器只能完成 98% 的工作,但它无法获取所有内容,但对于我的偶尔比较分析而言,它已经足够了。

有没有办法进行命令行反编译,以便我可以反编译每个月的版本并以自动方式将其保存在存档中?

也许像