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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/umpolungfish/byvalver
エクスプロイトシェルコードマルウェア分析ペネトレーションテストバイナリ解析機械学習レッドチーミングシェルコード生成ペイロード開発
GitHubumpolungfish/byvalver

byvalver

シェルコードのバッドバイトを排除し、機能を維持したクリーンなシェルコードを返します。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

byvalver (·𐑚𐑲𐑝𐑨𐑤𐑝𐑼)

シェルコードのバッドバイト追放者

byvalver banishes bad-bytes with extreme prejudice
C++ SHELLCODE SCRUBBING CROSS-PLATFORM ARCHITECTURES BUILD CLEAN GitHub stars GitHub forks SPONSOR ON gitHub SUPPORT ON ko-fi

概要 • クイックスタート • インタラクティブTUI • ターゲット指定のバッドバイト除去 • バッドバイトプロファイル • 機能 • アーキテクチャ • システム要件 • 依存関係 • ビルド • インストール • 使い方 • 難読化戦略 • ヌル除去戦略 • MLトレーニング • エージェント メナジェリー • 開発 • トラブルシューティング • ライセンス


目次

  • 概要
  • クイックスタート
    • インストール
    • 基本的な使い方
    • 検証
    • クロスアーキテクチャ対応
    • バッチ処理
  • インタラクティブTUI
  • ターゲット指定のバッドバイト追放
  • バッドバイトプロファイル
  • 機能
    • 高度な変換エンジン
    • パフォーマンス指標
    • 難読化レイヤー
    • MLを活用した戦略選択
    • 出力オプション
    • 検証スイート
  • アーキテクチャ
  • システム要件
  • 依存関係
  • ビルド
  • インストール
  • 使い方
  • 難読化戦略
  • ヌル除去戦略
  • MLトレーニングと検証
  • エージェント メナジェリー
  • 開発
  • ドキュメント
  • トラブルシューティング
  • ライセンス

概要

byvalver は、C で構築されたCLIツールで、x86/x64/ARM/ARM64 シェルコードから bad-bytes を完全な機能等価性を維持しながら自動的に除去(「追放」)します。

v4.0 の新機能: クロスアーキテクチャ対応

  • --arch フラグによる Capstone モードの自動選択

v4.0.1 バグ修正:

  • ARM SUB 命令エンコーディングを修正(I=1 ビットで正しいオペコード 0x2)
  • ARM64 戦略のパススルー戦略に対する can_handle ロジックを修正
  • ARM/ARM64 アーキテクチャ選択時に実験的警告を追加
  • アーキテクチャ不一致検出ヒューリスティックを追加
  • コード構成を改善(インクルードをファイルスコープに移動)

v4.2 の新機能: x64 サポートの強化

  • x86/x64 戦略互換レイヤー: 128 以上の x86 戦略が x64 シェルコードで動作するようになりました
  • 新しい x64 専用戦略ファイル 5 件: MOVABS、SBB、TEST、SSE メモリ、LEA Displacement
  • 拡張レジスタエンコーディング: 正しい REX プレフィックス処理による R8-R15 の完全サポート
  • REX プレフィックスユーティリティ: is_64bit_register()、is_extended_register()、build_rex_prefix()
  • x64 専用シェルコードサンプルでの 100% の失敗率を解消

このツールは Capstone 逆アセンブルフレームワークを使用して命令を解析し、ランク付けされた 175 以上の変換戦略を適用して、bad-byte を含むコードを同等の代替コードに置き換えます。

汎用 bad-byte 追放フレームワークは、2 種類の使用モードを提供します:

  1. 直接指定: --bad-bytes オプションで、追放する任意のバイトを指定できます(例: 改行セーフなシェルコード用に --bad-bytes "00,0a,0d")
  2. プロファイルベース: --profile オプションは、一般的なエクスプロイトシナリオ向けの事前設定済みバッドバイトセットを使用します(例: --profile http-newline、--profile sql-injection、--profile alphanumeric-only)

Windows、Linux、macOS に対応

コア技術:

  • 効率性と低レベル制御のための純粋な C 実装
  • 正確な逆アセンブリのための Capstone
  • デコーダスタブ生成のための NASM
  • 拡張可能な変換のためのモジュール式戦略パターン(153 以上の戦略実装)
  • インテリジェントな戦略選択のためのニューラルネットワーク統合
  • 二相処理: 難読化の後にヌル除去を実行

[!NOTE] ヌルバイト除去(--bad-bytes "00" またはデフォルト): 十分にテスト済み / 汎用バッドバイト除去(--bad-bytes "00,0a,0d" など): 実装されたばかり

バッドバイト追放の動作

バッドバイト追放の動作

クイックスタート

数分で byvalver を使い始めましょう:

インストール

オプション 1: GitHub から(推奨)```bash curl -sSL https://raw.githubusercontent.com/umpolungfish/byvalver/main/install.sh | bash

root@kitploit:~
**オプション 2: ソースからビルド**```bash
git clone https://github.com/umpolungfish/byvalver.git
cd byvalver
make
sudo make install
sudo make install-man  # Install man page

基本的な使い方

banish NULL BYTES (デフォルト):```bash byvalver input.bin output.bin

root@kitploit:~
**バッドバイトプロファイルの使用:**```bash
# HTTP contexts (removes null, newline, carriage return)
byvalver --profile http-newline input.bin output.bin

# SQL injection contexts
byvalver --profile sql-injection input.bin output.bin

# Alphanumeric-only shellcode (most restrictive)
byvalver --profile alphanumeric-only input.bin output.bin

手動バッドバイト指定:```bash

banish null bytes and newlines

byvalver --bad-bytes "00,0a,0d" input.bin output.bin

root@kitploit:~
**高度な機能:**```bash
# Add obfuscation layer before denullification
byvalver --biphasic input.bin output.bin

# Enable ML-powered strategy selection
byvalver --ml input.bin output.bin

# Generate XOR-encoded shellcode with decoder stub
byvalver --xor-encode DEADBEEF input.bin output.bin

# Output in different formats
byvalver --format c input.bin output.c      # C array
byvalver --format python input.bin output.py # Python bytes
byvalver --format hexstring input.bin output.hex # Hex string

検証

変換したシェルコードは必ず検証してください:```bash

Check for remaining bad bytes

python3 verify_denulled.py --bad-bytes "00,0a,0d" output.bin

Verify functional equivalence

python3 verify_functionality.py input.bin output.bin

root@kitploit:~
### クロスアーキテクチャ対応

`byvalver` は `--arch` フラグにより複数のアーキテクチャをサポートしています:

**x86(32ビット Intel/AMD)** - 150以上の戦略で完全サポート```bash
byvalver --arch x86 --bad-bytes "00" x86_shellcode.bin output.bin

