代码之家  ›  专栏  ›  技术社区  ›  Javed Akram

反汇编程序对C#应用信息的隐藏

  •  0
  • Javed Akram  · 技术社区  · 14 年前

    在MSIL反汇编程序中打开我的可执行文件时,它会显示我的应用程序的信息(如文字、函数、属性、资源等),即使在我将它们指定为私有之后也是如此。

    我怎样才能对反汇编程序隐藏这些信息。

    3 回复  |  直到 13 年前
        1
  •  4
  •   Phil Hunt    14 年前

    你想找一个 obfuscation 解决方案。请记住,虽然不能通过其他代码访问私有成员,但它们仍然存在。但是,混淆会使识别代码正在执行的操作更加困难。

        2
  •  1
  •   Loren Pechtel    14 年前

    模糊不清的人。信息仍将存在,但名字将是胡说八道,旨在尽可能混淆。

        3
  •  0
  •   Community CDub    8 年前

    一般来说,你不能这样做。如果你担心有人对你的代码进行反向工程,最好考虑以下技术:

    1. Obfuscate 守则
    2. Assembly encryption (注:我没有这方面的经验或工作知识,也不知道它是如何工作的)。
    3. 编译为本机程序集而不是MSIL程序集。

    最后一个选项几乎不符合.NET程序集的目的,但是从本机程序集到C#代码的逆向工程要比从MSIL到C#代码的逆向工程困难得多。但事实是,如果有人拥有你的DLL,那么只要付出足够的努力和/或时间,就可以开发出原始的(或相当接近的)源代码。