5

我正在学习如何使用.NET Reactor混淆我的程序集。

一种选择是“生成本机 x86 EXE 文件存根”,我不明白它的用途。我导入一个程序集(例如一个 .exe 文件)并输出一个经过混淆的 .exe 文件,它的大小大致相同。如果我选中“生成本机 x86 文件存根”,软件会输出一个 .exe 文件,该文件的大小要小得多(就像 .exe 被压缩...)

我不明白那是什么意思。在文档中:

.NET Reactor 能够为您的应用程序生成本机 x86 EXE 文件存根。这样就不可能在反编译器中直接打开受保护的应用程序。反编译器将受保护的应用程序识别为原生 EXE 文件。

为什么我要从已经是 .exe 的文件生成 .exe?

4

2 回答 2

1

虽然你的问题是很久以前的,但我想我会分享一个答案:

你有没有使用过类似的工具ReflectorILSpy或者dotPeek?这些工具可用于从托管程序集生成源。根据开发人员的说法,如果您使用该原生 x86 存根,这些工具应该会告诉您“无法打开非托管 dll”(或类似的东西)。

于 2014-05-12T09:39:11.667 回答
1

所有可执行文件都有一个入口点(在 C 中,它是 MAIN 函数)。

对于 Dot Net 应用程序,有一个标准的代码和文件结构——以确保相应的框架可用——来定位不同的对象,例如资源。

可以分析/反编译这样的应用程序。

DOT NET REACTOR 可以用专有代码替换通常的起始代码,以便反编译器认为它是本机可执行文件 - 不依赖于 DOT NET Framework 并且具有针对不同对象的专有文件结构。这样他们甚至不能开始反编译任何东西。

这个特性是我使用 Reactor 的原因。然而,早期版本 (< 4.7) 产生的文件被 AVAST 混淆为病毒或特洛伊木马。

于 2014-10-15T11:45:41.430 回答