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

python - Python 代码混淆

你知道任何可以帮助我混淆python代码的工具吗?

0 投票
1 回答
1569 浏览

.net - 商业混淆器如何实现使 .net Reflector 和 ILDASM 崩溃?

一些商业混淆器声称它们可以使 ILDASM(以及其他类似的工具,如 Reflector)崩溃

关于他们如何实现这一目标的任何想法?

正如这里的许多线程中所述,有足够动力/时间/技能的人总能找到一种方法来阅读您的代码(也就是如果它是可运行的,它就是可反编译的),但在我看来,大多数普通的代码读者都不会费心反编译我的如果反射器不能为他们做代码。

对我的知识产权的这种保护水平(即,除了那些可能会想办法绕过我向他们投掷的每一个诡计的铁杆家伙之外的任何人)对我来说绝对足够了。

0 投票
7 回答
10536 浏览

c# - 发布时混淆源代码 (C#)

我们正在开发许多正在向我们的客户发布的产品。但是,如果您发布 C# 应用程序,则所有 dll 都可以使用反射器或某种方式进行反编译。

我想知道是否有一种简单的方法可以在发布时加密我们的 dll。这样我们就可以发布我们的dll,而不必担心我们的客户反编译我们的代码。

ps:如果可以将它集成到视觉工作室中,那就太棒了。

编辑:对双重帖子感到抱歉,我不知道它被称为“混淆”。

0 投票
5 回答
655 浏览

javascript - 是否有免费/开源的 JavaScript 到 JavaScript 压缩编译器(如 Google 的)?

如果您查看带有 JavaScript 的 Google 页面的源代码,您会发现 JavaScript 显然不可读——或可维护。例如,所有变量和函数都是一个字母命名的(至少,前 26 个是……);没有多余的空格或换行符;没有评论;等等。

这个编译器的好处很明显:页面加载速度更快,JavaScript 执行速度更快,而且作为奖励,竞争对手将很难理解你的混淆代码。

显然,谷歌正在使用某种 JavaScript 到 JavaScript 的压缩编译器。我想知道他们使用的是内部工具吗?如果没有,他们在用什么?是否有任何此类公开可用(理想情况下是免费/开源)工具?

0 投票
4 回答
2372 浏览

.net - net reactor 和 clickonce 部署

在构建我们的 VB.NET .exe 之后,然后使用第 3 方 .NET Reactor 实用程序对其进行混淆,然后将其输出包含在 VS2005 部署项目中。有没有办法在使用 click-once 发布之前将 .exe 替换为加扰版本?

有没有人设法通过单击一次来部署受网络反应堆保护的应用程序?

0 投票
8 回答
3213 浏览

c# - 保护我的代码免受逆向工程

正如在此处此处的类似问题中所讨论的,我想保护我的代码免受逆向工程的影响。

我的情况就像Simucal在他的(优秀)回答中所描述的那样

基本上,归根结底,您成为源盗窃目标的唯一机会是,如果您有一些与您的域相关的非常具体、难以设计的算法,可以让您在竞争中占得先机。这几乎是唯一一次尝试对应用程序的一小部分进行逆向工程具有成本效益。

我正好有这种情况。一种难以设计的算法,它对我们的特定领域来说既优雅又有价值。

经过几个月的微调和开发,最终结果非常紧凑(大约 100 行代码)且优雅。我想保护代码的这个特定部分免受逆向工程的影响,或者至少让它变得合理困难。

该场景是一个用 C# 编写的富客户端应用程序,我必须部署这部分代码 - 我无法从 Web 服务执行它。

我认为由于性能原因(和跨界问题),提取代码并将其重写为非托管本机二进制文件不是一种选择。

最初我想做简单的混淆,但考虑到代码的体积很小,我认为这不会提供太多保护。

理想情况下,我想保护我的整个应用程序,但有两个主要问题似乎使普通混淆器和 3rd 方打包器难以使用:

  1. 应用程序提供了一个插件接口,因此一些程序集(和接口/类)不应该被混淆和打包

  2. 我们仍然希望在收到错误报告时能够获得真正的堆栈跟踪——这可能是通过我将混淆映射到真实代码来完成的。

撇开这些问题不谈(尽管我也希望对此有任何意见),什么是保护我的一小部分代码免受逆向工程的好方法?我不关心任何人更改或破解代码,但希望使其难以理解和逆向工程。

0 投票
6 回答
1573 浏览

iphone - 加密和压缩 iPhone 应用程序包中的 html 代码,在第一次启动时解包

我的客户想要在 iPhone 捆绑包中加密/压缩他们的医学书籍的 html 代码,以保护他们的 IP。

什么是为应用程序包准备此文件的好方法,我应该使用哪些补充库(C、Obj-C)在第一次启动应用程序时进行解密和解压缩?

将文件复制到 ~/Documents,然后处理它似乎是最好的解决方案。想法?

0 投票
3 回答
12878 浏览

c# - How do you hide an encryption key in a .NET application?

I'm developing an intranet application (C#) that uses some data (local to the web server) that we'd like to keep private. This data is encrypted (AES) using a legacy data repository. We can't totally prevent physical access to the machine.

Clearly, we're never going to have perfect security here. However, we want to make it as hard as possible for anyone to gain unauthorized access to the data.

The question is how best to store the key. Encrypting it based on some machine specific ID is an option, but that information would be readily available to anyone running a diagnostic tool on the machine.

Encoding it in the application is an option (it's a one off application). However, .NET assemblies are pretty easy to decompile. So, would it be best to obfuscate it, use an encryption launcher, compile it?

Or is there an option I'm missing?

Just so we're clear, I know it's pretty much a lost cause if someone is determined, but we're looking to make it as hard as possible within the constraints.

0 投票
0 回答
5968 浏览

.net - 保护 .NET 应用程序

复制:

保护 .NET 代码免受逆向工程

我们最近发布了一个小应用程序,这个周末我发现了一个破解版,它Piratebay删除了注册检查,所以应用程序运行起来就像是注册版一样。

除了使用代码混淆工具(似乎并不难解决)之外,我们还应该做些什么标准的事情来让我们的 .NET 应用程序更难破解?

0 投票
4 回答
5038 浏览

obfuscation - 有没有办法避免让我的混淆应用程序看起来像病毒

当我混淆我的应用程序时,防病毒软件会为混淆的应用程序发出病毒警报。

我能做些什么来避免这种情况?

我在 Windows XP Professional 上使用 Visual Studio 2008 和 .NET Reactor 3.9.8.0。

Windows 和应用程序是最新的,并且防病毒软件在运行完整扫描时什么也找不到。

编辑:Avast Antivirus 发出警报。MS Forefront 没有。

编辑 2:更改控制流混淆级别修复了它。