代码之家  ›  专栏  ›  技术社区  ›  Jared Updike

我是否可以使用mono的AOT特性在本机上“预编译”.NET dll/ex以使它们更难进行反向工程?

  •  3
  • Jared Updike  · 技术社区  · 14 年前

    我可以使用mono的AOT(提前编译)功能对我自己的部分或全部.NET dll(and或exe)进行本机“预编译”以使它们更难进行反向工程吗?我使用的是Windows(7/x64,但我也有一台x86xp机器)和.net3.5(vs2008),我很好奇mono/AOT是否可以/曾经用于这个目的(在这一点上,将它们绑定到x86是可以接受的。)

    另请参见 this question 我试过这个却没有运气。

    3 回复  |  直到 7 年前
        1
  •  1
  •   Monoman    14 年前

    好吧,mono的AOT没有删除元数据,这意味着黑客有很多信息来理解代码中的逻辑。 另外,它不是所有的处理器和平台都可用(特别是我认为它在Windows上不可用)。

        2
  •  3
  •   lupus    14 年前

    一旦代码被预编译,程序集中的IL代码就可以被删除(这就是我们为monotouch所做的,例如,减少应用程序下载大小)。有一些限制,但它是有效的。

        3
  •  1
  •   Gonzalo    14 年前

    简短的回答,不。

    AOT'ing程序集只会生成一个共享库,因此下次使用该程序集时,Mono不必JIT编译您使用的方法,而是从.so加载它们。您的程序集需要在那里,因为仍然需要其中的元数据。