x64 (64-bit Intel/AMD) - 完全サポート (デフォルト)```bash byvalver --arch x64 --bad-bytes "00,0a,0d" x64_shellcode.bin output.bin

root@kitploit:~
**ARM (32-bit)** - 基本的な戦略による実験的サポート```bash
byvalver --arch arm --bad-bytes "00" arm_shellcode.bin output.bin

ARM64 (AArch64) - 基本的な戦略を備えた実験的サポート```bash byvalver --arch arm64 --bad-bytes "00,0a" arm64_shellcode.bin output.bin

root@kitploit:~
**注記:**
- ARM/ARM64 サポートはコア命令(MOV、算術演算、ロード/ストア)に重点を置いています
- ARM にはよりシンプルな bad-byte プロファイルを使用してください(例:ヌルバイトのみ)
- ARM/ARM64 を選択した場合、実験的警告が表示されます
- 基本的なアーキテクチャ不一致検出により、シェルコードが誤ったアーキテクチャであると思われる場合に警告します
- 自動アーキテクチャ検出は将来のリリースで計画されています

### バッチ処理

ディレクトリ全体を処理します:```bash
# Process all .bin files recursively
byvalver -r --pattern "*.bin" input_dir/ output_dir/

# Apply HTTP profile to all shellcode in directory
byvalver -r --profile http-newline input_dir/ output_dir/

対話型TUI

TUIメインメニュー

TUIバッチ処理

byvalver には 対話型TUI(テキストユーザーインターフェース)が含まれており、CLIと1:1の機能互換性 があります。

TUIは、すべての bad-byte 排除操作に対して直感的で視覚的なインターフェースを提供します。以下を含みます:

  • ライブ統計付きバッチ処理
  • ML設定 &
  • 包括的なファイルブラウザ

--menu フラグを指定してTUIを起動します:```bash byvalver --menu

root@kitploit:~
### MAIN FEATURES:

TUI は、CLI の全機能を網羅する 9x のメインメニューオプションを提供します:

1. **Process Single File** - 視覚的なフィードバック付きで個々の shellcode ファイルを処理します
2. **Batch Process Directory** - ライブ進行状況の追跡でディレクトリ全体を処理します
3. **Configure Processing Options** - biphasic モード、PIC 生成、ML、verbose、dry-run を切り替えます
4. **Set Bad Bytes** - 手動入力、または 13 種類の定義済みプロファイルから選択します
5. **Output Format Settings** - 5 つの出力形式(raw、C、Python、PowerShell、hexstring)から選択します
6. **ML Metrics Configuration** - ML 戦略の選択とメトリクスの追跡を設定します
7. **Advanced Options** - XOR エンコーディング、タイムアウト、制限、検証設定
8. **Load/Save Configuration** - INI スタイルの設定ファイル管理
9. **About byvalver** - バージョンとヘルプ情報

### VISUAL FILE BROWSER:

- **Directory navigation** は、矢印キーまたは vi スタイルの j/k キーを使用します
- **File/directory distinction** は [FILE] と [DIR] インジケーターで表示します
- **File size display** は人間が読みやすい形式(B、KB、MB、GB)で表示します
- **Extension filtering**(例: *.bin)
- **Intelligent path handling** - ファイルパスが指定された場合は自動的に親ディレクトリへ移動します
- **Sorted display** - ディレクトリを先頭に、その後にアルファベット順
- **Multiple selection modes**:
  - ファイル選択モード: ディレクトリ内を移動し、ファイルのみを選択
  - ディレクトリ選択モード: バッチ処理用のディレクトリを選択
  - 両方モード: ファイルまたはディレクトリのいずれかを選択

### BATCH PROCESSING WITH LIVE UPDATES:

バッチ処理画面は **リアルタイムフィードバック** を提供します:

- **Progress bar** 処理済みファイルを表示(例: `[==============        ] 52/100 files`)
- **Configuration display** アクティブな設定を表示:
  - 使用した bad bytes の数とプロファイル
  - 処理オプション(`Biphasic`、`PIC`、`XOR`、ML)
  - 出力形式
- **Live file statistics** 色分けされたステータス付き:
  - 完了: X / Y(試行ファイル数 / 合計)
  - ✅ 成功(GREEN)- 残りの bad bytes がゼロ
  - ❌ 失敗(RED)- エラーまたは残りの bad bytes
  - 成功率(パーセント)
- **Current file display** 太字テキストで表示
- **Next file preview** 黄色/暗いテキストで表示
- **Dynamic strategy statistics table** 以下を表示:
  - **All active strategies**(10 戦略の制限なし)
  - **Full strategy names**(最大 50 文字、切り詰めなし)
  - 戦略ごとの成功/失敗数
  - 成功率パーセンテージ
  - パフォーマンスによる色分け(緑 ≥80%、黄 50-79%、赤 <50%)
  - 50ms ごとにリアルタイム更新

### CONFIGURATION MANAGEMENT:

**INI スタイル形式** で設定をロードおよび保存します:```ini
[general]
verbose = 0
quiet = 0
show_stats = 1

[processing]
use_biphasic = 0
use_pic_generation = 0
encode_shellcode = 0
xor_key = 0xDEADBEEF

[output]
output_format = raw

[bad_bytes]
bad_bytes = 00

[ml]
use_ml_strategist = 0
metrics_enabled = 0

[batch]
file_pattern = *.bin
recursive = 0
preserve_structure = 1

完全な設定テンプレートについては、example.conf を参照してください。

バッドバイト設定:

2つの入力方法が利用可能:

  1. MANUAL ENTRY - カンマ区切りの16進数値(例: 00,0a,0d)
  2. PREDEFINED PROFILES - 一般的なシナリオ向けの13プロファイル:
    • null-only, http-newline, http-whitespace
    • url-safe, sql-injection, xml-html
    • json-string, format-string, buffer-overflow
    • command-injection, ldap-injection
    • printable-only, alphanumeric-only

ナビゲーション:

  • 矢印キー (↑↓) または j/k (viスタイル): メニューオプション間を移動
  • Enter: ハイライトされたオプションを選択
  • q: アプリケーションを終了するか、操作をキャンセル
  • 0-9: 番号でメニューオプションをすばやく選択
  • Space: 現在のディレクトリを選択(ファイルブラウザのディレクトリモード時)

必要条件:

