인터넷정보

스크립트 인코딩 (Windows Script Encoder)

알 수 없는 사용자 2007. 10. 18. 13:27
관련 페이지
마이크로소프트사 - http://www.microsoft.com/downloads/details.aspx?displaylang=ko&FamilyID=E7877F67-C447-4873-B1B0-21F0626A6329
마이크로소프트사 메뉴얼 - http://oxtag.com/html/ex/Encode_ScriptDecoder/menual/sgCLEOverview.html
태그피아 웹 스크립트 인코더/디코더 - http://oxtag.com/zboard/zboard.php?id=js&no=302
김기수의 ice world - http://ice.pe.kr/ (도스프로그램을 윈도우프로그램으로 수정)

아래 설명은 도스상태나 명령 프로프트 상에서 실행하는 방법입니다.

지금까지 스크립트를 사용했을 때의 단점은 스크립트에 포함되어 있는 지적 소유권을

보호할 수 없다는 것과 작성자가 작성한 스크립트대로 다른 사용자가 이 스크립트를

얻을 수 있는지 확신할 수 없다는 것입니다.

잘 작성된 알고리즘과 심혈을 기울여 디자인한 스크립트는 일반 텍스트 형식으로 저장되므로 쉽게 노출됩니다.

따라서 일반 스크립트 사용자들도 스크립트 디자이너의 코드를 볼 수 있으며 그 코드를

가져와 수정하여 자기 것으로 만들 수 있습니다.

이것은 치열한 경쟁 환경에서 결코 바람직한 일은 아닙니다.

스크립트릿의 도입으로 원본 코드를 보호하는 일이 훨씬 더 중요해졌습니다.

스크립트 디자이너는 이렇게 간단한 구성 요소 아키텍처는 사용하려고 하면서도 자신들의

원본 코드는 다른 사람들과 공유하려고 하지 않습니다.

스크립트를 일단 인코딩하면 인코딩된 파일을 조금만 변경해도 작동하지 않기 때문에

인코딩한 스크립트의 무결성을 완전히 보장할 수 있습니다.


위에 내용은 MS사의 Script Encoder에 대한 개략적인 내용입니다.

먼저 Script Encoder를 다운로드 받아서 설치 하셔야 합니다.

http://oxtag.com/zboard/zboard.php?id=pds2&no=103

기본 경로에 설치된 경우 프로그램 폴더에 설치가 됩니다.

그안에 Windows Script Encoder 라는 폴더가 생기는데 그곳에 도움말이 자세히 나와 있습니다.

그럼 간단한 예로 들어 보겠습니다.

98인 경우로 예를 들겠습니다. xp, 2000인 경우는 프롬프트에서 하면 되겠죠

설치가 완료 되었다면 스크립트 소스가 있는 페이지를 a.htm 이라 가정하고 인코딩으로 변환할

파일을 b.htm이라고 가정 했을때

a.htm(원본 파일) 과 b.htm(인코딩으로 변환될 파일, 소스는 상관없이 아무 파일이면 됩니다.) 을

Windows Script Encoder 폴더에 넣습니다.(명령어 입력시 경로를 쉽게 하기 위해서 Screnc.exe가 있는

폴더에 함께 넣은 것입니다.)

그리고 도스창을 열어서

98로 예를 들면

C:\Program Files\Windows Script Encoder>

Screnc.exe가 있는 폴더까지 찾아가서 명령어를 입력 합니다.

(참고, 찾아갈때 디렉토리 명은 dir을 이용해서 확인 하시고 이동 하세요 저같은 경우는 위에 폴더
까지 이동시 C:\cd progra~1\window~3 으로 이동 했습니다.)

그리고 명령어는 기본적인

screnc 원본파일 인코딩변환될파일

이렇게 하시면 됩니다. 기타 옵션은 도움말에 나와 있습니다.

스크립트 소스가 있는 원본 파일 a.htm을 b.htm에 인코딩 되게 하려면

C:\Program Files\Windows Script Encoder>screnc a.htm b.htm

이렇게 하시면 끝이 납니다.

a.htm을 b.htm으로 옮겨서 하는 이유는 원본 파일을 보존 하기 위해서 입니다.

그렇지 않고

C:\Program Files\Windows Script Encoder>screnc a.htm

이렇게 하시면 원본 파일 자체가 인코딩 됩니다.

그럼 인코딩 되는 예를 들면

<HTML>
<HEAD>
<TITLE>Script Encoder 예제 페이지</TITLE>
<SCRIPT LANGUAGE="JScript">
<!--//
//Copyright© 1998 Microsoft Corporation. All Rights Reserved.
//**Start Encode**
function verifyCorrectBrowser(){
if(navigator.appName == "Microsoft Internet Explorer")
if (navigator.appVersion.indexOf ("5.") >= 0)
return(true);
else
return(false);
}
function getAppropriatePage(){
var str1 = "실제 웹 사이트가 아니므로";
var str2 = "Microsoft Internet Explorer 5.0";
var str3 = "이 아닌 다른 브라우저";
var str4 = "과(와) 호환될 수 있는 페이지가 로드되지 않았습니다.";
if (verifyCorrectBrowser())
document.write(str1 + str2 + str4);
else
document.write(str1 + str2 + str3 + str4);
}
//-->
</SCRIPT>
</HEAD>
<BODY onload="getAppropriatePage()">
</BODY>
</HTML>

위와 같은 원본 파일이 아래와 같이 인코딩 됩니다.

<HTML>
<HEAD>
<TITLE>Script Encoder 예제 페이지</TITLE>
<SCRIPT LANGUAGE="JScript.Encode">
<!--//
//Copyright© 1998 Microsoft Corporation. All Rights Reserved.
//**Start Encode**#@~^QwIAAA==@#@&0; mDkW P7nDb0zZKD.n1YAMGhk+Dvb`@#@&P,kW`UC7kLlDGDcl22gl:n~{'~Jtr1DGkW6YP&xDnD +OPA62sKD+ME#@#@&P,~~k6PvxC\rLmYGDcCwa.n.kkWU bx[+X66Pcr*cJ#,@*{~!*P~P,P~.YEMU`DDEbIP,P,+s/n@#@&P~P,~PM+O;Mx`WC^/n#pN6EU1YbWx,oObaw.WaDrCD+nmL+v# @#@&~P7lMPdY.q,'~J_CN,Y4rkP4nn PCx,C1Y;mV,+(PkrY~~l,wCLPmKhwmYk(snPSkDt~JI@#@&P~\m.PkY.+,'PE8MWA/.kPGDtDPDtmUPri@#@&,P-CMP/D.&,'Pr\rmMWkWWY~( YnD nY,2a2^WDn.,* !,Ep@#@&,P7lD,/D.c,'~JSW;s9Ptm-+,4+U~VKl9+[REI,Pr0,c\DrWHZW..mOAMGS/nM`*#@#@&P,~P9W^Es+UOchDbO+v/YMq~_,/DDfPQ~kY.c*IP,+sd@#@&~~,P[W1;s+UDRSDkD+vdYMF~_,/O.yP_,dYM&P3~dYMc*iNz&R @*^#~@
//-->
</SCRIPT>
</HEAD>
<BODY onload="getAppropriatePage()">
</BODY>
</HTML>

예제에서는 원본 파일에 script language="JScript"이지만 script language="JavaScript"라도

자동을 JScript.Encode로 변환 됩니다.
반응형