すらすらプログラマーへのお問い合わせ
すらすらのブログ
アクセス数  累計:000,683,169  昨日:000,000,189  本日:000,000,007
Loading
やってみよう!
.NET プログラミング
プロパティグリッド
印刷
リストボックス
スレッド
リストビュー
インストーラー
やってみよう!

Windows自動処理のためのWSHプログラミングガイド

WSHクイックリファレンス 第2版

[改訂版] VBScriptポケットリファレンス (POCKET REFERENCE)

最速攻略 VBScriptサンプル大全集

JavaScript本格入門 ~モダンスタイルによる基礎からAjax・jQueryまで

JavaScript 第5版

よくわかるゼロからはじめるJavaScript (よくわかるトレーニングテキスト)

JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス

スクリプトの暗号化⑥ 最終更新:2011/10/09
【Amazon ランキング:本 - コンピュータ・IT】

スクリプトの暗号化①スクリプトの暗号化⑤でスクリプトの暗号化についていろいろと調査してきたのですが、暗号化に使用する Window Script Encorder でちょっと使いにくいなと思った点を上げてみました。
  1. コメントの日本語が暗号化されずにそのままになってる。
  2. 外部参照をしているスクリプトを1つずつ暗号化しないいけない。
  3. WSH を暗号化した際に language 属性が正しく書き変わらない。

そこで、Window Script Encorder の使いにくい部分を補完した WSH を作成してみました。
こちらからダウンロードできます⇒screnc.wsf

※使い方※
cscript.exe screnc.wsf inFile outFile [/m] [/c] [/e]

  1. インポートするには language と src があることが前提
    language="xxxxx" src="xxxxx"
  2. 対応する言語 VBScript,JScript,JavaScript(JavaScriptはJScriptに置換します。)
  3. /m … script タグの直後にEncodeマーカーを埋め込む
  4. /c … スクリプト内のコメントをすべて消す。
  5. /e … Windows Script Encoder を使ってエンコードを行う
サンプル⑥
スクリプトの暗号化⑤で作ったスクリプトをベースにします。エンコード用のマーカーの埋め込みも行うので必要ありません。
sample6.wsf
<?xml version="1.0" encoding="Shift_JIS" standalone="yes" ?>
<job id="sample05">
<?job error="true" debug="true" ?>
<script language="JScript" src="./sample05_js.js"></script>
<script language="JavaScript" src="./sample05_ja.js"></script>
<script language="VBScript" src="./sample05.vbs"></script>
<script language="JScript">
// <![CDATA[
    
// Windows Script Encorder のサンプル⑤
    WScript.Echo(
"Windows Script Encorder のサンプル⑤");

    showMessage_JScript();
    showMessage_JavaScript();
    showMessage_VBScript();
// ]]>
</script>
</job>
JScript のスクリプトコードを記述します。エンコード用にマーカー「//**Start Encode**」は必要ありません。
sample06_js.js
// JScriptを使ってでメッセージボックスを表示します。
function showMessage_JScript(){
    WScript.Echo(
"このメッセージはJScriptで表示しています。");
}

JavaScript のスクリプトコードを記述します。エンコード用にマーカー「//**Start Encode**」は必要ありません。
sample06_ja.js
// JavaScriptを使ってでメッセージボックスを表示します。
function showMessage_JavaScript(){
    WScript.Echo(
"このメッセージはJavaScriptで表示しています。");
}

VBScript のスクリプトコードを記述します。エンコード用にマーカー「'**Start Encode**」は必要ありません。
sample06.vbs
' VBScriptを使ってでメッセージボックスを表示します。
Sub showMessage_VBScript()
    WScript.Echo 
"このメッセージはVBScriptで表示しています。"
End Sub

暗号化
screnc.wsf を使ってエンコードします。/e オプションで暗号化まで行うには Window Script Encorder にパスを通しておいてください。
>cscript.exe screnc.wsf sample06.wsf sample06e.wsf /m /c /e
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

