1

私の目標: .js ファイルを .jse に暗号化し、実行中のみ復号化しようとしています (nodejs コードを難読化する)。

var ffi = require('ffi');

//libpcrypt.so はファイルを暗号化および復号化するためのライブラリです
var crypt = ffi.Library('./libpcrypt', {
  '復号化': ['文字列', ['文字列', '文字列']]
});

require.extensions[".jse"] = 関数 (モジュール) {
   module.exports = (crypt.decrypt(module.filename, 'out'));
};

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

cosole.log() を使用すると、ソース コードを印刷できます。

問題:復号化されたコードはプレーンな文字列です。エクスポート用の有効な JavaScript オブジェクトに変換できません。復号化したコード文字列をエクスポートする方法はありますか?

4

2 に答える 2

1

これがあなたの解決策です(テストされていません):

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

暗号化されたモジュールのデバッグに満足 ;)

于 2012-11-05T18:08:12.960 に答える
0

module.exports は、割り当て可能なオブジェクトです (つまり、module.exports.newFunc = someFunction;)。

JSON.parse(crypt.decrypt(module.filename, 'out'));

編集したがって、暗号化されたファイルをJSONクラスにするか、同様の質問に対するこの回答を確認する必要があります「バニラ」JavascriptライブラリをNode.jsにロードする

于 2012-11-05T15:25:58.397 に答える