Script Encode 後 某ツールでデコードできないスクリプトファイル
Download Windows Script Encoder from Official Microsoft Download Center
Microsoft で JScript や VBScript を手軽に可読性を下げることができる
Script Encoderというのがその昔公開されていました。
JSファイルは JSE、VBS ファイルは VBE という名前に変換されます。
DecodeScript.JSのダウンロード : Vector ソフトを探す!
でも、手軽に復号化できてしまうツールが公開されています。
WScript.Echo "コメント前" '/**//**//**//**//**/ ' 日本語 '/**//**//**//**//**/ WScript.Echo "コメント後" |
そこで、上のようなScriptファイルを書いてみます
#@~^bAAAAA== Um.bwDR21tK~Jコメント前r@#@&BJeM&JeeJ&eCzzCM&zCeJ@#@&B~日本語@#@&B&eC&zCe&&Cez&MCz&eC&@#@& UmMkwDRA^tKPEコメント後J@#@&~1hEAAA==^#~@ |
符号化するとこうなります
さっきのツールを使って復元しようとすると?
『終了していない文字列型の定数です』と言われて Microsoft JScript コンパイルエラーになってしまいます。
実は、OCXが使ってる関数がそのままだと日本語処理できないのでこうなってしまうのです ・ω・;
WScript.Echo "コメント前O ,"*r/"!*"IYa/AHr3yHYL J,日本語 J/!H3ya!3/H!yIGaA3!H3 nncri\r8BcZo uコメント後" |
無理やり復元したのがこちら。
途中から、原型とどめてませんね
Hey, Scripting Guy! HTA 内でスクリプトをエンコードする方法はありますか
Clinick's Clinic on Scripting: Take Five -- Version 5.0 スクリプトエンジンの新機能
IE9 Beta Minor Changes List - IEInternals - Site Home - MSDN Blogs
ところで、IE9の標準モードから JScript.Encode にはサポートできなくなったらしい
Hey, ScriptingGuy には Windows 8がサポートされないって書いてますね
#Windows 10で vbe ファイル実行したところ問題なく動きました
>#Windows 10で vbe ファイル実行したところ問題なく動きました
これはIE? WSH?
vbe ファイルの関連付けはふつうWSHのような
暗号は開始文字(#@~^)、本文のバイト数をBASE64でエンコードした文字列(8文字)、本文、未解析のBASE64(8文字)、終了文字(^#~@)という構造になっています。
暗号は1文字あたり3種類の文字のいずれかを使うようになっていて、どれを使うかは文字の出現順で決まります。
この出現順は64文字周期(但し、0x80未満の文字のみ)で繰り返します。また、”@”に続く特定の5文字は出現順に関わらず、同じ文字に復元されます。
Freeで出回っているデコーダと称するものは半可通な知識で作られたものが多く、漢字を使ったり、Unicodeのスクリプトをエンコードしたものは全く解読できません。
私は自作したデコーダを使いますが、世間に出回るのは好ましくないので公開しておりません。ただ、技術的に興味がおありのようなので、私の知り得た情報を提供します。
いちおう、そのあたりも解析してその日のうちに自作でデコーダー作りました。
やっぱ、公開するのははばかれるかなぁと…記事には記載しませんでしたが
|。・ω・) 。o (情報ありがとうございます)