対話モードでは、システムに ncurses ライブラリがインストールされている必要があります:```bash

Ubuntu/Debian

sudo apt install libncurses-dev

CentOS/RHEL/Fedora

sudo dnf install ncurses-devel

macOS (with Homebrew)

brew install ncurses

root@kitploit:~
The application will automatically detect if ncurses is available and enable TUI support accordingly.

### BUILD OPTIONS:

The TUI support is conditionally compiled based on ncurses availability:

- Default build: `make` - Includes TUI if ncurses is available
- Force TUI build: `make with-tui` - Builds with TUI support (fails if ncurses not available)
- Exclude TUI: `make no-tui` - Builds without TUI support for smaller binary

### EXAMPLE WORKFLOWS:

**SINGLE FILE PROCESSING:**
1. Launch TUI: `byvalver --menu`
2. Select "1. Process Single File"
3. Browse for input file using visual file browser
4. Browse for output file location
5. Start processing and view results

**BATCH PROCESSING:**
1. Launch TUI: `byvalver --menu`
2. Select "2. Batch Process Directory"
3. Browse for input directory containing shellcode files
4. Browse for output directory
5. Configure file pattern (default: <file>.bin) and recursive option
6. Start batch processing and watch live progress with strategy statistics

**CONFIGURATION MANAGEMENT:**
1. Configure all options in the TUI (bad bytes, output format, ML, etc.)
2. Select "8. Load/Save Configuration"
3. Save current configuration to a file (e.g., `my_config.conf`)
4. Later: Load the configuration file to restore all settings

### PERFORMANCE NOTES:

- **Single file processing**: Instant visual feedback, <1 second for typical shellcode
- **Batch processing**: 50ms delay between files for visual updates
- **Large directories (100+ files)**: Scanning may take 1-2 seconds
- **Strategy initialization**: 2-5 seconds on first run (one-time cost per session)

### TERMINAL COMPATIBILITY:

The TUI has been tested with:
- GNOME Terminal
- Konsole
- xterm
- iTerm2 (macOS)
- Windows Terminal (WSL)
- tmux/screen (works but may have color limitations)

**Minimum recommended terminal size**: 80x24 characters (100x30 or larger recommended for full strategy table during batch processing)

For complete TUI documentation, troubleshooting, and advanced usage, see [TUI_README.md](https://github.com/umpolungfish/byvalver/blob/main/TUI_README.md).

## TARGETED BAD-BYTE BANISHMENT

### OVERVIEW

The `--bad-bytes` option allows you to specify any set of bytes to banish from your shellcode.

### IMPLEMENTATION DETAILS

`byvalver` operates by:
1. Parsing the comma-separated hex byte list (e.g., `"00,0a,0d"`)
2. Using an O(1) bitmap lookup to identify bad bytes in instructions
3. Applying the same 153+ transformation strategies used for null-byte elimination
4. Verifying that the output does not contain the specified bad bytes

### EXPECTED BEHAVIOR

- **Null bytes only** (`--bad-bytes "00"` or default): High success rate (100% on test corpus)
- **Multiple bad bytes** (`--bad-bytes "00,0a,0d"`): Success rate may vary significantly depending on:
  - Which specific bytes are marked as bad
  - Complexity of the input shellcode
  - Frequency of bad bytes in the original shellcode
  - Whether effective alternative encodings exist for the specific bad byte set

### RECOMMENDATIONS

1. **For production use:** Stick with default null-byte banishment mode
2. **For experimentation:** Test the `--bad-bytes` feature with your specific use case and validate the output
3. **Always verify:** Use `verify_denulled.py --bad-bytes "XX,YY"` to confirm all bad bytes were eliminated
4. **Expect variability:** Some shellcode may not be fully cleanable with certain bad byte sets

### FUTURE IMPROVEMENTS

The generic bad-byte feature provides a foundation for:
- Strategy optimization for specific bad byte patterns
- Automated discovery of new strategies targeting common bad byte combinations
- ML model retraining with diverse bad byte training data
- Extended testing and validation

> [!CAUTION]
> Using `--bad-bytes` with multiple bad bytes significantly increases the complexity of the transformation task. Some shellcode may become impossible to transform if too many bytes are marked as bad, as the tool may run out of alternative encodings. Start with small bad byte sets (e.g., `"00,0a"`) and expand gradually while testing the output. Always verify the result with `verify_denulled.py` before deployment.

## BAD-BYTE PROFILES

### OVERVIEW

Users can also choose **bad-byte profiles** - pre-configured sets of bytes for common exploit scenarios. Instead of manually specifying hex values, use profile names that match your context.

### AVAILABLE PROFILES

| プロファイル | 難易度 | バッドバイト数 | ユースケース |
|---------|-----------|-----------|----------|
| `null-only` | ░░░░░ 初歩 | 1 | 古典的なバッファオーバーフロー(デフォルト) |
| `http-newline` | █░░░░ 低 | 3 | `HTTP` ヘッダー、行ベースのプロトコル |
| `http-whitespace` | █░░░░ 低 | 5 | `HTTP` パラメータ、コマンドインジェクション |
| `url-safe` | ███░░ 中 | 23 | `URL` パラメータ、`GET` リクエスト |
| `sql-injection` | ███░░ 中 | 5 | `SQL` インジェクションコンテキスト |
| `xml-html` | ███░░ 中 | 6 | `XML`/`HTML` インジェクション、`XSS` |
| `json-string` | ███░░ 中 | 34 | `JSON` APIインジェクション |
| `format-string` | ███░░ 中 | 3 | フォーマット文字列の脆弱性 |
| `buffer-overflow` | ███░░ 中 | 5 | フィルタリング付きのスタック/ヒープオーバーフロー |
| `command-injection` | ███░░ 中 | 20 | シェルコマンドインジェクション |
| `ldap-injection` | ███░░ 中 | 5 | `LDAP` クエリ |
| `printable-only` | ████░ 高 | 161 | テキストベースのプロトコル(印刷可能なASCIIのみ) |
| `alphanumeric-only` | █████ 極限 | 194 | 英数字のみのシェルコード(0-9, A-Z, a-z) |

### USAGE```bash
# List all available profiles
byvalver --list-profiles

# Use a specific profile
byvalver --profile http-newline input.bin output.bin

# Combine with other options
byvalver --profile sql-injection --biphasic --format c input.bin output.c

プロファイル例

HTTP コンテキスト (NULL、LF、CR を除去):```bash byvalver --profile http-newline payload.bin http_safe.bin

root@kitploit:~
**SQLインジェクション** (NULL、引用符、セミコロンを排除):```bash
byvalver --profile sql-injection payload.bin sql_safe.bin

