问题标签 [dnspy]

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 投票
2 回答
279 浏览

.net-assembly - 无法在全局程序集缓存中安装修改后的程序集

使用dnSpy 程序集编辑器,我修改了一个受版权保护的 IBM 程序集 (DLL)。我修复了源代码中的一个错误。将代码编译回 DLL 后,我尝试将其安装到 GAC 中。

但在此期间,InstallAssembly抛出以下错误:

有谁知道这是什么意思?谢谢你的帮助!

编辑

docs.microsoft.com 上,我可以看到这-2146234299意味着FusionErrorSignatureCheckFailed. 所以我不可能修改DLL?

0 投票
0 回答
81 浏览

c# - 如何修复“无法将属性或索引器‘PlayerController.Modifier’分配给——它是只读的”错误?

我已经为我的代码查看了一堆解决方案,但没有一个适用于我一直在尝试添加的内容。由于我正在修改游戏,因此我一直在通过 dnSpy 进行编码,并且我的问题不断出现只读错误。

就像我说的那样,我已经查看了许多其他关于“无法将属性或索引器分配给 - 它是只读的”错误的线程,但据我所知,它们都没有真正帮助我的代码。

预期的结果是,我在游戏聊天中输入“/modifier [modifier] 并将该修饰符应用到我的角色。此代码早在 2018 年初就在游戏中,我想重新添加代码。

实际结果只不过是一个错误,描述“不能将属性或索引器'PlayerController.Modifier'分配给--它是只读的。通常不止1个修饰符,但对于这个例子,我使用的是“rocketjump” . 当有更多的修饰符时,每个

State.LocalPlayer.Modifier = (PlayerControllerModifier)ScriptableObject.CreateInstance(typeof(RocketJumpModifier));

行做同样的错误,所以我怀疑这个错误与这一行有关。

最后,如何修复“无法将属性或索引器‘PlayerController.Modifier’分配给——它是只读的”错误?

0 投票
3 回答
87 浏览

c# - Enumerable 中的重复产量中断

我正在通过 dnSpy 反编译 System.Core.dll (4.7.3429.0) 来学习 linq,并看到重复的“yield break;” 在几种情况下,比如这个

第二个永远不会被调用吗?

它的目的是什么?它是 dnSpy 中的一个包还是 .NET 中的误用?

0 投票
1 回答
1868 浏览

c# - 使用 dnSpy 重新编译 DLL - 不可知程序集不能具有特定于处理器的模块 System.EnterpriseServices.Wrapper.dll

我正在尝试使用 dnSpy 在 DLL 上添加调试标志,但我不断收到以下错误:

不可知程序集不能具有处理器特定模块 System.EnterpriseServices.Wrapper.dll

这不仅仅发生在我尝试反编译和重新编译的特定 DLL 上

此外,即使我不更改标志,我仍然无法按原样重新编译它。

有什么线索吗?我似乎无法找到这个问题的答案。

谢谢

0 投票
1 回答
129 浏览

c# - Dnspy 无法编译 MySql.Data

我已经使用 de4dot 和 Dnspy 对可执行文件进行了去混淆处理。我可以更改和编译大多数类,但是我无法更改和编译其中包含 MySql 方法的类。它给了我一个错误:type or namespace name 'MySql' could not be found。当我点击该using MySql.Data.MySqlClient;行时,Dnspy 将我带到一个空白页面。Mysql.Data显示在参考文件夹中,但里面没有任何内容。

0 投票
1 回答
781 浏览

.net-core - .NET Core Assemblage 的 Dotpeek 或 dnSpy 过滤器

我在 .NET Core 应用程序、windows 服务的上下文中工作,并且我有一个编译器错误,告诉我我有一个移动程序集的类型。我找不到所说的类型,我一直在寻找它。到目前为止,我已经尝试使用 dnSpy、Dotpeek 和try.dot.net的组合来引用我机器本地的相关 nuget 包或 .dlls 以查找我正在寻找的 System.Security 类型。类型的错误如下,afaik 与该版本的组合不存在......任何地方!

