问题标签 [ildasm]

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 回答
6179 浏览

mono - Mono 是否有相当于 ILDASM 的功能?

Mono 是否有等效的 ILDASM?

0 投票
3 回答
748 浏览

.net - System.Reflection - 全局方法不可用于反射

System.Reflection 不(AFAIK)支持在程序集中反映全局方法。在汇编级别,我必须从根类型开始。

我的编译器可以生成带有全局方法的程序集,而我的标准引导库是一个包含一些全局方法的 dll。我的编译器使用 System.Reflection 在编译时导入程序集元数据。看来如果我依赖 System.Reflection,全局方法是不可能的。最干净的解决方案是将我所有的标准方法转换为类静态方法,但关键是,我的语言允许全局方法,并且 CLR 支持它,但是 System.Reflection 留下了一个空白。

ildasm 很好地显示了全局方法,但我认为它不使用 System.Reflection 本身,而是直接访问元数据和字节码。

除了 System.Reflection,是否有人知道我可以使用的任何其他第 3 方反射或反汇编库(假设我最终将我的编译器作为免费的、BSD 许可的开源版本发布)。

已解决:没有差距,除了我的知识。感谢您指出 GetModules,伙计们!

0 投票
3 回答
689 浏览

.net - 一般来说,如何将 ilasm 语法转换为 Reflection.Emit 调用?

我正在编写一个特殊用途的迷你编译器,我经常查看反汇编的 CIL 来弄清楚如何做事。但如何将反汇编代码转换为 Reflection.Emit 调用通常并不明显。是否存在参考手册或任何其他信息来源来进行此翻译?

编辑:是的,将操作码映射到 ILGenerator 非常简单;我说的是所有其他的东西,比如 .directives 和属性。例如,您如何知道如何编写 Reflection.Emit 等价物Dictionary<TKey,TValue>

或者“参数”指令怎么样?

0 投票
1 回答
77 浏览

.net-3.5 - 拆卸和重新组装 .net 程序时缺少图形

我有一个软件。当我反汇编PE文件时

我得到一堆文件,比如foo.MainFormfoo.bar.dll. 然后当我尝试重新组装文件时

我又得到了一个正常工作的 foo.exe,但新文件中缺少一些小图形(它也小了约 200kb)。其他一些图形正在工作,所以看起来我在拆卸或重新组装时遗漏了一些东西。我怎样才能解决这个问题?

0 投票
3 回答
1985 浏览

c# - ILDasm 视觉工作室 2010

是否有一种方便的方法或工具可以在 Visual Studio 2010 中为我执行以下操作。

启动 ILDasm 从 ILDasm 内的 Visual Studio 中加载当前程序集。

与我启动 Visual Studio 命令提示符相反,启动 Ildasm 导航到我希望查看的程序集的 bin 文件夹。

如果没有可用的东西可以做到这一点,是否有任何工具可以提供帮助?

干杯

0 投票
1 回答
565 浏览

.net - .NET 的 Ildasm.exe 工具似乎不会将所有源代码行转储到输出文件中

我正在创建一个实用程序来读取我公司编写的 VB .NET 可执行文件的源代码行。它以下列方式使用 ildasm.exe 实用程序:

ildasm.exe /NOBAR /UNICODE /SOURCE "AssemblyToRead.exe" /OUT="App_Dir\CodeOutput\CodeOutput.txt"

这会导致某些源代码行被转储到 CodeOutput.txt 文件中。但是,似乎它们在每个源文件的开头都缺少源行。源文件缺少前 10 到 20 行代码的情况并不少见。其他大部分线条似乎都是忠实制作的。有谁知道我做错了什么?谢谢

0 投票
1 回答
542 浏览

c# - 签署未签名的相互依赖的第三方库

我的项目使用一组未签名的第三方库(在 .Net 2.0 中编译)。我已经知道如何使用 ildasm 和 ilasm 对这些库进行签名。但是,问题在于第三方库是相互依赖的。结果,在 ilasm 之后,当我编译我的项目时,我收到“缺少参考”错误,因为 lib1.dll 正在寻找 lib2.dll 的“PublicKeyToken=null”版本。

我还尝试将所有 3 个“.il”文件编译到一个库中,但出现“多个程序集声明”错误。

任何想法如何解决这个问题?

0 投票
1 回答
479 浏览

.net - 是否有工具可以分解单个 .NET 类型及其所有依赖项?

假设我想反汇编一个类型。但是这种类型依赖于同一程序集中的其他类型等等。从某种意义上说,我希望能够分解由特定类型定义的闭包。

我对反汇编为 C# 不感兴趣。纯 IL 代码很好,就像 ildasm 生成它一样。

谢谢。

编辑1

能够再次重新编译代码对我来说非常重要。正因为如此,我不能使用 Reflector,它会从编译器的角度产生非法的 C# 代码,但最简单的情况除外。如果你有 Pro 版本,学习代码和调试它是非常有用的,而不是反汇编和重新组装回来。

编辑2

顺便说一句,Reflector 生成的 IL 代码也是如此——它不适合重新编译,这与 ildasm 生成的代码不同。诚然,Reflector 产生了可读性更高的代码,唉 - 不是为编译器而设计的。

0 投票
1 回答
1923 浏览

visual-studio-2010 - 将 VS 2008 解决方案移动到 VS 2010 时,自定义属性不一致的错误

我正在尝试将我的 VS 2008 解决方案移动到 VS 2010。如果我将目标框架保持在 4.0,一切都可以完美运行(编译和链接)。

当我更改框架 2.0 并更改平台框架 v100(以克服编译错误)时,却遇到元数据链接错误,如下所示:

错误 LNK2022:元数据操作失败(80131195):自定义属性不一致:(0x0c0000f7)。C:\Development\Main\Filemaster\SoxService\MSVCMRTD.lib(managdeh.obj)

我读过我应该使用 ILDAsm,但它不喜欢我的 obj 文件,而且由于链接没有完成,我没有要加载的 exe。

任何人都可以就如何找到错误种类提供一些建议吗?

我最讨厌的就是与工具作斗争!

0 投票
1 回答
321 浏览

mono - 来自 mono 的 monodis 工具是否适用于 Microsoft .NET 程序集?

我知道 monodis 工具对 Mono 的作用与 ILDASM 对 Microsoft .NET 的作用相同。但是,monodis 工具是否与 .NET 兼容,因为它可以针对 Microsoft .NET 程序集工作,因为它适用于与 Microsoft 相同的文件布局?