我刚刚开始使用Dotfuscator,我从一开始就碰到了一堵砖墙,当我建造我的项目Dotfuscator时说:
Writing Assemblies...
Bad RVA found: 46
Build Error.
我在网上任何地方都找不到这个问题。
我的项目分为几个部分,一个核心库项目和几个依赖于库项目的应用程序。我现在只是试图模糊图书馆项目。对于输入程序集,我刚刚在bin / x86 / Release文件夹中的Library.dll指向了Dotfuscator。
我在这里做错了什么,还是我真的遇到了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.
答案 0 :(得分:0)
RVA是程序集元数据的一个组成部分,代表“相对虚拟地址”。它是存储在程序集标题中的数字,指向程序集中的某个虚拟地址。在Dotfuscator中,检查每个RVA的有效性,因为它由给定的子系统处理(但并非所有子系统都处理RVA),如果
,则此检查将失败。A)在程序集元数据中找不到部分标题但找不到RVAs,或
B)RVA指向一个地址,该地址落在所有找到的部分标题的最后一个虚拟地址之前。
一般来说,这些都不应该发生。检查是否存在可能已更改库程序集的构建后行为。您可能还想尝试运行PEVerify以查看您的图书馆是否正常结算。未能通过PEVerify并不意味着代码不会运行,但它可能会干扰混淆(或任何处理程序集元数据)。如果PEVerify通过,你就得到了我:)也许手动检查元数据,看看上面的条件A或B是否被击中。