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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
debloat — 実行ファイルからブロートを除去するためのGUIおよびCLIツールです。 | Kitploit
ツール/GitHubGitHub/squiblydoo/debloat
リバースエンジニアリングマルウェア分析デジタルフォレンジックバイナリ解析
GitHubsquiblydoo/debloat

debloat

実行ファイルからブロートを除去するためのGUIおよびCLIツールです。

リポジトリを見る
4533723ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

debloat

Debloat

Debloat は、肥大化した実行ファイルから余分なゴミを取り除くための GUI および CLI ツールです。

ここでいう余分なゴミとは、サンドボックスへの投入を防ぐためにバイナリに追加される 100〜800 MB のジャンクバイトを指します。このジャンクの追加手法は、バイナリの「膨張 (inflating)」または「増量 (pumping)」と呼ばれます。Debloat は現在、最も一般的な 10 種類の膨張手法に対応しています。

Python で構築されているため、このアプリケーションは他のワークフローにも簡単に組み込むことができます。現在、debloat は CCCS の AssemblyLine と CERT Polska の MWDB で使用されています。

このプログラムは Windows、MacOS、Linux 向けにコンパイルできます。GUI と CLI のオプションは最小限に抑えられています。可能な限りシンプルにすることを意図しており、プログラム内のロジックがさまざまなユースケースを自動的に処理します。

コンパイル済みバイナリは Releases に同梱されています。

debloat は pip install debloat でインストールできます。CLI を起動するには debloat を、GUI を起動するには debloat-gui を使用します。

上級ユーザー向けに、Debloat は他のスクリプトにインポートして、処理関数を個別に呼び出すこともできます。

GUI の使い方

Debloat の GUI は、可能な限り直感的に使えることを目指しています。 起動したら、肥大化したファイルをテキストバーにドラッグ&ドロップし、「Process file」ボタンを押すだけです。 スクロールするテキストボックスに技術情報が出力され、ブロートが取り除かれたファイルは元のファイルがあったディレクトリに書き込まれます。 簡単に聞こえますか? 実際に簡単です!

ファイルの処理には数秒かかります。
画像

CLI の使い方

pip install debloat でインストールした後、debloat コマンドを使用します。
debloat は 2 つの引数を受け取れます。最初の引数は必須で、ブロートを除去するファイルを指定します。2 つ目の引数は任意で、出力先を指定します。出力先が指定されない場合、元のファイルと同じディレクトリに書き込まれます。

GUI は、debloat-gui コマンドを使用して CLI から起動することもできます。

常に機能しますか?

まだです。 最近の分析によると、debloat は肥大化したファイルから 97.8% の確率でジャンクを除去できます。

以前のバージョンでは、debloat が誤ってバイナリを削除しすぎてしまうことがありました。"--last-ditch" スイッチを使用しない限り、そのようなことはもうありません。このスイッチが必要になった場合は、追加分析のためにサンプルを共有することを検討してください。このオプションは GUI にも追加されました。機能的には、オーバーレイがある場合、そのオーバーレイ全体を削除します。ジャンクのパターンが見つからない場合にこれが必要になることがあります。これは、圧縮があまり効かないサンプルで最もよく見られるケースです。

ユースケース (画像提供: Malcat)

