자바스크립트 소스 코드 난독화 유틸 비교
javascript source code Obfuscate, 소스 코드 암호화
- Obfuscation, obfuscator mangle, minimize, encode
//------------------------
* 속도 비교
원본 : 100%
terser : 96.4%
javascript-obfuscator : 103.6% (3%정도 느림)
//------------------------
* 크기 비교
원본 : 100%
terser : 37.7%
javascript-obfuscator : 50.5% (terser 보다 12.8%정도 더 큼)
//
원본 크기 |
terser |
javascript-obfuscator |
|||
1013 |
366 |
36.1% |
479 |
47.3% |
11.2% |
508 |
251 |
49.4% |
327 |
64.4% |
15.0% |
242 |
82.2 |
34.0% |
111 |
45.9% |
11.9% |
121 |
39.1 |
32.3% |
52.3 |
43.2% |
10.9% |
117 |
43.1 |
36.8% |
60.6 |
51.8% |
15.0% |
|
|
|
|
|
terser |
terser 옵션 : -c -m
javascript-obfuscator 옵션 --identifier-names-generator mangled-shuffled --identifiers-prefix ZZ
//---------------------------
* javascript-obfuscator <===
https://github.com/javascript-obfuscator/javascript-obfuscator - 5.9k
- v2.10.3 , 2021/01
- 난독화 수준 높음,
- terser보다 크기는 12% 크고, 속도는 7% 느림
- 설치
npm i -g javascript-obfuscator
환경변수 PATH에 다음 경로 추가 C:\Users\useID\AppData\Roaming\npm
- 실행
- 원본 파일 1,013k , terser - 366kb
javascript-obfuscator in.js --output out.js --identifiers-prefix B - 760k
javascript-obfuscator in.js --output out.js --identifiers-prefix B --identifier-names-generator mangled-shuffled - 480k
//---------------------------
* terser / terser
https://github.com/terser/terser - 5.7k
- v5.5.1 , 2020/11
- 난독화 수준 낮음, 함수 안의 변수 이름 줄이는 수준
- 설치
npm i -g terser
- 실행
terser in.js -c -m -o out.js
//-----------------------------
* mishoo / UglifyJS
https://github.com/mishoo/UglifyJS - 11.3k
- v3.12.8 , 2021/02
- ES6지원 안함, 실행속도 느림, 난독화 수준 낮음,
-설치
npm i -g uglify-js
환경변수 PATH에 다음 경로 추가 C:\Users\useID\AppData\Roaming\npm
- 실행
uglifyjs in.js -c -m -o out.js
//----------------------------------
* google / closure-compiler
https://github.com/google/closure-compiler - 5.8k
- v20210202 , 2021/02
- 난독화 수준 낮음
https://developers.google.com/closure/compiler/
- 설치
npm i -g google-closure-compiler
- 실행
google-closure-compiler --js in.js --js_output_file out.js --warning_level QUIET --compilation_level SIMPLE
--compilation_level ADVANCED 옵션은 압축률이 높지만 컴파일시 에러가 자주 발생
//-----------------------------------
- 자바 버전 사용법 java maven
https://developers.google.com/closure/compiler/docs/gettingstarted_app
- 설치
*.jar 파일 다운로드
https://mvnrepository.com/artifact/com.google.javascript/closure-compiler
- 실행
java -jar closure-compiler.jar --js in.js --js_output_file out.js
//---------------------------
* YUI Compressor
https://github.com/yui/yuicompressor - 2.9k
- v2.4.8 , 2013
* douglascrockford / JSMin
https://github.com/douglascrockford/JSMin - 625
- 2017
//------------------------------------------
- 유료
https://www.javascriptobfuscator.com/Default.aspx
Javascript Obfuscato
//------------------------------------------------------------------------------
자바스크립트 소스 코드 난독화 해독(복원, 복호화)
javascript source Obfuscate decode
De-obfuscate
* JS Beautifier
- 설치 가능
beautify-web /js-beautify
https://github.com/beautify-web/js-beautify - 7.2k
//----------------------------
* mindedsecurity / JStillery
https://github.com/mindedsecurity/jstillery/ - 682
https://mindedsecurity.github.io/jstillery/
//---------------
//pass
https://www.thaoh.net/prettyjs/
http://deobfuscatejavascript.com/
- 소스 http://deobfuscatejavascript.com/deobfuscate.js