Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
File-Injector — File Injector は、ステガノグラフィを使用して任意のファイルを画像に保存できるスクリプトです。 | Kitploit
ツール/GitHubGitHub/carlospuenteg/file-injector
暗号化/復号化ツールデータ流出ステガノグラフィー暗号化
GitHubcarlospuenteg/file-injector

File-Injector

File Injector は、ステガノグラフィを使用して任意のファイルを画像に保存できるスクリプトです。

リポジトリを見る
443293年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

File Injector

以前のバージョン(1.0.2以下)を使用したい場合は、ファイルを抽出するために元の画像が必要でした。こちらからダウンロードできます。

目次

  • 1. 説明
  • 2. はじめに
    • 依存関係のインストール
    • スクリプトの実行
    • 入力の選択
      • ベースとなる画像/音声の選択
      • 入力ファイルの選択
      • 暗号化キーの選択/生成
  • 3. 結果
  • 4. 使用例
    • インジェクション
    • 抽出
  • 5. 設定
  • 6. 機能
  • 7. 仕組み

1. 説明

File Injector は、ステガノグラフィーを使用して、あらゆるファイル(.zip、.png、.txt、.gba...)とそのファイル名を、画像/音声の中にノイズとして保存できるスクリプトです。

また、保存する前に入力ファイルを暗号化することも選択できます。

そして、改変された画像/音声からファイルを抽出するために元の画像/音声は不要で、ファイルが暗号化されている場合は暗号化キーだけが必要です。

2. はじめに

依存関係のインストール

root@kitploit:~
python3 -m pip install -r requirements.txt

それがうまくいかない場合は、次を試すことができます:

root@kitploit:~
py -m pip install -r requirements.txt

スクリプトの実行

root@kitploit:~
python3 main.py

入力の選択

ベースとなる画像/音声の選択

files/base フォルダから、ファイルを保存するためのベースとなる画像/音声を選択します。

このフォルダに自分自身の画像/音声を追加することもできます。

  • 画像は .png または (.jpg/.jpeg) にできますが、スクリプトの実行時に .png に変換されます。
  • 音声は .mp3 または .wav である必要がありますが、スクリプトの実行時に .mp3 に変換されます。

入力ファイルの選択

files/input フォルダから、画像/音声に保存するファイルを選択します。

このフォルダに自分自身のファイルを追加することもできます。任意の種類のファイルを追加できます。

改変された画像/音声の選択

files/modified フォルダから、ファイルを抽出するための改変された画像/音声を選択します。

このフォルダに自分自身の改変された画像/音声を追加することもできます。

暗号化キーの選択/生成

files/$encryption-keys フォルダからキーを選択するか、そこでキーを生成できます。

キーファイルは .key 拡張子を持つ必要があります。

ファイルを復号化する際に特定のキーを選択する必要はありません。フォルダから自動的に選択されます。

3. 結果

この 17.1MP の画像には、暗号化された 9MB の .zip ファイルとそのファイル名がノイズとして保存されています。

<img src="https://raw.githubusercontent.com/carlospuenteg/file-injector/HEAD/readme-assets/17"1MP_mod.png" width=500>

この 1.7MP の画像には、暗号化された 0.93MB の .zip ファイルとそのファイル名がノイズとして保存されています。

<img src="https://raw.githubusercontent.com/carlospuenteg/file-injector/HEAD/readme-assets/1"7MP_mod.png" width=500>

この 42MB の音声ファイルには、暗号化された 9MB の .zip ファイルとそのファイル名がノイズとして保存されています。

https://user-images.githubusercontent.com/65092569/202014519-24514110-4bd2-4c2b-9307-237964df0c2b.mp4

4. 使用例

インジェクション

root@kitploit:~
... File-Injector % python3 main.py
[0] EXIT
[1] Inject file
[2] Extract file

Option: 1
File to be stored: images.zip
Filename of the base image: 2'2MP
Encrypt the file? (y/n): y

Do you want to use an existing key or generate a new one?
[0] Existing key
[1] New key

Option: 1
Filename of the new key file (blank for default): 
Key generated and saved to files/$encryption-keys/key9.key

Preparing...

Modified bits per channel: 2
Image modification: 1.56%

✅ Storing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [100.0%]

Generating random values...

Storing random values...

Reshaping...

Modified image saved in files/modified-images/2'2MP_mod.png

Done in 7.5892 seconds

抽出

root@kitploit:~
... File-Injector % python3 main.py
[0] EXIT
[1] Inject file
[2] Extract file

