首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >node.js代码保护-如何使node.js部署只能在V8汇编程序中恢复

node.js代码保护-如何使node.js部署只能在V8汇编程序中恢复
EN

Stack Overflow用户
提问于 2012-09-23 18:42:04
回答 2查看 1.7K关注 0票数 2

让我们假设,由于某些特殊的原因,我想要一个健壮的node.js代码保护,即强制使用v8源代码的node.js部署完全只能通过javascript汇编语言进行分析,这使得重构原始源代码变得非常困难/几乎不可能。

换句话说,如果有人以某种未经授权的方式假想地获得了node.js程序(即假设有问题的node.js程序应该留在服务器上,而不是直接分发给客户端-假设服务器是安全的,不会受到客户端的攻击等,但假设服务器不是100%可信的,例如云服务器,不能100%确定如果出于某种原因,没有人会得到它),那么代码将只包含V8汇编程序,而不包含任何原始的js源代码。我的意思不是丑化、缩小、加密,或者“源代码仍然隐藏在字符串中”,V8快照js源代码等等,而是简单地没有任何js源代码,只有“优化的汇编程序”-并且以这样一种方式对整个源代码进行处理:源代码将被删除并且不包含在这个node.js实例中-不加密,不缩小-只是不在那里,句号。在这种情况下,如果适用,则任何性能损失都不是问题,只是除了通过对整个特定于硬件的优化的V8组件进行繁琐的钻研之外,源js是不可恢复的。

首先想到的一个想法是,以某种方式迫使V8以某种方式将所有的node.js源代码优化为“特定于硬件的”汇编程序(然而,“硬件”将位于某种精简的VM中),然后以某种方式移除它一直携带的源代码(如果可能的话),并仅依赖于这个优化的汇编程序。然后,瘦VM将不包含对任何源代码的引用,并将仅使用生成的V8汇编程序继续运行程序。不过,我真的不确定在这种情况下该怎么做。

可能更喜欢可以在Linux上工作的东西,但如果只在Windows上可能的话-也会考虑它。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-24 00:14:51

如果不在V8内部进行大量的修改,这是不可能的,因为它依赖于在多个地方从源代码重新编译函数的能力(例如:懒惰编译,Crankshft优化管道,主要GC期间的代码刷新)。此外,如果不跨生产类数据实际运行您的应用程序,就不可能生成良好的优化代码,因为除了内联缓存之外,V8没有其他方法来收集代码的类型信息。

票数 2
EN

Stack Overflow用户

发布于 2012-09-23 19:33:25

PHP有很多混淆器。所有的popuplar混淆器都有反模糊加密器。其结果比google closure所提供的更具可读性。您可以使用google closure,如果您不信任它,请不要使用云托管。大多数使用字节码的应用程序都很容易反编译。(Java、安卓、.NET)

简而言之,不要把时间浪费在混淆上。通常,反编译比混淆和调试它引发的所有问题更容易。我这么说是因为我混淆了Java和.NET中的许多应用程序

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12551645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档