Language agnostic 真实世界用于模糊处理

Language agnostic 真实世界用于模糊处理,language-agnostic,obfuscation,Language Agnostic,Obfuscation,您希望混淆代码的目的是什么?我没有遇到任何真正的目的,除了,但我相信一定有一些聪明和有用的理由混淆源代码 一般来说,为什么要或需要混淆代码 模糊处理有哪些实际应用程序 它会减慢(但不会阻止那些已经确定的)对代码进行反向工程的速度 它可以减缓恶意黑客试图盗版或以未经授权或不受欢迎的方式修改您的软件的速度。不算多,但如果你担心上映日期,几天或几小时可能很重要 这是不道德的,但拥有只有您理解的关键任务代码是一些程序员确保工作安全的一种方法 加大知识产权盗窃的难度 默默无闻的安全 带宽最小化,在j

您希望混淆代码的目的是什么?我没有遇到任何真正的目的,除了,但我相信一定有一些聪明和有用的理由混淆源代码

一般来说,为什么要或需要混淆代码

模糊处理有哪些实际应用程序

  • 它会减慢(但不会阻止那些已经确定的)对代码进行反向工程的速度

  • 它可以减缓恶意黑客试图盗版或以未经授权或不受欢迎的方式修改您的软件的速度。不算多,但如果你担心上映日期,几天或几小时可能很重要

  • 这是不道德的,但拥有只有您理解的关键任务代码是一些程序员确保工作安全的一种方法

    • 加大知识产权盗窃的难度
    • 默默无闻的安全
    • 带宽最小化,在javascript minify等情况下

      • 假设您与一家公司签订了生产某些软件的合同。他们是一个痛苦的工作,基本上使你的生活地狱。合同的一部分规定,项目完成后,您必须移交所有源代码…:D

        如果您启动的应用程序的逻辑是清晰的,那么模糊处理可以在某种程度上防止竞争对手逐字逐句地扫描您的逻辑

        当你是一个新的网站,击败“我也是”的人群可能很重要


        但是预防措施很弱,不值得花时间。

        代码混淆通常应用于解释性语言,如php,其中源代码未编译,必须分发给最终用户。
        事实上,混淆是可以打破的,我用它只是为了让诚实的人保持诚实。你知道,破解某些东西要比实际使用信用卡容易得多。

        在perl第一次发布时,代码混淆变得很流行。这实际上是一个提高代码效率的人工制品。在过去的早期,在已建立的“c”编程社区和“叛变的”perl倡导者之间有一场类似的激烈战争。老派的c语言显然在性能方面胜过了perl语言。作为回应,Perler(?)开始在不考虑可读性的情况下提出性能问题。因此,混淆。这当然不再是必要的,因为佩勒(?)在很久以前就承认了凯尔的表现。模糊处理从未用于我见过的安全目的。事实上,如果你建议把它作为某种安全措施,人们会把你笑出房间。试图规避安全的黑客通常非常了解他们所针对的语言和工具集。这就是他们如此成功的原因。模糊处理绝不是对它们的防御。

        Read

        模糊处理的目标是创建 混乱随着混乱的加剧,问题也越来越严重 人的思维能力 理解多元智力 观念退化。请注意 戒律并没有说改变 正向(可执行)逻辑–仅限 无法理解地表达它。什么时候 一个编写良好的模糊处理工具可以 处理可读的程序指令, 一个可能的副作用是 输出不仅会使人困惑 解释器,它会打破一个 反编译器


        最重要的用途是缩小尺寸。我总是在Javascript和移动电话Java应用程序(j2me)上使用它


        一些模糊处理程序也可以做一些小的优化。

        作为一个具体的例子,看看gmail背后的脚本。这主要是为了阻止一些有进取心的黑客创建一个与gmail服务器对话的替代前端


        第二个好处(尽管很重要)是减少脚本大小。

        我在实际项目中使用过代码模糊处理。我开发了企业软件(JavaServlets)。对于servlet,编译的类必须驻留在服务器上才能运行(WAR/JAR文件)。在大多数情况下,它们驻留在我可以a)控制或b)信任操作员的服务器上

        然而,一个客户坚持应用程序驻留在他们的服务器上以供“内部网”使用。由于客户有“不太优秀”的道德史,我采取了预防措施,首先通过模糊处理程序运行编译好的Java。我还对结果进行了相当好的测试,以确保反编译的代码几乎无法使用。

        您可能会问“为什么要与这样的客户打交道?”,但是这个特定应用程序的整体营销超出了我的控制范围,尽管没有任何安全问题。这是针对特定案例的最佳折衷解决方案

        干杯


        -R

        模糊处理不会打败坚定的黑客或保护您的绝密算法,但在大多数情况下,这不是重点。传统上,它只需要足够好,让一家公司为软件支持和更新付费,而不是花精力去消除混淆和维护软件本身

        我第一次遇到混淆是在Unix的早期,当时大多数C程序都必须以源代码的形式交付,因为有太多不同的cpu体系结构,并且缺少聪明的链接器或通用的对象文件格式


        随着解释语言的兴起,混淆现在可能比以往更多地用于商业软件。

        我们向用VHDL和Verilog设计电路的人出售混淆器。因为这样的设计通常都相当大,有很多东西需要混淆(通常是上万行),而试图对这些东西进行反向工程是非常困难的。

        代码混淆限制了商业应用。然而,它可以以一种独特的方式帮助开发人员的工具箱变得更加锋利。模糊化的代码与清晰的文档化代码d形成了一种极端的对比