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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
exrop — x86-64バイナリ向けの自動ROPチェーン生成ツール。シンボリック実行を使用。レジスタ/メモリ書き込み、関数呼び出し、システムコール、バッドキャラ回避、スタックピボット、およびレトポライン書き換えによるカーネルモードをサポート。 | Kitploit
ツール/GitHubGitHub/d4em0n/exrop
エクスプロイトフレームワークペイロード生成リバースエンジニアリングCTFバイナリエクスプロイト
GitHubd4em0n/exrop

exrop

x86-64バイナリ向けの自動ROPチェーン生成ツール。シンボリック実行を使用。レジスタ/メモリ書き込み、関数呼び出し、システムコール、バッドキャラ回避、スタックピボット、およびレトポライン書き換えによるカーネルモードをサポート。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Exrop

x86-64 バイナリ向け自動ROPチェーン生成ツール。 Triton によるシンボリック実行を利用。

機能

  • レジスタを定数または他のレジスタに設定 (rdi=0x41414141, rdi=rax)
  • メモリへの書き込み (定数およびレジスタベースのアドレス/値)
  • メモリへの文字列/バイトの書き込み
  • 定数/レジスタ/文字列引数を混在させた関数呼び出し (open("/etc/passwd", 0))
  • システムコールチェーン
  • Badchar回避
  • 非リターンガジェット対応 (jmp reg, call reg)
  • カーネルエクスプロイトのためのJOPチェーン検索によるスタックピボット
  • 自動retpoline thunk書き換えを備えたカーネルモード
  • 危険な副作用メモリ書き込みを持つガジェットを除外するクリーン専用モード
  • サフィックスベースの合成: 既に解析済みのサフィックスから複数命令ガジェットを構築
  • プログレスバー付きマルチプロセスガジェット解析
  • 高速再利用のためのガジェットキャッシング (pickle)

インストール

pip (推奨)

root@kitploit:~
pip install git+https://github.com/d4em0n/exrop.git

これにより、exropとそのPython依存関係 (pyelftools, ROPGadget, triton-library) がインストールされます。

注意: triton-library pipパッケージはすべてのプラットフォームで動作するとは限りません。インストールに失敗した場合は、Tritonをソースからビルドし、Triton依存関係なしでexropをインストールしてください:

root@kitploit:~
pip install --no-deps git+https://github.com/d4em0n/exrop.git
pip install pyelftools ROPGadget

開発用 (テスト依存関係を含む編集可能インストール):

root@kitploit:~
git clone https://github.com/d4em0n/exrop.git
cd exrop
pip install -e ".[dev]"

手動

  1. Python 3.6+ をインストール
  2. Triton をインストール
  3. ROPGadget をインストール
  4. オプション: Keystone をインストール (テストにのみ必要)
  5. このリポジトリをクローンし、Pythonパスに追加:
    root@kitploit:~
    git clone https://github.com/d4em0n/exrop.git
    export PYTHONPATH=/path/to/exrop:$PYTHONPATH
    

クイックスタート

root@kitploit:~
from Exrop import Exrop

rop = Exrop("/bin/ls")
rop.find_gadgets(cache=True)

# Set registers
chain = rop.set_regs({'rdi': 0x41414141, 'rsi': 0x42424242, 'rdx': 0x43434343})
chain.dump()

# Write to memory
chain = rop.set_writes({0x41414141: 0xdeadbeefff, 0x43434343: 0x00110011})
chain.dump()

# Write string to memory
chain = rop.set_string({0x41414141: "Hello world!\n"})
chain.dump()

# Function call
chain = rop.func_call(0x41414141, (0x20, 0x30, "Hello"), 0x7fffff00)
chain.dump()

出力:

root@kitploit:~
$RSP+0x0000 : 0x00000000000060d0 # pop rbx; ret
$RSP+0x0008 : 0x0000000044444444
$RSP+0x0010 : 0x0000000000014852 # mov rax, rbx; pop rbx; ret
$RSP+0x0018 : 0x0000000000000000
$RSP+0x0020 : 0x0000000000004ce5 # pop rdi; ret
$RSP+0x0028 : 0x0000000041414141
$RSP+0x0030 : 0x000000000000629c # pop rsi; ret
$RSP+0x0038 : 0x0000000042424242
$RSP+0x0040 : 0x0000000000003a62 # pop rdx; ret
$RSP+0x0048 : 0x0000000043434343
$RSP+0x0050 : 0x00000000000060d0 # pop rbx; ret
$RSP+0x0058 : 0x0000000045454545

カーネルモード

retpoline緩和策を施したLinuxカーネルの場合、kernel_mode=Trueによりサンクシンボルを自動検出し、ガジェットを書き換え、.textセクションに制限します:

root@kitploit:~
from Exrop import Exrop

rop = Exrop("/path/to/vmlinux")
rop.find_gadgets(cache=True, kernel_mode=True)
rop.clean_only = True  # exclude gadgets with dangerous side-effect writes

# Set registers
chain = rop.set_regs({'rdi': 0x41414141, 'rsi': 0})
chain.dump()

# Find pivot gadgets (direct, JOP-chained, indirect)
pivots = rop.stack_pivot_reg('rdi')
for p in pivots[:5]:
    p.dump()

# Build payload for a pivot
payload = pivots[0].build_payload(chain)

exkrop CLI

exkropコマンドは、ピボット選択とCコード出力を備えたカーネルROPチェーン生成のためのインタラクティブワークフローを提供します:

root@kitploit:~
exkrop <vmlinux>
# or: python3 -m exkrop <vmlinux>

機能: エクスプロイトテンプレート (privesc, core_pattern上書き), KASLR相対出力, ピボットガジェットブラウザ, 予約オフセット処理, Cコード生成。詳細は exkrop/README.md を参照。

ユーザー空間の例: open-read-write

root@kitploit:~
from pwn import *
from Exrop import Exrop

libc = ELF("/lib/x86_64-linux-gnu/libc.so.6", checksec=False)
rop = Exrop(libc.path)
rop.find_gadgets(cache=True)

bss = libc.bss()

chain = rop.func_call(libc.symbols['open'], ("/etc/passwd", 0), bss)
chain.set_base_addr(0x00007ffff79e4000)
chain.dump()

chain = rop.func_call(libc.symbols['read'], ('rax', bss, 0x100))
chain.set_base_addr(0x00007ffff79e4000)
chain.dump()

chain = rop.func_call(libc.symbols['write'], (1, bss, 0x100))
chain.set_base_addr(0x00007ffff79e4000)
chain.dump()

その他の例は examples/ ディレクトリにあります。

ツールをダウンロード