在命名空间“System.Security.AccessControl”中找不到类型名称“DirectorySecurity”。此类型已转发到程序集 'System.IO.FileSystem.AccessControl, Version=4.0.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 考虑添加对该程序集的引用。

有没有办法可以使用外部工具在我的机器上过滤或查找编译器要求的类型?我在 Visual Studio 中(单独)引用了所有方式的依赖项,然后如果不满足编译器的要求,随后将其删除。

无论如何,我们将不胜感激 - 谢谢!

0 投票
1 回答
1361 浏览

c# - C# 反射:使用静态对象引用更改类的私有字段?

我有一个非常具体的案例,我在 StackOverflow 上阅读了大量关于设置和获取类的私有字段和属性的问题,但它们似乎都不起作用。

我正在通过使用 Harmony(在运行时注入代码的库)注入代码来修改 Unity 游戏。我成功地改变了很多东西,但是一旦值是私有的,我就碰壁了,因为我无法访问或更改这些值。

使用 dnSpy 检查代码时: 因此存在公共类 World {},其中包含字段 public static World inst 以及两个私有字段 private int GridWidth 和 private int GridHeight。它还包含属性 GridWidth 和 Gridheight,它们都是公共的,但只有一个 Getter。它包含更多在这里无关紧要的字段。World.inst 在私有 void Awake() 方法中设置,这是一个特定的 Unity 方法。

简而言之:

现在我尝试从外部更改 GridWidth 和 GridHeight 的值,但失败了。我无法更改这部分代码。

在 dnSpy 中,这两个字段被引用(当悬停在字段上时)为 World.GridWidth 和 World.GridHeight,但它们被明确设置为 World.inst.GridWidth 和 GridHeight。

我目前的代码是

但这不起作用。我还没有真正使用 Reflection,这可能是我犯了一个非常明显的错误,如果是这样,我很抱歉。

我很困惑,非常感谢任何帮助和深入的解释。

0 投票
1 回答
4186 浏览

c# - dnspy编译错误,不编辑代码

'ConnectionState' 存在于 'System.Data.Common, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 和 'System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

使用 dnspy 时在这行代码中出现上述错误。错误代码是来自 main.cs 的 CS0433

0 投票
0 回答
161 浏览

reverse-engineering - IL 程序集编辑后的“已停止工作”消息

我正在使用“dnSpy”应用程序来读取和更改 .net 程序集 exe 模块,我选择了“编辑 IL 指令...” 在此处输入图像描述

然后我将“brtrue”更改为“brfalse”作为这张图片
在此处输入图像描述

然后我保存了一个这样的模块
在此处输入图像描述 然后我像这样运行NGRN
在此处输入图像描述 现在当我测试exe应用程序时,我一打开它就会遇到“停止工作”消息 请帮助
在此处输入图像描述

0 投票
1 回答
102 浏览

python - 将域与 DNS 解析器名称匹配 - Python

我仍然是 Python 的新手,并且一直在为此工作,以及一些用于自动化我的 Plex 媒体管理任务的副项目。

我正在尝试编写一个 python 脚本,该脚本允许我从 csv 文件中获取一组域列表,将它们与它们的 dns 名称匹配:示例(使用“NS”的 Plex.tv 将返回 jeremy.ns.cloudflare.com)

我的主要目标是从 csv 中读取域列表

运行我的代码以将这些域与 dns 解析器名称匹配

将它们写入一个新的 CSV 文件,然后将两者压缩在一起,这就是我的代码中的内容。

在此过程中我遇到了一些问题。

  1. Visual Code 不允许 import dns.resolver (不是一个大问题,但如果你知道修复它可以让我不必从命令行运行它)
  2. 将域与其 DNS 解析器匹配会引发错误“AttributeError: 'list' object has no attribute 'is_absolute'”

谢谢你的帮助