Html & Script

[JS] 자바스크립트 암호화 및 복호화

컨텐츠 정보

본문

* 암호화, 복호화 ( encode, decode ) 파일 첨부

- 암호화 방법( Microsoft Script Encoder 도움말 )

 

Script Encoder는 스크립팅 코드만 인코딩합니다. 이때 파일에서 변경하지 않은 다른 내용들은

일반 텍스트로 나타납니다. Script Encoder를 사용하려면 일반적인 방법으로 스크립트를 개발하고

디버그한 다음, 최종 스크립트를 인코딩하십시오. Script Encoder는 원본 코드에 들어 있는 표식을

사용하여 인코딩 시작점을 식별합니다.
Visual Basic® Scripting Edition(VBScript)을 사용할 때 다음 예제와 같이 인코딩 표식을 사용하여

일반 텍스트 저작권 정보를 표시할 수 있습니다.


<SCRIPT LANGUAGE="VBScript">
'Copyrightⓒ 1998. XYZ Productions. All rights reserved.
'**Start Encode**
' 여기에 사용자 코드를 작성합니다.
</SCRIPT>

 

JScript®를 사용할 때 인코딩 표식은 다음과 같습니다.

<SCRIPT LANGUAGE="JScript">
//Copyrightⓒ 1998. ZYX Productions. All rights reserved.
//**Start Encode**
// 여기에 사용자 코드를 작성합니다.
</SCRIPT>

 

Script Encoder를 실행하면 스크립트 블록 내의 시작 표식 앞에 있는 부분은 인코딩되지 않고

스크립트 볼록의 나머지 부분은 모두 인코딩됩니다. 그러므로 시작 표식을 생략하면 전체 스크립트

블록이 인코딩되고, 스크립트 블록 끝에 시작 표식이 있으면 전혀 인코딩되지 않습니다.

인코딩한 뒤에 <SCRIPT> 태그에 들어 있는 언어 지시자가 변경되는 것에 유의하십시오.

VBScript를 사용할 때 새 지시자는 다음과 같습니다.

 

<SCRIPT LANGUAGE="VBScript.Encode">

JScript(또는 JavaScript)를 사용할 때 새 지시자는 다음과 같습니다.
<SCRIPT LANGUAGE="JScript.Encode">

Script Encoder는 MS-DOS 명령줄이나 다음과 같이 실행 대화 상자에서 실행합니다.
SRCENC [switches] inputfile outputfile

이 유틸리티의 구문은 Script Encoder 구문에 설명되어 있습니다.
쉽게 수정하거나 볼 수 없도록 스크립트 원본 코드를 인코딩합니다.

SCRENC [/s] [/f] [/xl] [/l defLanguage ] [/e defExtension] inputfile outputfile

 

요소 설명
/s 선택적인 요소. 이 스위치를 사용하면 Script Encoder를 실행할 때 화면에 출력 메시지가 표시되지 않습니다. 생략하면 기본적으로 상세한 출력 메시지가 표시됩니다.
/f 선택적인 요소. 출력 파일이 입력 파일을 덮어씁니다. 이 요소를 사용하면 입력 원본 파일을 더 이상 사용할 수 없습니다. 생략하면 입력 원본 파일이 보존됩니다.
/xl 선택적인 요소. @language 지시어가 .ASP 파일의 맨 앞부분에 추가되지 않습니다. 생략하면 모든 .ASP 파일에 @language 지시어가 추가됩니다.
/l defLanguage 선택적인 요소. 인코딩할 때 사용할 기본 스크립트 언어(JScript® 또는 VBScript)를 지정합니다. 인코딩하는 파일의 스크립트 블록(언어 특성이 없음)은 지정된 이 언어로 인코딩됩니다. 생략하면 HTML 페이지와 스크립트릿에서는 JScript가 기본 스크립트 언어가 되고 .ASP 파일에서는 VBScript가 기본 스크립트 언어가 됩니다. 일반 텍스트 파일에서는 파일 확장명(.js 또는 .vbs)에 따라 기본 스크립트 언어가 정해집니다.
/e defExtension 선택적인 요소. 입력 파일의 파일 형식을 지정합니다. 입력 파일의 확장명으로 파일 형식을 결정할 수 없을 때 즉, 입력 파일의 확장명이 인식 가능한 확장명은 아니지만 파일의 내용이 인식 가능한 형식일 때, 이 스위치를 사용하여 파일 형식을 지정합니다. 이 요소의 기본값은 없습니다. 파일 확장명으로 파일 형식을 알 수 없을 때 이 요소를 지정하지 않으면 Script Encoder에서 해당 파일이 인코딩되지 않습니다. 인식 가능한 파일 확장명은 asa, asp, cdx, htm, html, js, sct, vbs 등입니다.
inputfile 필수적인 요소. 인코딩할 입력 파일의 이름입니다. 현재 디렉터리에 대한 상대 경로가 포함되어야 합니다.
outputfile 필수적인 요소. 출력 파일의 이름입니다. 현재 디렉터리에 대한 상대 경로가 포함되어야 합니다.

- 복호화 방법

Usage: scrdec14 <infile> <outfile> [-cp codepage] [-urldec]

Code pages can be 932 - Japanese
                  936 - Chinese (Simplified)
                  950 - Chinese (Traditional)
                  949 - Korean (Wansung)
                 1361 - Korean (Johab)
Any other code pages don't need to be specified.
Use -urldec to unescape %xx style encoding on the fly.

 

infile 은 암호화 되어 있는 파일 outfile 은 복호화 되어서 나오는 파일

 

예제>D:\GUNHO\JS\ENDEC>scrdec14 test.html result.html

 

위와 같이 실행한 후 나온 결과 파일의 자바 스크립트 내용은 16진수로 되어있으므로

unescape 로 다시 변경한 다음 alert 나 innerText 를 이용하여 소스를 확인하시면 됩니다.

관련자료

댓글 0
등록된 댓글이 없습니다.
Today's proverb
따돌림을 받을까 두려워서 집단에 맹목적으로 따라가서는 안 된다. 네가 할 일은 네가 스스로 결정해야 한다. (고승제의 《구멍가게 둘째딸 마거릿 대처》중에서)