Obfuscator.exeの説明

イントロダクション:

Smoke_Nが彼のバージョンのサポートをやめてからも多くの人がObfuscator機能を要望し続けました。
私はTidyプログラムに取り組んでいてそれには全ての組み込みの字句解析機能が備わっていました。 そこで私はObfuscatorという名の別のプログラムを作成しました。
Obfuscatorを使うとあなたのソースコードを非常に読みにくくすることができます。ただし注意してください:

Obfuscatorはあなたのソースを守ってくれるわけではありません!
 

OK。他の話に移りましょう。:

  1. Obfuscatorを使用する前にスクリプトが正しく動作することを確認してください。
  2. 難読化されたスクリプトをできるだけ広範囲な方法で確認してください。
  3. Obfuscatorによってスクリプトの動作がおかしくなったと私のところに不平を言いに来ないでください。
  4. えーと・・・、Obfuscatorはスクリプトソースに書かれたパスワードを守るには不十分だという話はしましたっけ?

Obfuscatorがおこなうこと:

Obfuscatorは次のことを行います:

  1. あなたのスクリプトと必要なインクルードを読み込み、新しいソースファイルを作成します:
    1. 変数名を変更します。
    2. 関数名を変更します。
    3. 文字列を変数に変換します。
    4. 値を数値(変数)に変換します。
    5. @MarcrosをExecute(変数)に変換します。
    6. 次のAutoIt3関数とそこで使用されるファイル/関数/行、 そしてアンパサンド(&)を含むパラメータには注意が必要です。 なぜならこれらはスクリプトの動作をおかしくするからです。 :
      1. adlibenable()
      2. call()
      3. eval()
      4. guiregistermsg()
      5. guisetonevent()
      6. guictrlsetonevent()
      7. hotkeyset()
      8. isdeclared()
      9. trayitemsetonevent()
      10. objevent()
      11. Opt("OnExitFunc","OnAutoItExit")
         
  2. 問題が起きたときに備えて変換処理の全情報が記載されたObfuscator.logを生成します。

コマンドラインとコンパイラ・ディレクティブでのオプションをサポート:

コマンドラインまたはディレクティブ #Obfuscator_Parameters= でサポートされているパラメータのリストです:

 

Obfuscatorの実行:

Obfuscatorは次の方法で実行できます

  1. 手動: SciTEUSer.propertiesに次の行を追加してください
     
    command.46.*.au3="$(SciteDefaultHome)\Obfuscator\Obfuscator.exe" "$(FilePath)"
    command.name.46.*.au3=Obfuscator
    command.save.before.46.*.au3=1
    command.is.filter.46.*.au3=1
    command.shortcut.46.*.au3=Ctrl+Shift+O

     

  2. Batch: Obfuscator.exe Scriptname.au3
  3. SciTEからF7またはAlt+F7 (コンパイル)によって。 次のコンパイラディレクティブによるアクティブ化が必要です:
     
    #Compiler_Run_Obfuscator=y                 ;コンパイル前にObfuscatorを実行 デフォルト = n

AutoIt3Wrapperはまずオリジナルのソースに対してAu3Checkを行い、エラーが見つからなかった場合は暗号化されたソースファイルを作成するためにObfuscator.exeを実行します。暗号化されたソースファイルはスクリプトファイル_Obfuscated.au3として同じディレクトリに作成され、全ての#includedファイルを含む全てのソース情報が記載されています。
次にこのファイルがAU3Checkでチェックされ変換によって壊れていないことが確認されます。 最後にスクリプトファイル_Obfuscated.au3を使用してAUT2EXEによってプログラムが作成されます。


AutoIt3 Source Obfuscator v?.?.?.? Copyright (c) Jos van der Zande  date
-### Obfuscation Warning: Found Eval() statement which will lead to problems running your script.
-### current Func:_ArrayCreate
C:\Program Files\AutoIt3\include\array.au3(101,1) Warning for line:$av_Array[$i_Index] = Eval("v_" & String($i_Index))
-### Obfuscation Warning: Found IsDeclared() statement which could lead to problems running your script.
-### current Func:_About

c:\program files\autoit3\scite\csnippet\csnippet.au3(2182,1) Warning for line:If Not IsDeclared('Cadet_Blue_3') Then Local $Cadet_Blue_3 = 0x7AC5CD
-############################################################################################
-#### Obfuscator Found 2 warning(s)!!!!   This means your script could not run properly. ####
-############################################################################################

+Obfuscator finished obfuscating 4025 lines and created:c:\program files\autoit3\scite\csnippet\csnippet_Obfuscated.au3