问题标签 [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.
cil - 合并表达式导致 Fody 中的返回语句出现问题
考虑以下代码片段:
它被编译为以下 IL 代码:
如果我在 Fody 中应用“修复退货”,我会得到以下 IL 代码:
在 ILSpy 中反编译时,它给了我以下错误,并且无法运行:
我跟踪了堆栈大小,它似乎成立。知道什么可能导致这个问题吗?
更新1:
我为这个问题添加了一个临时快速修复:
到目前为止,它在一个体面的程序中工作。我会继续关注它,如果有任何变化,我会更新。如果我能在“return fixer”中找到问题的根源会更好。
c# - 从 ILSpy 中的字节数组中反编译任意 IL
我目前正在研究从 methbases 到使用 ILSpy 的 C# 表达式树的编译器(转译器?)。我遇到的一般问题是将 System.Reflection.MethodBases 链接到 ILSpy 输出的 NRefactory AST 中的正确方法声明。
我很清楚 ILSpy 能够为整个程序集提供 AST,例如:
但是,是否可以为一小段 IL 调用 ILSpy,例如您可以通过调用获得:
这将使解决方法库配对问题变得非常容易,我目前有一个非常可怕的解决方案。
c# - 如何在没有依赖项的情况下反编译程序集
这个问题基于(ILSpy,如何解决依赖关系?)
好吧,ILSpy 库发生了变化,现在我们没有 Ast Builder,就像大多数答案一样。
该实例new ICSharpDecompiler
有一个可以采用ModuleDefinition
of的重载Mono.Cecil
,但我不知道此 ModuleDefinition 是否是此问题的新“解析器”。
在简历中,我需要反编译没有依赖项(dll)的程序集(C#、.dll),我需要使用CSharpDecompiler decompiler = new CSharpDecompiler(dll.Name + ".dll", new DecompilerSettings());
没有依赖项的程序集来读取程序集,我该怎么做?
ilspy - 为什么 ILSpy 在堆栈上添加变量而不是指令?
为什么 ILSpy 在堆栈上添加变量而不是指令?我的意思是,当从堆栈推入或弹出堆栈时,它会添加 Ldloc 和 Stloc 指令。谁能解释为什么它有这种行为?谢谢!
dll - 如何使用ILSpy反编译查看Nuget包dll源码
我已经安装了一些 asp.net 核心 mvc dll(Microsoft.AspNetCore.Mvc.Abstraction.dll)。我想反编译它并查看源代码。该dll被添加到我的项目>依赖项> Nuget。
但是,我不确定 dll 在我的系统中的确切位置。
有没有一种快速的方法可以在 ILSypy 中启动添加的 dll 并查看代码或至少查看对象继承树?
谢谢。
c# - 反编译器如何能够识别已编译的常量?
我正在使用 ILSpy 反编译 .Net 的程序集并查看代码。当我浏览 in 的代码时System.Windows.Vector.AngleBetween(Vector, Vector)
,WindowsBase.dll
我偶然发现了一些奇怪的东西。
这是函数的完整代码:
显然 ILSpy 可以识别Math.PI
,这是一个常数。
这是Microsoft Docs关于 C# 中的常量的说法:
事实上,当编译器在 C# 源代码中遇到常量标识符时,它会将文字值直接替换为它生成的中间语言 (IL) 代码。
基于此,ILSpy 所做的似乎是不可能的。
注意:即使在设置中未选中“使用调试符号中的变量名,如果可用”和“显示调试符号中的信息,如果可用”选项,也会出现此行为。
c# - 如何使用 ICSharpCode.Decompiler 将整个程序集反编译为文本文件?
我需要将整个 IL 代码或反编译的源代码获取到文本文件中。ILSpy 反编译引擎 ICSharpCode.Decompiler 有可能吗?
.net-core - .Net Core 3 自包含的单个可执行文件可以反编译吗?
我尝试使用 Dotpeek 和 ILSpy.Net 来反编译(我自己的代码),但它们失败了。
我是否需要对 .Net Core 3自包含单个可执行文件的分布式二进制文件进行特殊混淆?
c# - 通过 DecompileTypeAsString 反编译时如何反编译生成相同代码的特定方法
使用 ILSPY 的 NOOB
我正在尝试通过 ILSpy 反编译一个方法。当我使用以下代码时,我重新生成的代码与在原始 C# 中键入的内容非常接近
生成的代码如下所示。
而当我使用以下代码段时,
生成的代码如下:
有没有办法通过只反编译一个函数来生成 DecompileTypeAsString 生成的代码?
decompiler - 有没有办法使用 ILSpy 进行自动反编译?
我们有一个相当大的第三方产品,其中包含很多 C# DLL,并且每个月左右都会更新。虽然反编译器只能完成 98% 的工作,但它无法获取所有内容,但对于我的偶尔比较分析而言,它已经足够了。
有没有办法进行命令行反编译,以便我可以反编译每个月的版本并以自动方式将其保存在存档中?
也许像