英数字のみ(最高難易度 - 0-9、A-Z、a-zのみ許可):```bash byvalver --profile alphanumeric-only payload.bin alphanum.bin

root@kitploit:~
詳細なプロファイルのドキュメントについては、[docs/BAD_BYTE_PROFILES.md](https://github.com/umpolungfish/byvalver/blob/main/docs/BAD_BYTE_PROFILES.md) を参照してください。


## 機能

### 高いNULLバイト除去成功率
<div align="center">
  <strong>一般的かつ複雑なNULLバイト発生源を代表する多様なテストコーパスにおいて、100%のNULLバイト除去を達成しました。</strong>
</div>

> この成功率は、特にNULLバイト(`\x00`)の除去に適用されるものであり、広範囲にわたってテストおよび最適化されています。

### 高度な変換エンジン
170以上のストラテジ実装により、ほぼすべての一般的なNULLバイト発生源と一般的なbadバイトパターンをカバーしています(v3.0、v3.6、v3.7、v3.8、v4.0、v4.1で追加された新しいストラテジファミリーも多数含む):
- `CALL/POP` およびスタックベースの即値ロード
- ハッシュ化API解決を伴う `PEB` トラバーサル
- 複雑なアルゴリズムを用いた高度なハッシュベースAPI解決
- 複数DLLロードのためのマルチステージ `PEB` トラバーサル
- `SALC`、`XCHG`、およびフラグベースのゼロ化
- 算術代替のための `LEA`
- シフトおよび算術による値の構築
- マルチ `PUSH` による文字列構築
- Windows構造体のためのスタックベースの構造体構築
- 高度なパターンによるスタックベースの文字列構築
- `SIB` と変位の書き換え
- 条件付きジャンプ変位の処理
- レジスタの再マッピングとチェーン化
- バッファ初期化のための拡張 `SALC`+`REP STOSB`
- 高度な文字列操作変換
- アトミック操作エンコードチェーン
- `FPU` スタックベースの即値エンコード
- `XLAT` テーブルベースのバイト変換
- `LAHF`/`SAHF` フラグ保存チェーン
- **v3.6の新機能**: `BCD` 算術難読化(`AAM`/`AAD`)
- **v3.6の新機能**: `ENTER`/`LEAVE` スタックフレームの代替
- **v3.6の新機能**: 定数生成のための `POPCNT`/`LZCNT`/`TZCNT` ビットカウント
- **v3.6の新機能**: `SIMD` `XMM` レジスタへの即値ロード
- **v3.6の新機能**: `JECXZ`/`JRCXZ` ゼロテストジャンプ変換
- **v3.7の新機能**: 条件付きジャンプオペコードのbadバイト除去(JE/JNE/JG/JL のbadオペコード)
- **v3.7の新機能**: レジスタ間転送のbadバイトオペコード(MOV/XCHG の代替)
- **v3.7の新機能**: スタックフレームポインタのbadバイト除去(PUSH/POP EBP の代替)
- **v3.7の新機能**: ModR/M および SIB バイトのbadバイト除去(代替レジスタ組み合わせ)
- **v3.7の新機能**: マルチバイト即値の部分badバイト(ローテーション最適化)
- **v3.7の新機能**: ビット演算即値のbadバイト(AND/OR/XOR/TEST とレジスタ)
- **v3.7の新機能**: 1バイトオペコード置換(INC/DEC/PUSH/POP の代替)
- **v3.7の新機能**: 文字列命令プレフィックスのbadバイト(REPプレフィックスをループに変換)
- **v3.7の新機能**: オペランドサイズプレフィックスのbadバイト(16ビットから32ビットへの変換)
- **v3.7の新機能**: セグメントレジスタのbadバイト検出(FS/GSプレフィックス検出)
- **v3.8の新機能**: プロファイル対応SIB生成システム(ハードコードされた0x20 SIBバイトを排除)
- **v3.8の新機能**: 条件付きジャンプ処理と部分レジスタ最適化の重大な修正
 - **v3.9の新機能**: 複数のNOP等価命令を用いたポリモーフィックNOP挿入
 - **v3.9の新機能**: 即値難読化のための定数展開
 - **v3.9の新機能**: XCHGパターンを用いたレジスタ改名難読化
 - **v3.9の新機能**: 算術演算のためのスタックスピル難読化
 - **v3.9の新機能**: NOP挿入を伴う命令並べ替え
 - **v3.9の新機能**: ランタイム自己改変ストラテジ(基本実装)
 - **v3.9の新機能**: 重複命令生成
  - **v4.0の新機能**: Capstone動的モード選択によるARM/ARM64クロスアーキテクチャ対応
  - **v4.0の新機能**: MVN変換を用いたARM即値エンコード
  - **v4.0の新機能**: ARM MOVストラテジ(オリジナル、MVNベースのNULL回避)
  - **v4.0の新機能**: ARM算術ストラテジ(SUB変換を伴うADD)
  - **v4.0の新機能**: ARMメモリストラテジ(LDR/STR パススルー)
  - **v4.0の新機能**: ARM分岐ストラテジ(B/BL パススルー)
  - **v4.1の新機能**: SETccフラグ累積チェーン(条件付きジャンプ除去)
  - **v4.1の新機能**: ポリモーフィック即値構築(複数のエンコードバリアント)
  - **v4.1の新機能**: レジスタ依存チェーン最適化(複数命令パターン)
  - **v4.1の新機能**: RIP相対アドレッシング最適化(x64 PIC改善)
  - **v4.1の新機能**: 負の変位メモリアドレッシング(変位の代替)
  - **v4.1の新機能**: マルチバイトNOPインターリース(難読化NOPバリアント)
  - **v4.1の新機能**: ビット操作定数構築(BSWAP、BSF、POPCNT、BMI2)
  - **v4.2の新機能**: x86/x64ストラテジ互換レイヤー(128以上のx86ストラテジをx64で有効化)
  - **v4.2の新機能**: MOVABS 64ビット即値ストラテジ(REX.W MOV と XOR/ADD 構築の組み合わせ)
  - **v4.2の新機能**: SBB即値ゼロストラテジ(SBB AL/AX/EAX, 0 変換)
  - **v4.2の新機能**: TEST 大型即値ストラテジ(TEST EAX/RAX, imm32 とレジスタオペランド)
  - **v4.2の新機能**: SSEメモリ操作ストラテジ(MOVUPS/MOVAPS/MOVDQU/MOVDQA のNULL除去)
  - **v4.2の新機能**: LEA x64変位ストラテジ(REXプレフィックスによる大きな変位の処理)
  - **v4.2の新機能**: 拡張レジスタサポート(R8-R15レジスタエンコードユーティリティ)
- `MOV`、`ADD/SUB`、`XOR`、`LEA`、`CMP`、`PUSH` などを包括的にサポート

エンジンはマルチパス処理(難読化 → ヌルバイト除去)を採用し、エッジケースに備えた堅牢なフォールバックメカニズムを備えています。

**v3.8 重大な改善**: http-whitespaceプロファイル向けマルチストラテジ修正
- **問題**: ハードコードされたbadバイトにより79.1%の失敗率(158ファイル中125ファイルが失敗)
- **特定された根本原因**:
  - 15のストラテジファイルにわたって、ハードコードされたSIBバイト 0x20(SPACE)が45以上
  - 条件付きジャンプのコアロジックが、検証なしにbadバイトスキップオフセットを使用
  - 部分レジスタ最適化がbadバイトを直接書き込む
  - 優先度HIGHの5つのストラテジファイルに追加のハードコードされたbadバイト
- **実装された解決策**:
  - 3層フォールバック(STANDARD → DISP8 → PUSHPOP)を備えた集中型プロファイル対応SIB生成
  - badバイトを回避するための条件付きジャンプスキップオフセットへの動的NOPパディング
  - 分解を用いた部分レジスタ値のインテリジェントなバイト構築
  - ハードコードされたバイトをプロファイル対応の代替手段へ系統的に置換
- **影響**: **79.1%の失敗 → 35.4%の失敗**(成功率: **20.9% → 64.6%**)
- **修正されたファイル**: 102ファイルが正常に処理可能に(+69ファイル、3.09倍の改善)
- **ストラテジ成功率**:
  - 部分レジスタ最適化: 25% → **100%**(12/12変換)
  - mov_mem_disp_enhanced: 0% → **98.5%**(1605/1629変換)
  - indirect_call_mem: 0% → **98.5%**(135/137変換)
  - indirect_jmp_mem: 0% → **98.5%**(134/136変換)
- **パフォーマンス**: インテリジェントキャッシュによるオーバーヘッドゼロ、平均サイズ増加率2%未満

### パフォーマンス指標

184個の多様なシェルコードサンプルを処理した実世界のパフォーマンスデータ:```
📊 Batch Processing Statistics:

