2012-11-05 4 views
1

내 목표 : .js 파일을 .jse로 암호화하고 실행 중일 때만 해독하려고합니다 (nodejs 코드를 난독 화).자바 스크립트 객체에 유효한 nodejs 코드

 
var ffi = require('ffi'); 

//libpcrypt.so is a library to encrypt and decrypt files 
var crypt = ffi.Library('./libpcrypt', { 
    'decrypt' : [ 'string', ['string', 'string']] 
}); 

require.extensions[".jse"] = function (module) { 
    module.exports = (crypt.decrypt(module.filename, 'out')); 
}; 

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

내가 알고있는 cosole.log() 소스 코드는 인쇄 할 수 있습니다.

문제 : 암호 해독 된 코드는 일반 문자열이므로 수출용으로 유효한 자바 스크립트 개체로 변환 할 수 없습니다. 내가 해독 한 코드 문자열을 내보내는 방법이 있습니까?

답변

1

대답은 (하지 테스트) 솔루션입니다 gig 암호화 모듈;)

+0

감사합니다. 나는 이것을 http://stackoverflow.com/a/9163557/458816에서도 보았다. 그러나 나는 SyntaxError : 예기치 않은 토큰 ILLEGAL을 얻는다. 인코딩 문제라고 생각하고 utf-8로 변환했습니다. 그러나 아무 사용. – rda3mon

+1

이 코드는 작업 라이브러리에서 도난 당했기 때문에 작동합니다. _compile하려고하는 소스를 확인하십시오. – Anatoliy

+0

확인. 다시 고마워. 적어도 내가 올바른 코드가 뭔지 알아. – rda3mon

0

module.exports 당신이에 할당 할 수있는 객체입니다 (예 : module.exports.newFunc = SomeFunction을)

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

편집 그래서 당신은 당신의 암호화 된 파일 JSON 클래스를 만들거나이 체크 아웃해야

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

해피 debu : 비슷한 질문 여기 Load "Vanilla" Javascript Libraries into Node.js

+0

작동하지 않았습니다. 문자열은 일반 텍스트이므로 JSON.stringify가 생성되지 않습니다. 구문 분석 오류 :'SyntaxError : 예기치 않은 토큰 전자 ' – rda3mon

+2

@ mv945 - 암호화 된 파일을 JSON 클래스로 만들거나 유사한 질문에 대한이 답변을 확인하십시오. http://stackoverflow.com/questions/5171213/load-vanilla- javascript-libraries-into-node-js –

+0

당신은 내게 올바른 방향을 지적했습니다. 고마워 ..하지만 편집하지 않으면 답변을 수락 할 수 없습니다. – rda3mon