请问下如何在用c++写的addons中获取调用它的node文件所在的名称与路径?
发布于 7 年前 作者 wldlzt 2990 次预览 最后一次回复是 7 年前 来自 问答
如题。最近公司给了个任务,要尽可能地加密node.js,因为部分系统要放在友商的服务器上运行,不想代码泄露,我把node中核心的业务代码加密后放进c++里,通过调用时输出,并通过判断调用它的node文件的md5值强制调用的node文件不可修改,否则启动报错。但遇到一个关键问题是,如何在c++里判断哪个node文件调用了它,如果能做到这一步就完美了。当然如果实在做不到,我只能在启动时强制清除所有node进程,只保留我自己的node项目进程…希望大家给我提一点思路…
14 回复
考虑使用 pkg 打包成二进制
@GopherJ 等好久终于有人回了,谢谢先…这个pkg是如何命中我要解决的问题的?我贴子的意思是,如何在c++的代码中,自动获取调用它的node文件的路径…
@GopherJ 啊,还是说这个pkg是把整个项目打包??
不好意思我可能没认真看你的需求,如果我没理解错的话你只需要加密nodejs放到友商服务器上,那你完全可以将整个项目打包成二进制,有 assets 的话需要注意处理。
@GopherJ 似乎可行,但我们也要频繁升级,这样就麻烦了…
升级是指? 我的一个小项目目前是通过一个脚本编译成二进制发布
您可以参考下
@GopherJ 先谢谢,我的升级是指直接替换系统里的业务路由,因系统的业务路由有版本上的区分,若某个版本有问题或新增业务处理流程,就需要在修复后直接替换。我想问下是否您这个解决方安案,可是否以把一个项目分成多个二进制包装并关联起来运行?
@GopherJ 您好,我试了下似乎可行,我想再了解一下,经过pkg处理的文件,有没办法再还原出代码的?
调用时传参数 __filename, webpack压损混淆js
来自酷炫的 CNodeMD
@zswnew 您好,现在怕的是有人非法传参,没调用__filename,这而是直接写死了其它参数值.混淆倒有的
node怎么做,c++就做一次模拟就好了。
但作为js开发者,我还是更建议使用wasm,更方便更高效更多环境支持更未来。 作为js团队,我不可能让团队每一个人都了解V8底层和过多的C++,这对团队效率来说损耗太大了。
@zy445566 非常非常感谢~~~,你讲的也很在理…目前的话,底层方面倒是只有我一个人在做这些事,忝为技术经理,但学习劲头已经不如很多年轻的同事了,只能硬着头皮赶一赶;团队成员还是以JS的技术栈为主,但无奈的是,自身纵观与把控全局的能力提升太难,现在也就只能遇到一个技术要点就寻求一下帮助,不想这样,但已是能力所限了…再次感谢
@wldlzt 惭愧,我也是运气好,恰好知道这一点。别的方向上也是要大量提问的,但有的时候反倒缺少这样的勇气,真的很惭愧。楼主能这样,我是打心底里佩服的。
@zy445566 客气了~~~~