何时以及如何模糊我的Delphi代码?

Jus*_*tMe 4 delphi obfuscation delphi-2010

关于Delphi中的代码混淆,我应该知道些什么?

我应该或不应该这样做?

它是如何完成的,是否有任何好的工具(商业/免费)自动化它?

Bug*_*der 11

你为什么需要?

总的来说,与.net不同,Delphi不会反编译,因此,虽然反编译总是有点风险,但我从来没有找到一个反编译实际上以一种有用的方式做到这一点,很多区域都留作汇编程序等等.

如果人们想重写你的工作,他们可以,无论是什么,混淆与否,哎呀,一些编码人员写了几乎自然混淆的代码(与一些人一起工作)

因此,我的投票是不应该打扰的.除非有人能给我看一个真正有用的delphi的反编译器,并且生成完整的可编译器,以及它最初的所有delphi,我不会担心一滴.

  • @justme如果你想保护你的代码免受破解者的攻击,那么请问问题.这不是你问的问题! (3认同)
  • 在机器代码级别,您很容易在源代码级别对代码进行模糊处理.您可能希望查看加密二进制文件的加密器,并保护它不会在调试器下执行,但实际上没有任何保护方案长期保持未解密状态.即使是最小的公用设施也会在发布后的几天内破解 - 这是一项体育或亚文化学科.你最终只能与资源充足的非常有能力的破解者作斗争.你试图保护的越多,他们就会投入越多. (2认同)

Mic*_*ick 6

Pythia是一个可以混淆用Delphi或C++ Builder创建的二进制文件(不是源代码)的程序.Pythia的源代码在这里.

之前:在此输入图像描述

之后: 在此输入图像描述


War*_* P 6

例如,您可以采取其他措施来降低攻击者禁用您的软件激活系统的能力,但在像 Delphi 这样的本机编译系统中,您无法从二进制文件重新创建源代码。另一个答案(目前已接受的答案)正好说明了这一点,其他人指出了一个有用的工具来混淆人们可能用来深入了解软件内部的 RTTI 信息。

您可以研究以下强化技术来阻止修改您的系统,如果这是您真正想要的:

  1. 自修改代码,带有门控逻辑,可将代码的关键功能(例如软件激活)划分为不同级别的可互操作校验和,以及代码损坏和修复。

  2. 调试检测。您可以检测在您的软件上使用的调试器,并在这种情况下尝试阻止软件工作。

  3. 加密磁盘上的 PE 二进制数据,并在加载时或在运行前及时解密,这样关键的汇编代码就不能那么容易地逆向工程回汇编语言。

正如其他人所说,在您的软件上工作的黑客不需要恢复原始来源来修改它。他们会尝试(如果他们尝试过)直接修改您的二进制文件,并将使用详细而广泛的汇编语言知识来规避您可能希望他们不要做的事情。


Dav*_*nan 5

由于编译器已经为您做了这一点,因此毫无疑问是混淆的.

无法从二进制文件重新创建源代码.

组件可以以有用的方式分发,而无需分发源代码.

因此,通常没有(技术)原因来分发源代码.