Success Rate:            184/184             █████████████████████████   100.00%
Files Processed:         184                 █████████████████████████   100.00%
Failed:                  0                   ░░░░░░░░░░░░░░░░░░░░░░░░░   00.00%
Skipped:                 0                   ░░░░░░░░░░░░░░░░░░░░░░░░░   00.00%

入力チャンクが空のため、翻訳する内容がありません。``` 🧠 ML Strategy Selection Performance:

Processing Speed: Instructions/sec: 19.5 inst/sec ████████████░░░░░░░░░░░░░ Total Instructions: 20,760 Session Duration: 1,067 seconds

Null-Byte Elimination: Eliminated: 18,636/20,760 ██████████████████████░░░ 89.77% Strategies Applied: 20,129 Success Rate: 92.57% ███████████████████████░░ 92.57%

Learning Progress: Positive Feedback: 18,636 ███████████████████████░░ 92.57% Negative Feedback: 1,493 █░░░░░░░░░░░░░░░░░░░░░░░░ 07.43% Total Iterations: 40,889 Avg Confidence: 0.0015 ░░░░░░░░░░░░░░░░░░░░░░░░░ 00.15%

root@kitploit:~
入力コンテンツ(翻訳対象のテキスト)が提供されていません。```
🏆 Top Performing Denullification Strategies:

Strategy                                  Attempts    Success%    Confidence
--------                                  --------    --------    ----------
ret_immediate                                  134    █████████████░░░░░░░░░░░░   50.00%
MOVZX/MOVSX Null-Byte banishment              162    █████████████░░░░░░░░░░░░   50.00%
transform_mov_reg_mem_self                     774    █████████████░░░░░░░░░░░░   50.00%
cmp_mem_reg_null                                96    ████████████░░░░░░░░░░░░░   46.88%
cmp_mem_reg                                    264    ████████████░░░░░░░░░░░░░   46.97%
lea_disp_null                                 3900    ███████████░░░░░░░░░░░░░░   45.38%
transform_add_mem_reg8                        2012    ███████████░░░░░░░░░░░░░░   43.49%
Push Optimized                                4214    ███████░░░░░░░░░░░░░░░░░░   29.31%
ModRM Byte Null Bypass                          82    ██████░░░░░░░░░░░░░░░░░░░   25.61%
conservative_arithmetic                       5172    █████░░░░░░░░░░░░░░░░░░░░   21.37%
arithmetic_addsub_enhanced                    1722    ████░░░░░░░░░░░░░░░░░░░░░   18.12%
PUSH Immediate Null-Byte banishment          3066    ████░░░░░░░░░░░░░░░░░░░░░   16.54%
SIB Addressing                                9560    ████░░░░░░░░░░░░░░░░░░░░░   16.03%
generic_mem_null_disp_enhanced               22130    ███░░░░░░░░░░░░░░░░░░░░░░   15.52%
SALC-based Zero Comparison                    1654    ███░░░░░░░░░░░░░░░░░░░░░░   12.88%

入力が空です。翻訳するテキストが提供されていません。``` ⚡ Processing Efficiency:

Learning Rate: 1.97 feedback/instruction Weight Update Avg: 0.042650 Weight Update Max: 0.100000 Total Weight Updates: 1724.68

Strategy Coverage: Total Strategies: 153+ Strategies Activated: 117 ████████████████████████░ 95.90% Zero-Attempt: 5 █░░░░░░░░░░░░░░░░░░░░░░░░ 04.10%

root@kitploit:~
### 難読化レイヤー
`--biphasic` モードは、denulling の前に解析対策用の難読化を追加します:
- 制御フロー平坦化
- ディスパッチャパターン
- レジスタ再割り当て
- 状態難読化
- デッドコード挿入
- NOPスレッド
- 命令置換
- 等価演算
- スタックフレーム操作
- API 解決の隠蔽
- 文字列エンコーディング
- 定数エンコーディング
- アンチデバッグ
- VM 検出技術

### MLを活用した戦略選択

> **成熟度: Beta v2.0** — nullバイト除去データセットで学習済み。一般的な bad byte のユースケースには再学習が必要です。

**アーキテクチャ**:
- **One-hot 命令エンコーディング** (51次元) がスカラ命令IDを置き換えます
- **コンテキストウィンドウ** (現在 + 過去3件の4命令のスライディングバッファ)
- **固定特徴抽出** (命令ごとに安定した84次元レイアウト)
- **安定した戦略レジストリ** (一貫したNN出力マッピングを保証)
- **全層逆伝播** (入力→隠れ層→出力)
- **ソフトマックス + 交差エントロピー損失に対する正しい勾配計算**
- **出力マスキング** (ソフトマックスの前に無効な戦略をフィルタリング)
- **He/Xavier 初期化** (適切な重み初期化のため)
- 3層フィードフォワードニューラルネットワーク (336→512→200)
- 成功/失敗フィードバックからの適応学習
- 予測、精度、信頼度を追跡
- 決定的順序へのグレースフルフォールバック

> [!WARNING]
> ML モードは実験的であり、新しいアーキテクチャでのさらなるトレーニング/検証が必要です。

### バッチ処理
- 再帰的ディレクトリ走査 (`-r`)
- カスタムファイルパターン (`--pattern "*.bin"`)
- 構造の保持または平坦化
- エラー時続行または厳格モード
- すべてのオプションと互換性あり (biphasic, PIC, `XOR` など)
- **拡張出力**:
  - ファイルごとのサイズ変換と比率
  - 失敗時の詳細な bad byte の特定
  - サマリーの成功/失敗率
  - 失敗したファイルのリスト (最初の10件をインライン表示)
  - 厳格な成功定義: 残存 bad byte のあるファイルは失敗としてマーク

**バッチ処理出力例:**```
===== BATCH PROCESSING SUMMARY =====
Total files:       8
Successfully processed: 1 (12.5%)
Failed:            7 (87.5%)
Skipped:           0