Input  File   :sample06.wsf
Output File   :sample06e.wsf
Encode Marker :true

モジュール読み込み      :C:\work\Sample06\sample06.wsf
   3 行目 : スクリプト開始タグ
        language = JScript
        src      = ./sample06_js.js
   3 行目 : スクリプト終了タグ
モジュール読み込み      :C:\work\Sample06\sample06_js.js
   4 行目 : スクリプト開始タグ
        language = JScript
        src      = ./sample06_ja.js
   4 行目 : スクリプト終了タグ
モジュール読み込み      :C:\work\Sample06\sample06_ja.js
   5 行目 : スクリプト開始タグ
        language = VBScript
        src      = ./sample06.vbs
   5 行目 : スクリプト終了タグ
モジュール読み込み      :C:\work\Sample06\sample06.vbs
   6 行目 : スクリプト開始タグ
        language = JScript
        src      =
   7 行目 : CDATA セクション開始
  14 行目 : CDATA セクション終了
  15 行目 : スクリプト終了タグ

screnc.exe /e sct /f "C:\work\Sample06\sample06e.wsf"

エンコードが正常に完了しました。
/c オプションを付けるとスクリプト内のコメントをすべて消すので暗号化後のスクリプトにコメントが残りません。また、外部参照のスクリプトはコードをそのまま埋め込むので一緒に配布する必要がなくなります。
sample6e.wsh
<?xml version="1.0" encoding="Shift_JIS" standalone="yes" ?>
<job id="sample06">
<?job error="true" debug="true" ?>
<script language="JScript.Encode">
// 
//**Start Encode**#@~^aAAAAA==@#@&amp;@#@&amp;6E    mYbW    ~/4WAH/dCT+{xjmMkwDcb @#@&amp;,P~P    j1DrwD 21tGcrこのメッセージは9?^.bwOで表示しています。J*I@#@&amp;N@#@&amp;JzP@#@&amp;AxYAAA==^#~@
</script>
<script language="JScript.Encode">
// 
//**Start Encode**#@~^bgAAAA==@#@&amp;@#@&amp;6E    mYbW    ~/4WAH/dCT+{xC\m?mMr2Yv#P@#@&amp;P~~,jmMrwDR3^4W`EこのメッセージはBm\C?1.bwOで表示しています。r#p@#@&amp;)@#@&amp;&amp;z,@#@&amp;cxgAAA==^#~@
</script>
<script language="VBScript.Encode">

'**Start Encode**#@~^YgAAAA==@#@&amp;@#@&amp;UE(P/4WS\+k/Co{#$UmDb2Yv#@#@&amp;7   ?1DbwOR3^4W~Jこのメッセージはj$?1Dr2Dで表示しています。J@#@&amp;3   N~?!8@#@&amp;@#@&amp;axQAAA==^#~@
</script>
<script language="JScript.Encode">
// 
//**Start Encode**#@~^nAAAAA==@#@&amp;@#@&amp;iUmDbwD 21tG`rrU9Whk~?1DkaO~2 mKD[+.~のサンプル⑥r#I@#@&amp;@#@&amp;i/4GSH+ddmon{xj1DraYv#i@#@&amp;idtKh\+k/CL{9m-lUmDb2O`*i@#@&amp;7/4GSHn/kCo{#$UmDr2D`bi@#@&amp;Jz~@#@&amp;qykAAA==^#~@
</script>
</job>

※このページで紹介しているサンプルコードについて管理者は動作保障をいたしません※
※サンプルコードを使用する場合は、自己責任でお願いします※

【楽天 ランキング:フィギュア - アニメ・コミック】




このサイトはフリーソフトのMerge HTMLで作成されています。
このサイトはリンクフリーです。

ページの先頭に戻る Copyright© 2010-2015 Jun.Shiozaki All rights reserved.