完全対応

  • 署名付き PE の末尾に追加されたブロート。
    下の画像では、ブロートが実行ファイルの末尾に追加されています。
    Screenshot 2023-02-11 at 3 32 36 PM

  • 署名付きまたは署名なしのパック済み実行ファイル。
    下の画像では、パック後にブロートが実行ファイルに追加されています。
    Screenshot 2023-02-11 at 3 44 10 PM

  • 署名付き実行ファイルの PE の .rsrc セクションにブロートが含まれている場合。
    下の画像では、ブロートが .rsrc セクション内にあると特定され、PE から削除されています。
    Screenshot 2023-02-11 at 3 35 21 PM

  • PE セクション内にブロートが追加されているケース。
    下の画像では、ブロートが [0] という名前の PE セクションに含まれています。
    Screenshot 2023-02-11 at 3 26 52 PM

  • 実行ファイルが Nullsoft Scriptable Installer System 実行ファイル (NSIS、別名 Nullsoft) であるケース。 これらの exe は 1 つ以上のファイルを含む可能性のあるインストーラです。含まれるファイルが悪意を持つ場合もあれば、そうでない場合もあります。(攻撃者が単にファイルサイズを大きくするためだけにファイルを追加することもあります。) インストーラ内のすべてのファイルは新しいディレクトリに展開されます。このディレクトリにはインストーラのスクリプトも含まれており、どのファイルが悪意を持つ可能性があるかを判断するために参照できます。 下の画像では、Malcat がこの実行ファイルを NSIS インストーラとして識別しています。 画像

部分対応

  • ジャンクがランダムすぎてエントロピーが高すぎるケース。このような場合、"--last-ditch" と呼ばれるスイッチ/オプション

その他のユースケース

このツールが機能しないユースケースもあります。ただし、詳細を公表する前に、それらを解決する予定です。

なぜ?

肥大化した実行ファイルを簡単に処理できるツールは限られているようです。私が最もよく見かけるのは、ディスクイメージからのバイナリ復元を目的とした「foremost」と「pecheck」の 2 つです。

Foremost は、ジャンクバイトが null (0x00) の場合に最適に機能し、バイナリに偽造または本物の署名がある場合はうまく機能しません。ファイルからブロートを除去する用途は、本来の目的ではありません。

Pecheck は 14 年以上にわたって開発されており、わかりにくいコマンドラインオプションがいくつかあります。ブロートされたコンテンツを除去するオプションは、このスクリプトの主な機能ではありません。署名付き実行ファイルを処理するには、Pecheck を別のツール (disitool) と組み合わせる必要があります。私の経験では、pecheck が混乱して、元の肥大化した実行ファイルの 2 倍のサイズの実行ファイルを返すこともあります。これらすべての要因は、少数のバイナリを処理する場合には問題ないように思えますが、バイナリと手法の数が増えるにつれて、ブロートの除去に特化したツールが必要になります。

Binary Refinery は素晴らしいツールです。これは、コマンドライン版の CyberChef を目指して書かれました。どちらのツールも素晴らしいのですが、どちらにも、ユーザーがどの公式を適用すべきかを知っておく必要があるという欠点があります。

バイナリからブロートを除去する確実な手動方法はありますが、これらの方法は退屈で、すべてのアナリストがこのスキルを持っているわけではありません。このツールは、手動でブロートを除去する方法を知っておく必要があるという負担を取り除きます。さらに、より大規模な処理が可能になります。このスクリプトで使用されている原則により、自動化が望まれる場合には、より大規模な処理が可能になります。

ビルド方法

お使いのプラットフォームに適したビルドコマンドに従ってください。ビルドコマンドの主な違いは、アイコンの形式です。
MacOS
pyinstaller --onefile --noconsole --additional-hooks-dir=./hook --icon=debloat.icns gui.py

Windows
pyinstaller --onefile --noconsole --additional-hooks-dir=./hook --icon=debloat.ico gui.py

Linux
pyinstaller --onefile --noconsole --icon=debloat.ico --collect-all tkinterdnd2 gui.py

ディスカッションしたいですか?

debloat Discord への参加を検討してください。

謝辞

Binary Refinery の作者である Jesko Hüttenhain 氏に大きな敬意を表します。NSIS の抽出は、彼による NSIS ファイル形式のリバースエンジニアリングに基づいています。まだの方は Binary Refinery をチェックしてみてください。

このプロジェクトは次にどこへ向かうのか?

バッチ処理: ディレクトリ内のすべてのファイルを処理し、レポートを生成します。

debloat の外部で処理メソッドを使用するためのサポートの強化。

解凍せずにブロートを除去するためのサポート。

ツールをダウンロード