我的目标:我正在尝试将.js文件加密为.jse,并仅在运行时解密(混淆nodejs代码)。

var ffi = require('ffi');

//libpcrypt.so是用于加密和解密文件的库
var crypt = ffi.Library('./ libpcrypt',{
  'decrypt':['string',['string','string']]
});

require.extensions [“。jse”] =函数(模块){
   module.exports =(crypt.decrypt(module.filename,'out'));;
};

console.log(require('./ routes.jse'));



我知道,使用cosole.log()可以打印出源代码。

问题:解密后的代码是纯字符串,我无法将其转换为可导出的有效javascript对象。有没有办法导出我解密的代码字符串?

最佳答案

这是您的解决方案(未经测试):

require.extensions['.jse'] = function(module, filename) {
  var content = crypt.decrypt(fs.readFileSync(filename), 'out')
  return module._compile(content, filename);
};


快乐调试加密模块;)

09-05 19:52
查看更多