Option: 2
Filename of the modified image: 2'2MP_mod

Preparing...

Retrieving filename...

Retrieving input file...
Decrypted with "files/$encryption-keys/key2.key"

Output file saved in files/output-files/images.zip

Done in 1.4083 seconds

5. 設定

config.py ファイルで設定を変更できます。

6. 機能

インジェクションは、画像/音声の配列をフラット化して作成された配列の各要素のX個の下位ビットにファイルを保存することで行われます。

  • 各要素は 8ビット(ベースファイルが画像の場合)または 16ビット(ベースファイルが音声の場合)です。
  • このスクリプトは、ベースの画像/音声と比較した保存するファイルのサイズに応じて、各要素のビットを1つからすべて変更します。
  • より大きなファイルを保存する場合、またはベースの画像/音声が小さい場合、より多くのビットが変更され、変更がより目立ちます。
  • より小さなファイルを保存する場合、またはベースの画像/音声が大きい場合、変更されるビットは少なくなり、変更はあまり目立ちません。
  • ファイルを保存するにはベースの画像/音声が小さすぎる場合、スクリプトは停止して警告します。
  • ファイルの暗号化を選択した場合、そのサイズは約1/3増加します。

7. 仕組み

オプション

オプション説明
[0] EXITスクリプトを終了する
[1] Inject fileinject_file_func() を呼び出す
[2] Extract fileextract_file_func() を呼び出す

inject_file_func()

  1. TEST_MODE == True の場合、事前定義されたベースの画像/音声と入力ファイルを使用します。それ以外の場合は、ベースの画像/音声と入力ファイルを尋ねます。
  2. ファイルを読み取ります(バイト単位)
  3. 画像/音声を読み取り、numpy配列に保存します
  4. ファイル名を読み取ります(バイト単位)
  5. ユーザーがファイルを暗号化したい場合:
    1. get_fernet() でキーを取得します
    2. ファイルとファイル名を暗号化します
  6. inject_file() を使用して、ファイルとファイル名を画像/音声に注入してみます。
    1. ファイルを保存するには画像/音声が小さすぎる場合、エラーを発生させます
    2. それ以外の場合は、改変された画像/音声を返します。
  7. 改変された画像/音声を保存します

extract_file_func()

  1. TEST_MODE == True の場合、事前定義された改変された画像/音声を使用します。それ以外の場合は、改変された画像/音声を尋ねます。
  2. 改変された画像/音声を読み取ります
  3. extract_file() でファイルとファイル名をバイトとして抽出します
  4. ファイルとファイル名が暗号化されている場合(gAAAAA で始まる)、decrypt_content で復号化します
  5. ファイル名を UTF-8 にデコードします
  6. デコードされたファイル名でファイルを保存します

get_fernet()

オプション説明
[0] Existing key既存のキーを使用する
[1] New key新しいキーを生成する

[0] 既存のキー

  1. files/$encryption-keys フォルダから使用するキーを選択します

[1] 新しいキー

  1. 新しいキーのファイル名を選択します(デフォルトを使用する場合は空白のままにします(例:key8.key))
  2. 新しいキーを生成し、選択したファイル名で保存します
  3. 新しいキーを使用して Fernet オブジェクトを返します

decrypt_content()

  1. files/$encryption-keys フォルダ内の各キーについて:
    1. そのキーでファイルとファイル名の復号化を試みます
    2. InvalidToken が発生した場合:
      1. キーが正しくないことを意味します
      2. 他のキーで試します
    3. それ以外の場合は、キーを返します
  2. キーが見つからない場合、例外を発生させます

inject_file()

改変された画像/音声の配列(arr と同じ形状の np.ndarray)を返します

extract_file()

パラメータ型説明
mod_arr_flatnp.ndarrayフラット化された改変された画像/音声

抽出されたファイルとファイル名を含む辞書を返します。両方とも(bytes)形式です

ツールをダウンロード
定数説明デフォルト値
MOD_PREFIX改変された画像/音声に付く接頭辞""
MOD_SUFFIX改変された画像/音声に付く接尾辞"_mod"
STORE_RANDOMデータが保存されている部分とそうでない部分の境界が目立たないように、改変された画像にランダムデータを保存するTrue
TEST_MODEテストモードの有効/無効:事前定義された画像/音声とファイルでテストするTrue
パラメータ型説明
arrnp.ndarraynumpy配列としての画像/音声
filebytesバイトとしてのファイル
filenamebytesバイトとしてのファイル名
store_randomboolean改変された画像/音声にランダムデータを保存するかどうか