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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
wtf — 分散型、コードカバレッジガイドのスナップショットベースのファザー。WindowsとLinux上のユーザーモードおよびカーネルモードのターゲット向けで、エミュレータとハイパーバイザーのバックエンドを備えています。 | Kitploit
ツール/GitHubGitHub/0vercl0k/wtf
動的分析 (サンドボックス)脆弱性分析エクスプロイトファジングバイナリ解析
GitHub0vercl0k/wtf

wtf

分散型、コードカバレッジガイドのスナップショットベースのファザー。WindowsとLinux上のユーザーモードおよびカーネルモードのターゲット向けで、エミュレータとハイパーバイザーのバックエンドを備えています。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

what the fuzz

分散型、コードカバレッジガイド、クロスプラットフォームのスナップショットベースファザー。Microsoft Windows 上のユーザーモードまたはカーネルモードターゲット、および Linux ユーザーモード(実験的!)を攻撃するために設計されています。

概要

what the fuzz(略称 wtf)は、分散型、コードカバレッジガイド、カスタマイズ可能、クロスプラットフォームのスナップショットベースファザーで、Microsoft Windows または Linux(実験的、linux_mode 参照)上のユーザーモードまたはカーネルモードターゲットを攻撃するために設計されています。ターゲットの実行は、エミュレータ内で bochscpu を使用する(最も遅いが最も正確)、Windows VM 内で Windows Hypervisor Platform APIs を使用する、または Linux VM 内で KVM APIs を使用する(最速)ことができます。

このファザーは、IDA Pro、人気の AAA ゲーム、Windows カーネル、Microsoft RDP クライアント、NVIDIA GPU Display ドライバ など、幅広いソフトウェアでメモリ破壊の脆弱性を発見しました。

コンパイル済みバイナリは、CI アーティファクト または リリース セクションから Windows と Linux の両方で入手できます。

