首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dotfuscator RVA

Dotfuscator RVA
EN

Stack Overflow用户
提问于 2012-05-26 17:01:50
回答 1查看 1K关注 0票数 1

我刚开始使用Dotfuscator,从一开始就碰到了一堵砖墙,当我构建我的项目时,Dotfuscator说:

代码语言:javascript
复制
Writing Assemblies...

Bad RVA found: 46
Build Error.

我在网上找不到任何关于这个问题的报道。

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

我在这里是不是做错了什么,还是真的在Dotfuscator中碰到了以前未知的bug?

编辑:--我刚刚注意到了“只调查”选项,我只是针对这个项目运行,它似乎运行得很好:

代码语言:javascript
复制
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.
EN

回答 1

Stack Overflow用户

发布于 2012-08-18 01:35:45

RVA是程序集元数据的一个组件,代表“相对虚拟地址”。它是存储在程序集头中的一个数字,指向程序集中的某个虚拟地址。在Dotfuscator中,每个RVA都是由给定的子系统处理(但不是所有子系统都处理RVAs )时检查其有效性的,如果

( A)程序集元数据中没有找到任何节标头,但是找到了RVA,或者

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

一般来说,这两件事都不应该发生。检查是否存在可能已更改库程序集的构建后行为。您可能还想尝试运行PEVerify,看看您的库是否正常。不能传递PEVerify并不意味着代码不会运行,但它会干扰混淆(或程序集元数据的任何处理)。如果PEVerify通过,您就会得到:)也许可以手动检查元数据,看看上面的条件A或B是否被击中了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10768214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档