Total input size:  650 bytes
Total output size: 764 bytes
Average size ratio: 1.18x

Bad bytes:    5 configured
Configured set:    0x00, 0x09, 0x0a, 0x0d, 0x20

FAILED FILES (7):
  - shellcode1.bin
  - shellcode2.bin
  ...

[!TIP] 大量のシェルコードコレクションをバッチ処理する場合、--no-continue-on-error を使用して問題のあるファイルを早期に特定し、その後 --pattern で失敗したものを除外して正常に処理します。--verbose フラグは進行状況の追跡と、特定のシェルコードコーパスに最適な戦略の特定に役立ちます。ファイルは 残りの不良バイトがゼロ の場合のみ成功と見なされます - 部分的な成功は失敗として扱われます。

出力オプション

  • 形式: 生バイナリ、C 配列、Python bytes、16進文字列
  • デコーダスタブ付き XOR エンコーディング (--xor-encode 0xDEADBEEF)
  • 位置独立コード (--pic)
  • 出力ディレクトリの自動作成

統計

--stats フラグを使用すると、byvalver は詳細な分析情報を提供します:

戦略使用統計:

  • 適用された変換戦略の表示
  • 各戦略の成功/失敗率
  • 戦略ごとの適用回数と平均出力サイズ

ファイル複雑性分析:

  • 最も複雑なファイル(命令数による)
  • 入力サイズによる最大/最小ファイル
  • 展開率が最も大きいファイル
  • ファイルごとの不良バイト追放統計

バッチ処理サマリー:

  • 成功/失敗のパーセンテージ
  • 詳細な不良バイト設定
  • 失敗したファイルのリストと完全なリストを保存するオプション

出力例:``` ===== BATCH PROCESSING SUMMARY ===== Total files: 162 Successfully processed: 131 (80.9%) Failed: 31 (19.1%) Skipped: 0

Total input size: 35772920 bytes Total output size: 81609 bytes Average size ratio: 0.00x

Bad bytes: 3 configured Configured set: 0x00, 0x0a, 0x0d

FAILED FILES (31):

  • ./winwin.bin
  • ./stairslide_secure.bin ...

📊 DETAILED STATISTICS

STRATEGY USAGE STATISTICS: ┌─────────────────────────────────────────┬─────────┬─────────┬──────────────┬────────────────┐ │ Strategy Name │ Success │ Failure │ Applications │ Avg Output Size│ ├─────────────────────────────────────────┼─────────┼─────────┼──────────────┼────────────────┤ │ push_immediate_strategy │ 45 │ 3 │ 48 │ 12.34 │ │ mov_reg_mem_self │ 32 │ 1 │ 33 │ 8.21 │ │ ... │ ... │ ... │ ... │ ... │ └─────────────────────────────────────────┴─────────┴─────────┴──────────────┴────────────────┘

FILE COMPLEXITY ANALYSIS: Most Complex Files (by instruction count):

  • ./complex_payload.bin: 1245 instructions, 4096 -> 5201 bytes (1.27x)

Largest Files (by input size):

  • ./large_payload.bin: 8192 bytes input, 10485 bytes output (1.28x)

Smallest Files (by input size):

  • ./tiny_shellcode.bin: 64 bytes input, 89 bytes output (1.39x)

Largest Expansion (by size ratio):

  • ./expanded.bin: 512 -> 1024 bytes (2.00x expansion)
root@kitploit:~
### 検証スイート
検証用Pythonツール:
- `verify_denulled.py`: ゼロバイトが含まれないことを保証します(`--bad-bytes` によるカスタム検証をサポート)
- `verify_functionality.py`: 実行パターンをチェックします
- `verify_semantic.py`: 等価性を検証します

## アーキテクチャ

`byvalver` はモジュール式のストラテジーパターン設計を採用しています:
- パス1:(オプション)解析対策のための難読化
- パス2: ヌルバイト除去のためのデヌル化
- 戦略最適化のためのMLレイヤー
- スケーラブルな処理のためのバッチシステム

<div align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/9982/8d3a1e20481460fedecaecda6f87bc21355fbbb1f1ef58d7fef4427eda36a381.png" alt="戦略カテゴリの分類" width="700">
</div>

## システム要件

- **OS**: Linux(Ubuntu/Debian/Fedora)、macOS(Homebrew使用)、Windows(WSL/MSYS2経由)
- **CPU**: x86/x64(最新命令セット対応)
- **RAM**: 空き1GB
- **Disk**: 空き50MB
- **Tools**: `C`コンパイラ、Make、Git(推奨)

## 依存関係

- **コア**: GCC/Clang、GNU Make、`Capstone` (v4.0+)、`NASM` (v2.13+)、xxd
- **オプション**: Clang-Format、Cppcheck、Valgrind
- **MLトレーニング**: 数学ライブラリ(同梱)

### インストールコマンド

**Ubuntu/Debian:**```bash
sudo apt update
sudo apt install build-essential nasm xxd pkg-config libcapstone-dev clang-format cppcheck valgrind

macOS (Homebrew) — macOS Tahoe 26 (以降):```bash

Core build deps

brew install capstone nasm pkg-config

xxd is typically already present at /usr/bin/xxd on macOS.

If it isn't available for some reason, install Vim (xxd is bundled with it):

brew install vim

root@kitploit:~
### macOS/Homebrew ビルド修正(リポジトリ変更)
macOS/Homebrew の互換性を向上させるため、最近変更が加えられました(特に Apple silicon + Homebrew のプレフィックス `/opt/homebrew`):
- `Makefile` と `makefile` を更新し、コンパイル時に **`CPPFLAGS`** を、リンク時に **`LDLIBS`** を使うようにしました。これにより、`pkg-config` で検出された Capstone フラグが正しく適用されます。
- Homebrew の `pkg-config` が出力する Capstone インクルードパスを `.../include/capstone` から `.../include` に正規化し、プロジェクトの `#include <capstone/capstone.h>` が正しく解決されるようにしました。

差分の概要(概要レベル):
- `$(CC) $(CFLAGS) -c ...` → `$(CC) $(CFLAGS) $(CPPFLAGS) -c ...`
- `$(CC) $(CFLAGS) -o ... $(LDFLAGS)` → `$(CC) $(CFLAGS) $(CPPFLAGS) -o ... $(LDFLAGS) $(LDLIBS)`
- `CAPSTONE_CFLAGS := pkg-config --cflags capstone` → `<capstone/capstone.h>` と互換性のあるインクルードパスに正規化

### トラブルシューティング(macOS)```bash
# Verify xxd is available (macOS usually ships /usr/bin/xxd)
command -v xxd

