Dotfuscator Bad RVA

本文关键字:RVA Bad Dotfuscator | 更新日期: 2023-09-27 18:35:29

我刚刚开始使用Dotfuscator,当我构建我的项目Dotfuscator 说:

Writing Assemblies...
Bad RVA found: 46
Build Error.

我在网上任何地方都找不到任何关于这个问题的提及。

我的项目分为几个部分,一个核心库项目和几个依赖于库项目的应用程序。我目前只是想混淆库项目。对于输入程序集,我刚刚将 Dotfuscator 指向库.dll在 bin/x86/Release 文件夹中。

我在这里做错了什么,还是我真的在 Dotfuscator 中遇到了一个以前未知的错误?

编辑:我刚刚

注意到"仅调查"选项,我刚刚针对该项目运行了该选项,它似乎工作正常

Build Finished.
Build Statistics    Total  Renamed  Percent Renamed
Types:                271       63          23.25 %
Methods:             1609      672          41.77 %
Fields:              1099      852          77.53 %
Dotfuscator Community Edition cannot rename generic types or methods.

Dotfuscator Bad RVA

RVA 是程序集元数据的组件,代表"相对虚拟地址"。它是存储在程序集标头中的数字,指向程序集中的某个虚拟地址。 在 Dotfuscator 中,每个 RVA 在由给定子系统处理时都会被检查其有效性(但并非所有子系统都处理 RVA),如果出现以下情况,则此检查将失败

A) 在程序集元数据中找不到节标题,但找到了 RVA,或者

B) RVA 指向位于所有找到的节标题的最后一个虚拟地址之前的地址。

一般来说,这些事情都不应该发生。 检查是否存在可能更改库程序集的生成后行为。 您可能还想尝试运行 PEVerify,看看您的库是否正常。 未能通过 PEVerify 并不意味着代码无法运行,但它可能会干扰混淆(或程序集元数据的任何处理)。 如果PEVerify通过,你让我:) 也许可以手动检查元数据,以查看是否命中了上述条件 A 或 B。