その歴史や実際のターゲットでの使用方法について詳しく知りたい場合は、以下の記事を読むことをお勧めします 🔥

  • Building a new snapshot fuzzer & fuzzing IDA
  • Fuzzing Modern UDP Game Protocols With Snapshot-based Fuzzers by Markus Gaasedelen
  • Fuzzing RDPEGFX with "what the fuzz" by Colas Le Guernic、Jérémy Rubert、および Anonymous
  • A Journey to Network Protocol Fuzzing – Dissecting Microsoft IMAP Client Protocol by Wayne Chin Yick Low
  • Snapshot Fuzzing のセクション(Trail Of Bits' Testing Handbook 内)
  • Attacking EDRs Part 4: Fuzzing Defender's Scanning and Emulation Engine (mpengine.dll) by Manuel Feifel

使用方法

機能を試す最良の方法は、fuzzer_hevd / fuzzer_tlv_server モジュールを使用することです。target-hevd.7z / target-tlv_server.7z アーカイブをダウンロードし、targets/ ディレクトリに展開します。アーカイブには、すべてのターゲットに必要なディレクトリツリーが含まれています。

  • inputs は、入力テストケースを配置するフォルダです。
  • outputs は、現在の minset ファイルが保存されるフォルダです。
  • coverage は、.cov ファイルが置かれることが期待されるフォルダです。
  • crashes は、クラッシュが保存される場所です。
  • state は、メモリダンプ(mem.dmp)、CPU 状態(regs.json)、およびシンボルストア(symbol-store.json)が保存されるフォルダです。シンボルストアは、Windows でターゲットを実行するたびに wtf がランタイムに生成するシンプルな JSON ファイルです。このファイルは、シンボル / dbgeng をサポートしない Linux システム上でブレークポイントを設定する場所を知るために使用されます。

以下は、最新リリースに添付された target-hevd.7z ファイルをダウンロードし、wtf のクローンの targets ディレクトリに展開したことを前提としています。wtf/targets/hevd に inputs、outputs などのディレクトリがあるはずです。

サーバーノードの起動

サーバーは基本的に頭脳であり、すべての状態(集約されたコードカバレッジ、コーパス)を追跡し、テストケースを生成してクライアントに配布します。

ローカルサーバーノードを起動する方法は次のとおりです。```text wtf.exe master --name hevd --max_len=1028 --runs=10000000

`max_len` オプションは生成されるテストケースのサイズを制限するために使用されます。`runs` は生成するテストケースの数、`address` は **wtf** の待ち受け先を指定し、`target` は前述のディレクトリツリーを持つディレクトリです(ユーザーは `--input` / `--output` / `--crashes` でこれらのディレクトリを上書きすることもできます)。`name` はファジングモジュール名を指定し、マスターが定義済みのジェネレーター関数を呼び出せるようにします。

<p align='center'>
<img src="https://assets.kitploit.com/production/public/readmes/4699/4a03fc75eed3ed5a92f7f10def697dbf220ae36b0701f05b37759eb432fc0fd9.webp">
</p>

### ファジングノード

クライアントノードはサーバーによって生成・配布されたテストケースを実行し、結果(コードカバレッジ、結果など)をサーバーに返します。

以下は、*bochscpu* バックエンドを使用するクライアントノードを起動する方法です。```text
wtf.exe fuzz --name hevd --limit 10000000

fuzz サブコマンドは、name オプションと共に使用してどのファザーモジュールを使用するかを指定し、backend は実行バックエンドを指定し、limit はテストケースごとに実行する命令の最大回数を制限します(バックエンドによって、このオプションの意味は異なります)。

テストケースの実行

テストケース(またはテストケースが入ったフォルダ)を実行したい場合は、run サブコマンドを使用できます。

crash-0xfffff764b91c0000-0x0-0xffffbf84fb10e780-0x2-0x0 テストケースを実行する方法は次のとおりです:``` wtf.exe run --name hevd --limit 10000000 --input crashes\crash-0xfffff764b91c0000-0x0-0xffffbf84fb10e780-0x2-0x0

<p align='center'>
<img src="https://assets.kitploit.com/production/public/readmes/4699/49b3ca8582d6314724e5615c687472499d5f8f41d04c9543c0a6a070c51f56f8.webp">
</p>

### コーパスのMinset

コーパスをMinsetするには、ファジングジョブと同様に、サーバーノードと必要な数のクライアントノードを使用する必要があります。`runs`オプションを0に設定するだけです。

これは、`outputs`内のコーパスを`minset`ディレクトリにMinsetする方法です(`inputs`ディレクトリと`outputs`ディレクトリを上書きする方法も示しています)。```
wtf.exe master --name hevd --max_len=1028 --runs=0 --inputs=outputs --outputs=minset

実行トレースの生成

実行バックエンド内で内部調査を行う主なメカニズムは、実行トレースを生成することです。bochscpu はそれを実行する最速のバックエンドです。なぜなら、他のバックエンドではVMXモードを終了するのに非常にコストがかかるからです。

次のようにして、crash-0xfffff764b91c0000-0x0-0xffffbf84fb10e780-0x2-0x0 テストケースの実行トレースを生成します:

cd runners/trace
python -m pandora -t samples -tt trace -bp bochscpu x64 -nt 4 -m 512 -tl 10000000 crash-0xfffff764b91c0000-0x0-0xffffbf84fb10e780-0x2-0x0

wtf.exe run --name hevd --limit 10000000 --input crashes\crash-0xfffff764b91c0000-0x0-0xffffbf84fb10e780-0x2-0x0 --trace-type=rip

<p align='center'>
<img src="https://assets.kitploit.com/production/public/readmes/4699/340b4b251e378eaf21c6f5ffdd4f013bd2cef89f23a604cffd0ebf897d27c71f.webp">
</p>

実行トレースをシンボル化するには、[symbolizer-rs](https://github.com/0vercl0k/symbolizer-rs) を使用してください。以下は、上記で生成された `crash-0xfffff764b91c0000-0x0-0xffffbf84fb10e780-0x2-0x0.trace` 実行トレースをシンボル化する方法です:```
symbolizer-rs.exe --trace crash-0xfffff764b91c0000-0x0-0xffffbf84fb10e780-0x2-0x0.rip.trace

Tenetトレースの生成

より多くのコンテキスト認識が必要だと感じた場合、bochscpu バックエンドを使用すると、Tenet トレースエクスプローラーに読み込める実行トレースを生成できます。以下では、memmove 内のクラッシュから開始し、ソースポインタがどこから来ているのかを(ユーザーモード!)遡って調べています:``` wtf.exe run --name hevd --limit 10000000 --input crashes\crash-0xfffff764b91c0000-0x0-0xffffbf84fb10e780-0x2-0x0 --trace-type=tenet

<p align='center'>
<img src="https://assets.kitploit.com/production/public/readmes/4699/34df2f5ca8f378db664d3f01bcbefdd43409e300d256d50e3f4f630eb06cc7be.webp">
</p>

### コードカバレッジトレースの生成

コードカバレッジトレースを生成するには、単に`run`サブコマンドを`--trace-type=cov`オプションとともに使用します。

これは、`minset`フォルダ内のすべてのファイルのコードカバレッジトレースを生成し、`coverage-traces`フォルダに保存する方法です:```
wtf.exe run --name hevd --input minset --trace-path=coverage-traces --trace-type=cov

ツールをダウンロード