我的目标:我正在尝试将.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);
};
快乐调试加密模块;)