# Verify Capstone is discoverable via pkg-config
pkg-config --cflags capstone
pkg-config --libs capstone

# Clean rebuild
make clean
make

Windows (WSL): Ubuntu/Debian と同じ。

ビルド

ビルドには Makefile を使用します:

  • デフォルト: make (最適化された実行ファイル)
  • デバッグ: make debug (シンボル、サニタイザー)
  • リリース: make release (-O3、ネイティブ)
  • スタティック: make static (自己完結型)
  • MLトレーナー: make train (bin/train_model)
  • クリーン: make clean または make clean-all

カスタマイズ:```bash make CC=clang CFLAGS="-O3 -march=native" CPPFLAGS="$(pkg-config --cflags capstone)"

root@kitploit:~
設定を表示: `make info`

## インストール

グローバルインストール:```bash
sudo make install
sudo make install-man

アンインストール:```bash sudo make uninstall

root@kitploit:~
GitHub より:```bash
curl -sSL https://raw.githubusercontent.com/umpolungfish/byvalver/main/install.sh | bash

使用方法```bash

byvalver [OPTIONS] [output]

root@kitploit:~
- 入出力はファイルまたはディレクトリ(自動バッチ処理)

**主要オプション:**
- `-h, --help`: ヘルプ
- `-v, --version`: バージョン
- `-V, --verbose`: 詳細出力
- `-q, --quiet`: 出力を抑制
- `--bad-bytes BYTES`: 除外するカンマ区切りの16進バイト(デフォルト: "00")
- `--profile NAME`: 定義済みの bad-byte プロファイルを使用(例: http-newline, sql-injection)
- `--list-profiles`: 利用可能なすべての bad-byte プロファイルを一覧表示
- `--biphasic`: 難読化 + ヌル除去
- `--pic`: 位置独立
- `--ml`: ML戦略の選択
- `--xor-encode KEY`: `XOR`(スタブ付き)
- `--format FORMAT`: raw|c|python|hexstring
- `-r, --recursive`: 再帰バッチ処理
- `--pattern PATTERN`: ファイルグロブ
- `--no-preserve-structure`: 出力をフラット化
- `--no-continue-on-error`: エラー時に停止
- `--menu`: 対話型TUIメニューを起動

**例:**```bash
# Default: banish null bytes only (well-tested, recommended)
byvalver shellcode.bin clean.bin

# v3.0 NEW: List available bad-byte profiles
byvalver --list-profiles

# v3.0 NEW: Use predefined profile for HTTP contexts (eliminates 0x00, 0x0A, 0x0D)
byvalver --profile http-newline shellcode.bin clean.bin

# v3.0 NEW: Use profile for SQL injection contexts
byvalver --profile sql-injection shellcode.bin clean.bin

# v3.0 NEW: Use profile for URL-safe shellcode
byvalver --profile url-safe shellcode.bin clean.bin

# v3.0 NEW: Manual bad-byte specification (experimental - not extensively tested)
byvalver --bad-bytes "00,0a,0d" shellcode.bin clean.bin

# Combined with other features
byvalver --profile http-newline --biphasic --ml input.bin output.bin

# Batch processing with profile
byvalver -r --profile http-whitespace --pattern "*.bin" shellcodes/ output/

# Launch interactive TUI mode
byvalver --menu

難読化戦略

byvalver の難読化パス(--biphasic で有効化)は、解析防止技術を適用します:

コア難読化テクニック

  • MOV Register Exchange: XCHG/push-pop パターン
  • MOV Immediate: 算術分解
  • Arithmetic Substitution: 複雑な等価表現
  • Memory Access: 間接参照と LEA
  • Stack Operations: 手動 ESP ハンドリング
  • Conditional Jumps: SETcc と move
  • Unconditional Jumps: 間接的な仕組み
  • Calls: PUSH + JMP

優先順位は、単純な置換(低)よりも解析対策(高)を重視します。

詳細な戦略ドキュメントについては、OBFUSCATION_STRATS を参照してください。

NULL 除去戦略

コアの denull パスは 170 以上の戦略を使用します:

MOV 戦略

  • 元のパススルー
  • NEG、NOT、XOR、Shift、ADD/SUB による分解

算術

  • 元のまま、NEG、XOR、ADD/SUB

ジャンプ/制御

  • CALL/JMP 間接
  • 汎用メモリ変位
  • 条件付きオフセットの除去

高度

  • ModR/M バイパス
  • フラグ保持 TEST
  • SIB アドレッシング
  • PUSH 最適化
  • Windows 固有: CALL/POP、PEB ハッシュ、SALC、LEA 算術、シフト演算、スタック文字列など

モダン x64 機能

  • RIP-Relative Optimization: オフセット分解、ダブル RIP 計算、スタックベースの手法
  • Bit Manipulation: BSWAP バイト並べ替え、BSF/BSR による 2 のべき乗構築、POPCNT ビットカウント、BMI2 PEXT/PDEP
  • Flag Accumulation: SETccベースの条件付きジャンプ除去と線形フラグ演算

難読化強化

  • Multi-Byte NOP Interlacing: 算術 NOP、レジスタローテーション、条件付き NOP、FPU 演算
  • Register Dependency Chains: 複数命令パターンの最適化、命令の並べ替え
  • Negative Displacement Addressing: ベースレジスタの調整、代替アドレッシングモード

メモリ/変位

  • 変位 NULL 処理
  • LEA の代替

戦略は ML または決定論的な順序で優先順位付けされ、選択されます

モジュール式レジストリにより、新しいシェルコードパターンに対応する戦略を簡単に追加できます。

詳細な戦略ドキュメントについては、DENULL_STRATS を参照してください。

ML トレーニングと検証

トレーニング

トレーナーのビルド: make train

実行: ./bin/train_model

  • データ: ./shellcodes/
  • 出力: ./ml_models/byvalver_ml_model.bin
  • 設定: 10k サンプル、50 エポック、20% 検証、LR 0.001、バッチ 32

モデルは実行時にパス解決により自動ロードされます。

ML モードのテスト```bash

Smoke test

./bin/byvalver --ml shellcodes/linux_x86/execve.bin output.bin

Check registry initialization

./bin/byvalver --ml test.bin output.bin 2>&1 | grep "ML Registry"

Expected: "ML Registry] Initialized with XXX strategies"

Batch processing with learning

./bin/byvalver --ml --batch shellcodes/linux_x86/*.bin output/

View metrics

cat ml_metrics.log

root@kitploit:~
**推奨事項:** MLモードは、本番運用前に多様なbad-byteデータセットで再トレーニングする必要があります。現在はnull-byteの排除のみに最適化されています。

## エージェント・コレクション

`byvalver` には、**AI搭載のエージェントパイプライン**(`agents/`)が同梱されており、戦略レジストリのギャップを自律的に発見し、新規のbad-byte除去テクニックを提案し、完全なC実装を生成してプロジェクトに組み込むことができます。すべてを単一のコマンドで実行できます。

このパイプラインは [AjintK](https://github.com/umpolungfish/byvalver/blob/main/AjintK) マルチプロバイダーエージェントフレームワーク上に構築されており、LLMバックエンドとして **Anthropic**、**DeepSeek**、**Qwen**、**Mistral**、**Google** をサポートしています。

### クイックスタート```bash
# Requires API key for your chosen provider
export ANTHROPIC_API_KEY="..."   # or DEEPSEEK_API_KEY, QWEN_API_KEY, etc.

