问题标签 [obfuscation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
303 浏览

c# - 明智的猫头鹰会正确混淆 wpf 项目吗?

我们正在从 windows 窗体迁移到 wpf 以用于我正在开发的下一个版本的产品。我们正在使用明智的猫头鹰来进行混淆,我想知道是否有人有这方面的经验。

0 投票
3 回答
3276 浏览

obfuscation - 如何使用 ProGuard 混淆 OSGi 包?

我目前正在尝试使用 ProGuard 混淆我的 Eclipse RCP 应用程序。问题在于它混淆了包名(My.Package.Class 类变成了类似 abc),但将包名保留在 MANIFEST.MF 的 Export-Package 部分。

这导致我的应用程序(实际上是一组 OSGi 捆绑包)无法运行,因为无法解析 MANIFEST.MFs 的 Export-Package 部分中指定的包名称。

ProGuard 混淆基于 OSGi 的 RCP 应用程序是否有人成功?基本上,我看到了两个选择:要么完全关闭包名称混淆,要么混淆 MANIFEST.MF 的 Export-Package 部分,但我找不到实现其中任何一个的方法。Proguard 似乎只混淆了 MANIFEST.MF 中的 Bundle-Activator 类名,跳过了所有其他部分。提前致谢!

0 投票
6 回答
4297 浏览

silverlight - Silverlight 代码混淆

我正在寻找任何可用于 Silverlight 代码混淆的免费工具的建议。混淆器专业版支持 Silverlight,但混淆器社区版不支持。

来自 Google Code 的 Obfuscar 需要手动指定不应混淆的每个项目,因此必须手动列出 XAML 中引用的每个控件和属性。没有选项可以不混淆任何公共类型和成员的名称。即使我手动指定每个公共类和成员,我也不知道是否还有其他 Silverlight 问题潜伏。

我没有兴趣开始另一个关于代码混淆的智慧或缺乏的讨论。

0 投票
3 回答
2841 浏览

java - 你能对混淆代码进行单元测试吗?

我希望在我们现有的 Ant 构建脚本中混淆我们的 Java Web 应用程序代码,但在单元测试方面遇到了问题。我在代码编译后、在 jar-ed 之前以及在运行单元测试之前对代码进行了混淆。

但是,如果我混淆了我的生产代码而不是我的测试代码,我的所有测试都会失败,因为它们试图调用不再存在的方法,因为它们已被混淆器重命名。我可以将某些方法标记为不混淆,以便外部系统(例如我们的测试套件)使用它们,但是由于我们正在为高单元测试覆盖率而努力,因此我们需要将所有方法标记为不可混淆。

如果我也混淆测试类,我会遇到两个问题:

1:生产类和测试类合并到同一个输出目录中,我无法从生产 .jar 文件中排除测试类

2:我无法运行正常的 Ant 批处理测试调用:

因为混淆器更改了测试的名称。

我可以在生成的 .war/.ear 文件上运行混淆器,但我想让我们的单元测试针对修改后的代码运行,以消除由混淆器引起的任何错误。

我目前正在与 Zelix KlassMaster 合作,但我仍处于评估阶段,因此如果它们能更好地工作,我愿意接受其他选择。

0 投票
3 回答
858 浏览

.net - 混淆 .NET Microsoft Office 插件的工具

我正在开发一个 .NET Microsoft Office 插件的团队。我们正在寻找混淆解决方案来帮助保护我们的许可程序。我们主要关注 Dotfuscator Professional 和 smartassembly 等工具。

我的第一个问题是,是否有人有使用带有 Office 加载项的 smartassembly 的经验?Dotfuscator 社区版不适用于这些,因此查看专业版,但在 smartassembly 的销售材料中没有提到这种皱纹。有这方面的经验吗?

我的第二个问题是是否有人通过 MSBuild 自动化了 smartassembly 的使用,也就是说,没有安装 Visual Studio 的好处。

我恭敬地想让响应者知道不要浪费他们的时间来评论混淆的相对优点。我了解有关该问题的最新线程。在过去的日子里,国王建造了城堡,但这些城堡有时会倒塌。我每天早上上班时仍然锁上前门。

0 投票
3 回答
667 浏览

.net - 使用 .Net OnSerializingAttribute 更改变量名称?

为了混淆应用程序代码但仍然能够使用序列化来保存应用程序数据,我想将所有序列化成员的名称映射到自定义序列化名称。我知道我可以通过实现 ISerizableInterface 来实现这一点,但在 MSDN 中,他们建议使用 OnDeserializedAttribute、OnSerializingAttribute、OnSerializedAttribute 和 OnDeserializingAttribute 进行序列化。所以我想使用 OnSerializingAttribute 来重命名我的成员。问题是我找不到明确确定序列化成员的名称的方法。

是否可以使用 OnSerializingAttribute 显式定义序列化名称?

0 投票
4 回答
7567 浏览

javascript - 好的非侵入式反垃圾邮件混淆器?

我正在尝试使用 JavaScript 电子邮件混淆器来减少网站上列出的电子邮件中出现垃圾邮件的机会。现在我有一个基于 JavaScript 的混淆器,它使用 HTML 编码和 JavaScript 的组合将混淆的电子邮件透明地转换为普通电子邮件。

我要做的是:

将链接中 href 的“mailto:”部分格式化为 HTML 编码,如:

我还对电子邮件进行了编码,将@符号替换为(a),以便电子邮件内容如下:

然后,我使用一些 JavaScript 来破译电子邮件中具有此(a)标志的所有 mailto 链接,并将它们转换为@页面加载。

这工作得很好。对于使用启用了 JavaScript 的浏览器的人来说,他们会看到一切正常。对于没有启用 JavaScript 的人,我认识的每个邮件客户端都会认为电子邮件地址无效,但是用户应该能够推断出更正符号所需的内容。

我想知道是否有更好的(侵入性较小(或充其量不是侵入性很强)但更能抵抗垃圾邮件发送者)的方式来混淆网页上的电子邮件。

与任何类型的混淆一样,如果人或计算机可以轻松地对其进行去混淆,那么垃圾邮件发送者也可以轻松地做到这一点。正因为如此,我并不期待一个万无一失的混淆,但是我很想知道还有什么其他建议。搜索 Google 并没有发现任何我认为比当前解决方案更好的解决方案。我想知道是否还有其他好的选择。

0 投票
4 回答
4123 浏览

c# - 替换许多字符串的更好方法 - C# 中的混淆

我试图混淆大量数据。我创建了一个要替换的单词(标记)列表,并且正在使用 StringBuilder 类逐个替换单词,如下所示:

这很慢!有什么简单的方法可以加快速度吗?

标记是大约一千个字符串的列表,每个字符串长度为 5 到 15 个字符。

0 投票
4 回答
1427 浏览

ruby - 如果这段代码不是玩笑,它到底是如何工作的?

有人愿意尝试解释这是做什么的吗?它作为我询问的关于代码太聪明的问题的答案出现了。但我太聪明了,无法判断这是否只是一个玩笑。如果不是,我很想知道它是如何工作的,如果有人愿意解释的话。

0 投票
2 回答
3822 浏览

c - main 的三个参数和其他混淆技巧

以下经过混淆的 C 代码将单词打印到“圣诞节的 12 天”。

我试图弄清楚它是如何工作的。我基本上完全迷路了。初始调用中 main 的三个无类型参数、第一次返回后的一系列字符、main 调用的负数参数有什么意义?哎呀!

我主要是在做这个想法,也许我会学习 C 语言的一些有趣的角落,所以在这方面的回复是最受欢迎的。