问题标签 [ilasm]

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

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

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

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

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

0 投票
1 回答
330 浏览

c# - 从 ILAsm 文件中删除 .property 语句以供生产使用是否可以?

仍在基于修改 ILAsm 文件开发我的混淆程序。(参考。不应混淆哪些 C# 方法名称?

在查看 ILAsm 代码时,我得到的印象是 .property 语句不用于任何事情,至少不用于程序执行。我是否认为他们只是为 Visual Studio 提供元数据?如果是这样,当 ILAsm 代码仅用于生成永远不会与 Visual Studio 一起使用的生产模块时,是否可以简单地删除它们?

0 投票
1 回答
210 浏览

ide - 是否有任何内置支持编译 ILASM 文件的商业或开源 IDE?

除了 Visual Studio 之外,是否有任何 IDE 可以让您直接从 IDE 构建 IL 汇编程序文件?

0 投票
2 回答
2445 浏览

c# - 使用 VS 2010 Ilasm.exe 强烈命名 3rd 方 2.0 .dll

因此,我有一个用 C# 2.0 编写的第 3 方 .dll,需要强类型化,而且我无权访问源代码。我找到了几篇关于如何反汇编 .dll 并使用强命名密钥文件重新组装它的文章。

我遇到的问题是 VS2010 将其重新编译为 .NET 4.0 .dll 而不是 2.0 .dll(我们的应用程序当前所在的版本)。我不能在我的项目中包含“新”dll,因为它给了我一个运行时错误:“这个程序集是由比当前加载的运行时更新的运行时构建的,无法加载。” 如果我不签署 dll,我会得到“程序集不是强类型的”。错误。

有没有办法使用VS2010 ilasm.exe在2.0框架中重新编译这个.dll?

0 投票
2 回答
609 浏览

c# - 是否可以将单个 C# 文件转换为 IL 程序集?

给定一个 c# 源文件,我想输出该单个文件的 IL(未组装),以便稍后我可以将每个“.il”文件提供给 ilasm 以生成程序集,这可能吗?

0 投票
0 回答
1492 浏览

assemblies - 修改已构建的 .NET 程序集的版本信息

有没有更好的方法来修改我当前使用的.NET程序集的版本信息。

我目前的方法如下。

我确实用ildasm拆卸了组件:

这还将生成一个 Riolo.WebUI.res 编译的资源文件,然后我使用 Visual Studio 的用户界面打开并修改它,然后我使用ilasm重新组装程序集:

这个过程有各种各样的问题,主要是我感觉像用大炮射蚊子,然后因为我不知道如何用命令行将文件反编译.res.rc文件,我不能使用命令行脚本,因为我必须打开 Visual Studio 来修改.res文件,这意味着它非常耗时且容易出错,最后但并非最不重要的一点是,我确实觉得往返程序集很可能最终会丢失信息,即使是在不经意间,因此我担心我会在一些尚未预料到的情况下早晚被咬。

0 投票
1 回答
662 浏览

c# - ExportDll 通过 ildasm/ilasm 运行程序集后,如何获取程序集的代码覆盖率?

我在我的 C# 程序集上使用构建后步骤来公开我的 dll 中的函数签名。此步骤使用http://www.codeproject.com/KB/dotnet/DllExport.aspx中的 ExportDll 工具。但是,如果我通过 mstest 运行我的 dll 并尝试获取代码覆盖率报告,则会收到以下错误:

考虑到程序集中没有非托管代码(除了一些 P/Invoke 签名),这很奇怪。如果我采取构建后步骤,我的代码会被正确检测,并且我可以获得代码覆盖率报告。因此,我只能得出结论,它一定是这个后期构建步骤,而不是代码本身的东西。

我倾向于通过代码的非ExportDll 版本运行我的单元测试,同时构建和分发post-ExportDll 版本。由于我主要关心的是代码是否经过测试,而不是其他组件是否可以通过 DLL 导出找到该函数,因此我不认为这是一个糟糕的解决方案。但是,我觉得这可能是构建管理中的一场噩梦,不得不向团队解释“使用这个程序集,而不是那个程序集”。

有没有人有过对已通过此工具运行的 dll 进行单元测试的经验?或者,也许有人有使用 ildasm/ilasm 对已编译、反编译和重新组装的程序集进行检测的经验?

0 投票
1 回答
1464 浏览

.net - ildasm,然后是具有相同元数据的 ilasm

我们需要修补程序集,目前无法从源代码重建。我可以使用 ildasm mydll.dll /all /out=mydll.il 转储 IL,然后我可以使用 ilasm /dll mydll.il 重建它,这一切都很好,除了文件版本、公钥等都丢失了新的二进制文件。我怎样才能告诉 ilasm 添加这些?我试过 /mdv 开关但没有运气。

0 投票
1 回答
1494 浏览

clr - ILASM 未设置 FileVersion

我有一个 .il 文件,我可以毫无问题地编译它。我可以强命名它,所以没有任何问题。但是我无法像我期望的那样通过属性设置文件版本。使用 ilasm 时如何设置程序集的 FileVersion?

如果我进行往返,我总是会得到一个 .res 文件,它只包含不可读的二进制数据。这个 res 文件里面有什么,我可以编辑它吗?

代码不起作用

0 投票
2 回答
1146 浏览

c# - 为什么我的 IL 生成的程序集,由 C# 调用的 ilasm.exe 需要 UAC?

我正在尝试将 IL 代码编译为程序集。ilasm.exe应该由我的 C# 应用程序调用。我正在ilasm.exe通过ProcessStartInfo实例调用。PE的生成工作正常,我的Assembly正在工作。

我的问题是我的应用程序创建的文件,之后需要管理员权限才能执行。

如果我ilasm.exe从命令行手动调用,则不需要管理员权限。

使用 ilasm.exe 命令: ilasm.exe /qui /output="c:\test\newFile.exe" <path to il file>

我的应用程序调用 ilasm.exe:

我做错什么了吗?从 C# 调用另一个进程时是否需要指定其他任何内容?

我正在运行我的应用程序和没有管理员权限的命令行。