# --- Specialized Generators ---

# 1. General Technique Generator (discover → propose → generate → implement)
python3 run_technique_generator.py

# 2. Obfuscation Technique Generator (specifically for anti-analysis/evasion)
python3 run_obfuscation_generator.py

# 3. Bad-Byte Removal Generator (targeting restricted byte elimination)
python3 run_badbyte_generator.py

# 4. Profile-Specific Strategy Generator (targeting a specific bad-byte profile)
python3 run_profile_generator.py --profile alphanumeric-only

# --- Common Options ---

# Dry-run: discover and propose only, no files written
python3 run_technique_generator.py --dry-run

# Target a specific architecture
python3 run_technique_generator.py --arch x64

# Use a different provider / model
python3 run_technique_generator.py --provider deepseek --model deepseek-chat

パイプラインステージ

オプション```

--dry-run Stop after Stage 2 — print proposal, write nothing --arch x86 | x64 | both (default: both) --provider anthropic | deepseek | qwen | mistral | google (default: anthropic) --model Model ID (provider-specific default applied if omitted) --verbose Print full LLM responses at each stage

root@kitploit:~
### 要件```bash
# Install Python dependencies (uses AjintK framework)
pip install anthropic tenacity httpx pyyaml

# Or with uv (faster)
uv pip install -r AjintK/requirements.txt

パイプラインは DeepSeek (deepseek-chat) と Anthropic (claude-sonnet-4-6) で検証済みです。 一般的な実行では、340以上の戦略を発見し、テクニック(例:SSE/AVX命令向けのVEXプレフィックス再エンコーディング)を提案し、約200行のCコードを生成して、完全無人でクリーンなビルドを生成します。

アーキテクチャの詳細と、新しいエージェントによるパイプラインの拡張については、docs/AGENT_MENAGERIE.md を参照してください。

開発

  • モジュール化されたモダンな C
  • テストスイート: bash tests/run_tests.sh(tests/README.md を参照)
  • コードスタイル: Clang-Format(設定: .clang-format)、make format を実行
  • 解析: Cppcheck、Valgrind
  • Docker: docker build -t byvalver .(Dockerfile を参照)
  • コントリビューション: CONTRIBUTING.md を参照
  • ロードマップ: ROADMAP.md を参照

ドキュメント

完全なドキュメントは docs/ ディレクトリにあります:

トラブルシューティング

  • 依存関係: Capstone/NASM/xxd を確認
  • ビルド: PATH_MAX、ヘッダーを確認
  • ML: モデルパスを確認
  • Null: 入力形式と依存関係を確認

問題が解決しない場合は、verboseモードを使用してログを確認してください

特定のシェルコードでbad-byte除去が失敗する場合は、対象を絞った戦略をレジストリに追加することを検討してください。

ライセンス

byvalver は UNLICENSE の下で、地球に自由に解き放たれています。

ツールをダウンロード
アーキテクチャ成熟度戦略数備考
x86 (32ビット Intel/AMD)安定版 v4.2150+本番テスト済み、完全カバレッジ
x64 (64ビット Intel/AMD)安定版 v4.2150+デフォルトアーキテクチャ、本番テスト済み
ARM (32ビット)実験的 v0.1コア7種テスト限定的、コア命令のみ
ARM64 (AArch64)実験的 v0.1基本フレームワーク対応、最小限の戦略
  • Control Flow Flattening: ディスパッチャ状態
  • Instruction Substitution: 等価なオペコード
  • Dead Code: 無害な挿入
  • Register Reassignment: データフローの隠蔽
  • Multiplication by One: IMUL パターン
  • NOP Sleds: 可変パディング
  • Polymorphic NOP Insertion: 複数の NOP 等価命令 (XCHG EAX,EAX, LEA, MOV)
  • Constant Unfolding: 即値を算術演算に分解
  • Register Renaming: XCHGベースのレジスタ置換
  • Stack Spill Obfuscation: スタックベースの算術演算
  • Instruction Reordering: NOP挿入による命令のシャッフル
  • Runtime Self-Modification: 自己書き換えコードの生成
  • Overlapping Instructions: 複数解釈可能なバイト列
  • Jump Decoys: 偽のジャンプ先
  • Relative Offsets: 計算されたジャンプ
  • Switch-Based: 計算されたフロー
  • Boolean Expressions: ド・モルガンの等価表現
  • Variable Encoding: 可逆変換
  • Timing Variations: 遅延
  • Register State: 複雑な操作
  • Stack Frames: カスタム管理
  • API Resolution: 複雑なハッシュ
  • String Encoding: ランタイムでのデコード
  • Constants: 式による生成
  • Debugger Detection: 難読化されたチェック
  • VM Detection: 秘匿された方法
  • ステージエージェント処理内容
    1StrategyDiscoveryAgentsrc/ をスキャンし、340以上のストラテジー名とカテゴリを抽出し、LLMにカバレッジギャップの要約を依頼します
    2TechniqueProposalAgentカタログを基に、根拠、対象命令、アプローチを含む真に新しい1つの手法を提案します
    3CodeGenerationAgentstrategy.h/utils.h/mov_strategies.c を参照として、strategy_t に準拠する完全な .h + .c 実装を生成します
    4ImplementationAgentファイルを src/ に書き込み、strategy_registry.c にパッチを適用します(インクルード → 前方宣言 → 登録呼び出し)。その後 make を実行します
    ドキュメント説明
    docs/USAGE.md使用例付きの包括的な使用ガイド
    docs/BUILD.mdビルド手順とプラットフォーム固有の注意事項
    docs/TUI_README.md対話型TUIのドキュメント
    docs/DENULL_STRATS.mdDenullification(ヌルバイト除去)戦略カタログ
    docs/OBFUSCATION_STRATS.md難読化テクニックのドキュメント
    docs/BAD_BYTE_PROFILES.mdBad-byteプロファイルリファレンス
    docs/BADBYTEELIM_STRATS.md拡張除去戦略
    docs/STRATEGY_HIERARCHY.md戦略の構成と優先順位
    docs/ADVANCED_STRATEGIES.md高度な変換テクニック
    docs/WHITEPAPER.md技術ホワイトペーパー
    docs/AGENT_MENAGERIE.mdエージェントパイプライン:自動テクニック生成