Questions tagged «obfuscation»

4
代码混淆的情况?
从对开发代码的人和运行该代码的企业的真正好处(如果所讨论的代码实际上是商业代码)的角度而言,编写混淆的代码的首要原因是什么?是否有记录在案的案例(可在某些地方在线获得)描述混淆的好处多于坏?是否有众所周知的例子,例如,证明混淆处理会有意义地延迟恶意的第三者获取代码?看来,就像卷起车窗并不会阻止人们打破它们并窃取您的立体声音响一样,混淆代码只会使诚实的人保持诚实。 ========= 背景: 这是有意挑战我关于该主题的假设的一种尝试。 我通常反对使用代码混淆,但是我很好奇我是否缺少某些东西。我明白了为什么在JavaScript之类的情况下,缩小可以帮助事情更快地加载并且全部(在那里有真正的,功能上的好处),但是我似乎无法提出代码混淆的单一原因,从而成为障碍。发现一段代码/算法的作用实际上对于任何目的都是有效的。 随着开源软件的疯狂流行,问题似乎是“共享代码,还是专有?” 在商业代码方面,我能理解为什么您不能共享所有内容,并且您有法律来打击盗窃。 顺便说一句,如果有人编写混淆代码的原因是“工作安全性”,那么我将解雇任何被发现是一致的程序员,并故意使用混淆的唯一目的是帮助保持他们的工作,除非他们可以合理地证明它有一些保留。商业利益。它是如此的反团队,以至于很荒谬,它指向的是一个更关心通过误导的做法来保持工作,然后再因为编写出色的软件而保持工作的人。 我仅提及此特定案例,因为尽管我意识到人们通常在开玩笑,但我想阻止任何以其基本目的是仅对工作安全进行迷惑是一个好主意的答案。

12
资深程序员使用了最差的编程实践
我知道说起来似乎很奇怪,但是工作中的一名程序员故意使用了一些不良的编程实践!我会解释。首先,我要说他是一个有才华的人,大部分时间他都会编写可理解的代码。 他被要求在以Java编写的Web应用程序项目上实施许可。由于它是Java,因此如果真的愿意,人们可能会黑客打开罐子并读取其中编写的类和方法的名称。他对这个问题的解决方案是,从字面上说来笨拙地调用不太明显的名称和变量,并将它们植入已经拥挤的类中,而不是生成新类。 他的理由是,如果黑客想要切换某些类以绕过许可检查(并因此获得产品的免费副本),那么如果不清楚哪种方法,他将花费更多的时间。执行这些特定任务。只有在他完成之后,我才与他面对面,这表明我们也许可以购买某种混淆器库来为我们做,同时保持良好的编程习惯。他声称没有时间或资源来寻找这种解决方案。 ..这让我陷入了困境。我是否正在寻找Java中的混淆器库并修复他的旧代码(对于重塑他的代码可能有些麻烦),还是我将其保留下来,以至于让我感到无休止?


2
混淆发布代码的优点是什么?
我想到的具体示例涉及当前的Alpha游戏《我的世界》,但这是一个普遍的问题,我认为需要进行一些讨论。 Minecraft是用Java编写的,堆栈跟踪通常如下所示(实际示例): java.lang.NullPointerException at d.a(SourceFile:247) at gi.b(SourceFile:92) at bd.a(SourceFile:33) at bn.a(SourceFile:69) at bn.e(SourceFile:115) at bn.d(SourceFile:103) at net.minecraft.client.Minecraft.i(SourceFile:1007) at net.minecraft.client.Minecraft.run(SourceFile:596) at java.lang.Thread.run(Unknown Source) 显然,这些不是开发人员在编写时使用的实际包和方法名称。由于他处于Alpha阶段,因此开发人员似乎希望能够理解他的堆栈跟踪,特别是如果有人能够为错误报告提供一个。就目前而言,它几乎毫无意义。 克服这种难以识别错误的缺点的代码,可能会希望获得什么样的优势?

3
混淆C ++应用程序代码重要吗?
在Java世界中,有时似乎是一个问题,但是C ++呢?有不同的解决方案吗? 我在考虑这样一个事实,即有人可以用同一库的不同版本替换特定操作系统的C ++库,但是充满了调试符号以了解我的代码的作用。使用标准库或流行库是一件好事吗? 在Windows下将某些dll库替换为该库的“调试版本”时,也会发生这种情况。首选静态编译更好吗?在商业应用程序中,我看到针对其应用程序的核心,它们静态地编译了所有内容,并且在大多数情况下,dll(通常是动态库)用于提供一些第三方技术,例如反盗版解决方案(我在许多游戏中都看到了这一点) ),GUI库(如Qt),OS库等。 静态编译是否等效于Java世界中的混淆处理?用更好的术语来说,这是保护代码的最佳,最实惠的解决方案吗?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.