问题标签 [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 投票
9 回答
4379 浏览

silverlight - Silverlight 和混淆

我对 silverlight 很陌生,我真的觉得它很酷。我有一个关于它如何在客户端运行代码的问题。

例如,我有一个网站根据用户输入的金额计算一定的金额。这当然我很乐意做客户端。但问题在于,用于计算的公式是专有的并且是商业机密。如果我使用 SL 将这个公式放在客户端,它会安全吗?或者可以反映吗?

0 投票
7 回答
18412 浏览

php - 我可以加密 PHP 源代码或编译它以便其他人看不到吗?如何?

我需要加密一些我已向公众发布的 PHP 源代码。

这可能吗?PHP可以“编译”吗?

0 投票
11 回答
8960 浏览

.net - 在 .Net DataSets 上使用列名或列索引会更好吗?

从 DataRow 检索值时,使用列名还是列索引更好?

列名更具可读性和更易于维护:

虽然列索引更快(我认为):

如果您决定混淆数据库,使用列名会中断吗?

0 投票
6 回答
26548 浏览

javascript - 哪个 Javascript minifier (cruncher) 与 Google 用于其 JS API 的功能相同?

我是一名 Google Maps API (javascript) 开发人员。我注意到 Google 使用了具有以下功能的 Javascript 缩小器:

  1. 缩短变量、属性、参数、类、函数和方法名称,混淆代码。(例如,函数 1 -> a,函数 2 -> b,函数 3 -> c)
  2. 一些变量、类、属性和方法可以标记为不被处理,因此其名称与 API 手册中记录的名称保持一致。
  3. 它会在 API 的每个子版本中重新运行,就像构建任务一样,我注意到由于经过处理的名称会从一个版本更改为另一个版本。

我还没有在整个互联网上找到具有这些功能的 Javascript 缩小器。有人知道吗?

0 投票
38 回答
257570 浏览

c# - 保护 .NET 代码免受逆向工程?

混淆是一种方式,但它不能防止破坏应用程序的盗版保护安全。如何确保应用程序不被篡改,如何确保注册机制不会被逆向工程?

也可以将 C# 应用程序转换为本机代码,而Xenocode成本太高。

C# 提供了很多功能,并且是我的代码的理想语言,因此再次用 C++ 编写整个代码库是不可能的。

可以轻松地从 .NET 中的签名程序集中删除安全证书。

0 投票
2 回答
1134 浏览

.net - 如何在混淆和调试版本之间保持反序列化兼容性?

我正在尝试让 {smartassembly} .NET 混淆器与我的系统一起使用。我目前将用户数据存储在一系列序列化的字典类中,然后反序列化这些类以取回数据。我已经忽略了汇编版本信息,只是因为那样会让生活变得痛苦。该代码改编自 MSDN

问题是,现在我的混淆应用程序将忽略版本信息,但无法读取非混淆应用程序保存的数据,反之亦然。我们需要一个非混淆版本来调试应用程序,所以这对我们来说是一个相当大的展示。有什么办法可以解决这个问题?我不应该混淆数据类吗?这似乎是一个相当大的安全漏洞。

0 投票
7 回答
33958 浏览

javascript - 什么是最好的 javascript 混淆器?

我正在寻找使用 javascript 混淆器。哪些是最受欢迎的,它们对性能有什么影响?

0 投票
7 回答
7640 浏览

c# - 隐藏 c# windows 应用程序源代码

我使用 C# .Net 2.0 编写了一个 Windows 应用程序,我想做一些隐藏源代码的事情,所以当任何人使用重构工具时都看不到源代码。我使用了 dotfuscator,但它只是更改了函数名称,而不是所有源代码。

更新:我想隐藏源代码,不是因为隐藏密钥,而是隐藏代码的工作方式。

谢谢,

0 投票
9 回答
10585 浏览

.net - 混淆的效果如何?

另一个问题,即Best .NET obfuscation tools/strategy,询问混淆是否易于使用工具实现。

我的问题是,混淆有效吗?在回复这个答案的评论中,有人说“如果你担心源代码被盗......对于真正的破解者来说,混淆几乎是微不足道的”。

我查看了 Dotfuscator 社区版的输出:它看起来让我感到困惑!我不想保持这种状态!

我知道简单地“破解”混淆软件可能相对容易:因为您只需要找到软件中的任何位置实现您想要破解的任何内容(通常是许可证保护),然后添加一个跳转来跳过它。

如果担心不仅仅是最终用户或“盗版”破解:如果担心是“资源盗窃”,即如果您是软件供应商,而您担心的是另一个供应商(潜在的竞争对手)反向 -设计您的源代码,然后他们可以将其用于或添加到他们自己的产品中……在何种程度上简单的混淆是对这种风险的充分或不充分的保护?


第一次编辑:

有问题的代码大约是 20 KLOC,它在最终用户机器上运行(用户控件,而不是远程服务)。

如果混淆真的“对真正的破解者来说几乎是微不足道的”,我想了解它为什么无效(而不仅仅是“多少”它无效)。


第二次编辑:

我不担心有人反转算法:更担心他们将算法的实际实现(即源代码)重新用于他们自己的产品。

考虑到 20 KLOC 需要几个月的时间来开发,是否需要更多或更少的时间(几个月)才能对所有内容进行去混淆处理?

是否有必要对某些东西进行去混淆以“窃取”它:或者一个理智的竞争对手可能只是将它批发到他们的产品中,同时仍然被混淆,接受它是维护的噩梦,并希望它几乎不需要维护?如果这种情况可能的,那么混淆的 .Net 代码是否比编译的机器代码更容易受到这种攻击?

大多数混淆的“军备竞赛”是否主要旨在防止人们甚至“破解”某些东西(例如查找和删除实现许可保护/执行的代码片段),而不是防止“来源盗窃”?

0 投票
5 回答
2469 浏览

.net-3.5 - 在将程序集集成到 MSI 之前对其进行混淆

我有一个包含安装项目的 VS.NET 2008 解决方案。此安装项目获取我的其他项目(在同一解决方案中)的输出并生成 MSI。到目前为止,一切都很好......我希望 MSI 中包含的程序集被混淆。这种混淆本身很简单,但是如何将这个前置步骤(混淆)引入 MSI 构建?有人有想法吗?

谢谢!