有没有一种简单的方法可以修改反编译文件而无需处理其依赖关系?

Posted

技术标签:

【中文标题】有没有一种简单的方法可以修改反编译文件而无需处理其依赖关系?【英文标题】:Is there an easy way to modify a decompiled file without having to deal with its dependencies? 【发布时间】:2018-06-05 19:58:11 【问题描述】:

我设法反编译了一个 c# 文件(使用 dotpeek),我想编辑一些简单的东西(使用 Visual Studio)。 问题是这个文件有许多 dll 依赖项,即使只在主 exe 上需要编辑。

显然,如果您尝试在 vs 上构建 exe 而没有适当的引用和依赖项,编译器会报错。有什么解决办法吗?

【问题讨论】:

您应该查看Mono.Cecil 来编辑程序集,而不是反编译。 【参考方案1】:

没有依赖就无法构建;但是,不需要反编译依赖项。只需添加 DLL 本身作为对项目的引用。

如果反编译的程序集依赖于其他 DLL,这总是可以的;但是,如果其他 DLL 依赖于反编译的程序集,则仅在程序集未签名时才有效,即,如果它们未使用强名称。签署的目的正是为了禁止此类黑客攻击。

【讨论】:

【参考方案2】:

不,没有依赖项就无法构建,因为编译器必须检查类型是否匹配并具有指定的成员等。

【讨论】:

我可以反编译几乎所有的 dll 依赖项,但这感觉不对。即使我这样做了,我如何将它们全部合并到一个 vs 项目中?感谢您的回答

以上是关于有没有一种简单的方法可以修改反编译文件而无需处理其依赖关系?的主要内容,如果未能解决你的问题,请参考以下文章

DotPeek无法反编译该方法

有没有一种方法可以自动链接 OpenGL 程序需要的所有库,而无需在编译时显式编写它们的标志?

怎么替换指定jar中的class文件

反编译APK,修改一个activity并重新编译成APK

在 C# ASP NET Core 中使用 JSON 而无需反序列化

有没有一种简单的方法可以将多行文本连接成一个字符串,而无需不断添加换行符?