Intensio-Obfuscator
このプロジェクトはもうメンテナンスされていません
すべてのコントリビューターに感謝

これは何ですか?
- Intensio-Obfuscator ツールは Python のソースコードを取得し、難読化された Python コードに変換します
- すべての
変数/クラス/関数/ファイル名 の名前を、定義された長さのランダムな文字列に置換し、すべての 文字 を 16 進数値に変換します
- すべての
コメント、すべての 空白行 を削除します
- 常に異なる値を持つランダムな
スニペットコード/関数/クラス をパディングします
目的は?
- Python プログラムの読み取りと理解を防止または遅延させるための高レベルの難読化レイヤーを提供します
難読化のレベル
- 単独で使用した場合は弱い難読化です。他の難読化手法と組み合わせて使用できます
必要条件
- Python >= 3.5
- requirements.txt
対応ファイル
- Python 2.x および 3.x で書かれたファイル
インストール
$ git clone https://github.com/Hnfull/Intensio-Obfuscator.git
$ python3 -m pip install -r Intensio-Obfuscator/requirements.txt
$ cd Intensio-Obfuscator/src/intensio_obfuscator
$ python3 intensio_obfuscator.py --help
$ python3 -m pip install intensio-obfuscator
$ intensio_obfuscator --help
機能
| 機能 | 説明 | 難読化の目的 | すべての種類の Python コード/構文との互換性 |
|---|
| コメントの削除 | すべてのコメントを削除します(この機能はデフォルトで実行されます) | 潜在的な動作情報を削除 | 高い Python ファイル 2 & 3 |
| 行スペースの削除 | すべての空白行を削除します(この機能はデフォルトで実行されます) | コードの可読性を低減 | 高い Python ファイル 2 & 3 |
| 空のクラス/関数のパディング補正 | 空のクラスと関数にパディングを追加します。クラスまたは関数にコメントのみが含まれている場合、デフォルト機能の「コメントの削除」によってクラスや関数が空になる可能性があり、これによりエラーが発生するのを防ぎます(この機能はデフォルトで実行されます) | なし、エラーを発生させないためだけ | 高い Python ファイル 2 & 3 |
| 文字列から文字列への混合置換 | すべての変数/クラス/関数の名前を定義された長さのランダムな文字列に置換します | コードの可読性を低減 - 変数/クラス/関数の動作の推測を遅延 | 低~高(除外する必要がある名前の数に依存) Python ファイル 2 & 3 |
| 除外ワード | 除外するワードを指定するファイル(形式についてはドキュメントを確認)「ファイル名の置換」難読化機能のみ | 不要な情報 | 不要な情報 |
| スクリプトのパディング | 各行の後にランダムなスクリプトのパディングを追加します | コードの可読性を低減 - デッドスニペットコード/クラス/関数を追加してプログラムの動作分析をぼやけさせ遅延させる | 高い Python ファイル 2 & 3 |
| ファイル名の置換 | すべてのファイル名を定義された長さのランダムな文字列に置換します | コードの可読性を低減 - ファイルの機能の推測を低減 | 低い Python ファイル 2 & 3 |
| ファイル名の除外 | 除外するファイル名を指定するファイル(形式についてはドキュメントを確認)「ファイル名の置換」難読化機能のみ | 不要な情報 | 不要な情報 |
| 文字列から16進数への置換 | すべての文字を16進数値に置換します | コードの可読性を低減 / 例えば grep コマンドで検出されるのを回避 | 中程度 Python ファイル 2 のみ |
| pycファイルの削除補正 | 出力ディレクトリ内のすべてのpycファイルを削除します(この機能はデフォルトで実行されます) | 難読化されていない既にコンパイルされたファイルを削除 | 高い Python ファイル 2 & 3 |
| ミキサー長さ低 | -rts, --replacetostr または -ps, --paddingscripts または -rfn, --replacefilesname または -rth, --replacetohex パラメータが指定された場合に、ランダムな文字列の長さを 32 文字に定義します | 長さが長いほどコードの可視性が難しくなる | 不要な情報 |
| ミキサー長さ中 | -rts, --replacetostr または -ps, --paddingscripts または -rfn, --replacefilesname または -rth, --replacetohex パラメータが指定された場合に、ランダムな文字列の長さを 64 文字に定義します | 長さが長いほどコードの可視性が難しくなる | 不要な情報 |
| ミキサー長さ高 | -rts, --replacetostr または -ps, --paddingscripts または -rfn, --replacefilesname または -rth, --replacetohex パラメータが指定された場合に、ランダムな文字列の長さを 128 文字に定義します | 長さが長いほどコードの可視性が難しくなる | 不要な情報 |
- 機能は個別に実行できます:
文字列から文字列への混合置換 -> -rts, --replacetostr
スクリプトのパディング -> -ps, --paddingscript
ファイル名の置換 -> -rfn, --replacefilename
文字列から16進数への置換 -> -rth, --replacetohex
使用方法
- Intensio-Obfuscator を使用する前に、これらのドキュメントをお読みください!
- 特定の種類のパターンはサポートされていません
| パラメータ | 説明 |
|---|
| -h, --help | このヘルプメッセージを表示して終了 |
| -i, --input | ソースディレクトリ - ファイルを含むディレクトリを指定 |
| -o, --output | 難読化される出力ディレクトリ - ファイルを含む空のディレクトリを指定 |
| -mlen, --mixerlength | --replacetostr または --paddingscripts または -rfn, --replacefilesname または --replacetohex 機能が指定された場合に生成されるランダムな文字列の長さを定義 [lower:32|medium:64|high:128] 文字、可能な値: [lower|medium|high] |
| -ind, --indent | Python ソースコードのインデントを指定、可能な値: [2|4|8] |
| -rts, --replacetostr | 文字列から文字列への混合置換 難読化機能を有効にする |
| --excludewords | 特定のワードを除外するファイル(形式についてはドキュメントを確認)-rts, --replacetostr 難読化機能のみ |
| -ps, --paddingscript | スクリプトのパディング 難読化機能を有効にする |
| -rfn, --replacefilename | ファイル名の置換 難読化機能を有効にする |
| --excludefiles | ファイル名を除外するファイル(形式についてはドキュメントを確認)-rfn, --replacefilename 難読化機能のみ |
| -rth, --replacetohex | 文字列から16進数への置換 難読化を有効にする (Python ファイル 2 のみ) |
| --version | 現在のバージョンを確認 |
| -v, --verbose | 詳細表示を強化 |
難読化の例
今後の予定
- バージョン 1.x.x-x:
- コードの最適化
- 問題の修正
- 既存機能の改善
- その他の機能の追加
ライセンス
連絡先
免責事項
- Intensio-Obfuscator は教育/研究目的のみです。作者は、提供されたツールをどのように使用するかについて一切の責任を負いません。