代码之家  ›  专栏  ›  技术社区  ›  Mez

代码混淆?

  •  0
  • Mez  · 技术社区  · 17 年前

    所以,我喜欢复活节彩蛋…这可以追溯到我是复活节彩蛋档案馆的一员。

    不过,我也做了很多开源编程。

    我想知道的是,您认为什么是系统地、有条理地混淆代码的最佳方法。

    PHP/Python/C/C++中的例子比较好,但是在其他语言中是很好的,如果方法被正确地解释了。

    6 回复  |  直到 16 年前
        1
  •  4
  •   Dark Shikari    17 年前
    1. 以完全优化的方式编译代码。完全去除二进制文件。
    2. 对代码使用反编译程序。

    我可以保证结果会完全不可读,你甚至都看不懂;)

        2
  •  3
  •   Burkhard    17 年前

    在这种情况下,您应该使用/编写“混淆器”。一个为你工作的程序。

    蝾螈混淆器可以用来混淆.NET程序,但它更多的是防止反编译,因此不完全是你所需要的。

    在c语言中学习模糊处理的一个好地方是 International Obfuscated C Code Contest

        3
  •  2
  •   mouviciel    16 年前

    本着重命名符号的精神:通过使用相同的名称命名不同的变量来过度使用范围和可见性规则。

        4
  •  1
  •   jeramiah    17 年前

    问题是如何在无需执行其他功能的情况下,在显而易见的情况下(开源)创建看似不模糊的代码。

        5
  •  1
  •   Hugh Allen    17 年前

    一些明显的方法:

    • 删除注释和尽可能多的空白,而不破坏任何内容
    • 连接线
    • 将变量和函数重命名为无意义(最好是1个字符)
        6
  •  1
  •   Peter Wone    16 年前

    对于系统化和系统化的代码混淆,您无法胜过Perl。如果你想要编译成二进制的东西,总是有apl的。

    如果您的目标是.NET框架,请将复活节彩蛋源代码作为binhex字符串放入资源文件中。然后,您可以让一个初始化例程获取它,解码它并将其编译到内存中。您可以使用反射调用它。

    如果您需要有关编译到内存和调用生成的程序集的技术方面的帮助,我可以提供我编写的库和使用它的示例程序。

    您可以使用此技术加载插件,这在初始化程序中是合法且合理的。

    推荐文章