问题标签 [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.
silverlight - Silverlight 和混淆
我对 silverlight 很陌生,我真的觉得它很酷。我有一个关于它如何在客户端运行代码的问题。
例如,我有一个网站根据用户输入的金额计算一定的金额。这当然我很乐意做客户端。但问题在于,用于计算的公式是专有的并且是商业机密。如果我使用 SL 将这个公式放在客户端,它会安全吗?或者可以反映吗?
php - 我可以加密 PHP 源代码或编译它以便其他人看不到吗?如何?
我需要加密一些我已向公众发布的 PHP 源代码。
这可能吗?PHP可以“编译”吗?
.net - 在 .Net DataSets 上使用列名或列索引会更好吗?
从 DataRow 检索值时,使用列名还是列索引更好?
列名更具可读性和更易于维护:
虽然列索引更快(我认为):
如果您决定混淆数据库,使用列名会中断吗?
javascript - 哪个 Javascript minifier (cruncher) 与 Google 用于其 JS API 的功能相同?
我是一名 Google Maps API (javascript) 开发人员。我注意到 Google 使用了具有以下功能的 Javascript 缩小器:
- 缩短变量、属性、参数、类、函数和方法名称,混淆代码。(例如,函数 1 -> a,函数 2 -> b,函数 3 -> c)
- 一些变量、类、属性和方法可以标记为不被处理,因此其名称与 API 手册中记录的名称保持一致。
- 它会在 API 的每个子版本中重新运行,就像构建任务一样,我注意到由于经过处理的名称会从一个版本更改为另一个版本。
我还没有在整个互联网上找到具有这些功能的 Javascript 缩小器。有人知道吗?
c# - 保护 .NET 代码免受逆向工程?
混淆是一种方式,但它不能防止破坏应用程序的盗版保护安全。如何确保应用程序不被篡改,如何确保注册机制不会被逆向工程?
也可以将 C# 应用程序转换为本机代码,而Xenocode成本太高。
C# 提供了很多功能,并且是我的代码的理想语言,因此再次用 C++ 编写整个代码库是不可能的。
可以轻松地从 .NET 中的签名程序集中删除安全证书。
.net - 如何在混淆和调试版本之间保持反序列化兼容性?
我正在尝试让 {smartassembly} .NET 混淆器与我的系统一起使用。我目前将用户数据存储在一系列序列化的字典类中,然后反序列化这些类以取回数据。我已经忽略了汇编版本信息,只是因为那样会让生活变得痛苦。该代码改编自 MSDN:
问题是,现在我的混淆应用程序将忽略版本信息,但无法读取非混淆应用程序保存的数据,反之亦然。我们需要一个非混淆版本来调试应用程序,所以这对我们来说是一个相当大的展示。有什么办法可以解决这个问题?我不应该混淆数据类吗?这似乎是一个相当大的安全漏洞。
javascript - 什么是最好的 javascript 混淆器?
我正在寻找使用 javascript 混淆器。哪些是最受欢迎的,它们对性能有什么影响?
c# - 隐藏 c# windows 应用程序源代码
我使用 C# .Net 2.0 编写了一个 Windows 应用程序,我想做一些隐藏源代码的事情,所以当任何人使用重构工具时都看不到源代码。我使用了 dotfuscator,但它只是更改了函数名称,而不是所有源代码。
更新:我想隐藏源代码,不是因为隐藏密钥,而是隐藏代码的工作方式。
谢谢,
.net - 混淆的效果如何?
另一个问题,即Best .NET obfuscation tools/strategy,询问混淆是否易于使用工具实现。
我的问题是,混淆有效吗?在回复这个答案的评论中,有人说“如果你担心源代码被盗......对于真正的破解者来说,混淆几乎是微不足道的”。
我查看了 Dotfuscator 社区版的输出:它看起来让我感到困惑!我不想保持这种状态!
我知道简单地“破解”混淆软件可能相对容易:因为您只需要找到软件中的任何位置实现您想要破解的任何内容(通常是许可证保护),然后添加一个跳转来跳过它。
如果担心不仅仅是最终用户或“盗版”破解:如果担心是“资源盗窃”,即如果您是软件供应商,而您担心的是另一个供应商(潜在的竞争对手)反向 -设计您的源代码,然后他们可以将其用于或添加到他们自己的产品中……在何种程度上简单的混淆是对这种风险的充分或不充分的保护?
第一次编辑:
有问题的代码大约是 20 KLOC,它在最终用户机器上运行(用户控件,而不是远程服务)。
如果混淆真的“对真正的破解者来说几乎是微不足道的”,我想了解它为什么无效(而不仅仅是“多少”它无效)。
第二次编辑:
我不担心有人反转算法:更担心他们将算法的实际实现(即源代码)重新用于他们自己的产品。
考虑到 20 KLOC 需要几个月的时间来开发,是否需要更多或更少的时间(几个月)才能对所有内容进行去混淆处理?
是否有必要对某些东西进行去混淆以“窃取”它:或者一个理智的竞争对手可能只是将它批发到他们的产品中,同时仍然被混淆,接受它是维护的噩梦,并希望它几乎不需要维护?如果这种情况是可能的,那么混淆的 .Net 代码是否比编译的机器代码更容易受到这种攻击?
大多数混淆的“军备竞赛”是否主要旨在防止人们甚至“破解”某些东西(例如查找和删除实现许可保护/执行的代码片段),而不是防止“来源盗窃”?
.net-3.5 - 在将程序集集成到 MSI 之前对其进行混淆
我有一个包含安装项目的 VS.NET 2008 解决方案。此安装项目获取我的其他项目(在同一解决方案中)的输出并生成 MSI。到目前为止,一切都很好......我希望 MSI 中包含的程序集被混淆。这种混淆本身很简单,但是如何将这个前置步骤(混淆)引入 MSI 构建?有人有想法吗?
谢谢!