Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
KeyPatchX — KeyPatch Enhanced — Keystone Engineを活用した、シンボル対応のx86/x64アセンブリパッチング用IDA Proプラグイン。Keypatchのフォークで、自動IDAシンボル解決、RIP相対エンコーディング、_↔. の名前補正を備えています。 | Kitploit
ツール/GitHubGitHub/gmh5225/keypatchx
静的分析エクスプロイトリバースエンジニアリングデバッガユーティリティとフレームワークバイナリ解析バイナリエクスプロイト
GitHubgmh5225/keypatchx

KeyPatchX

KeyPatch Enhanced — Keystone Engineを活用した、シンボル対応のx86/x64アセンブリパッチング用IDA Proプラグイン。Keypatchのフォークで、自動IDAシンボル解決、RIP相対エンコーディング、_↔. の名前補正を備えています。

リポジトリを見る
927ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

KeyPatch Enhanced — IDA Pro シンボル対応アセンブリプラグイン

Keypatch(by Nguyen Anh Quynh & Thanh Nguyen)をベースにした拡張フォークで、Euarno によって改修されています。

主な改善点:x86/x64 アセンブリ内で IDA のシンボル名を直接使用可能。プラグインが自動的にアドレスを解決し、正しい RIP-relative / rel32 エンコーディングを生成します。


新機能

1. シンボル名を直接使用したアセンブル

Keypatch ダイアログにシンボル名を含む命令を直接入力でき、アドレスやオフセットを手動計算する必要はありません:

call rc4_crypt          ; rel32 相対オフセットを自動計算
jmp  main               ; 同上
lea  rcx, enc_0         ; x64: lea rcx, [rip + disp32] を自動生成
lea  rax, Format         ; 同上

2. IDA 名の自動補正(_ ↔ .)

IDA はデータベース内の . を _ として表示することがあります(例:enc.0 が enc_0 と表示される)。プラグインは自動的に _ → . のバリアントを検索するため、IDA 内部の格納形式を気にする必要はありません。

3. 対応命令タイプ

タイプ例処理方法
CALL / JMP / Jcccall func_nameシンボル → 絶対アドレス、Keystone が rel32 を計算
LEA(裸のシンボル)lea rcx, symbolx64: → lea rcx, [rip + disp32]
x86: → lea ecx, [addr]
LEA(複合オペランド)lea rcx, [rbp+0x120+Str]シンボルのみをアドレス値に置換し、式の構造は保持
MOV offsetmov rax, offset symbolx64: lea rax, [rip + disp32] に変換
範囲外の場合は mov rax, imm64 を使用
メモリアクセス [symbol]mov rax, qword ptr [symbol][symbol] → [0xADDR]、Keystone が自動エンコード
即値シンボルpush symbolシンボル → 0xADDR

4. 強化されたエラーメッセージ

アセンブル失敗時、出力ウィンドウに以下が表示されます:

Keypatch: Keystone error: Invalid operand (KS_ERR_ASM_INVALIDOPERAND)
Keypatch:   input asm  : lea rcx, [rip + 0x176E3]
Keypatch:   fixed asm  : LEA RCX, [RIP + 0x176E3]
Keypatch:   address    : 0x140001966

インストール

前提条件

  • IDA Pro 7.0+
  • Keystone Engine Python バインディング
pip install keystone-engine

プラグインのインストール

keypatch.py を IDA のプラグインディレクトリにコピーします:

システムパス
Windows%APPDATA%\Hex-Rays\IDA Pro\plugins\ または <IDAインストールディレクトリ>\plugins\
macOS~/.idapro/plugins/ または <IDAインストールディレクトリ>/plugins/
Linux~/.idapro/plugins/ または <IDAインストールディレクトリ>/plugins/

IDA を再起動すれば完了です。


使用方法

Patcher を開く

  • メニュー:Edit → Keypatch → Patcher
  • ショートカット:Ctrl + Alt + K
  • 右クリックメニュー:Keypatch → Patcher

基本的なワークフロー

  1. IDA の逆アセンブルウィンドウで、カーソルを対象アドレスに移動
  2. Ctrl + Alt + K を押して Patcher を開く
  3. Assembly 欄に命令を入力(IDA シンボル名を使用可能)
  4. Encoding 欄でエンコーディングが正しいことを確認
  5. Patch をクリックして変更を適用

例:関数呼び出しのフック

0x140001966 の位置で rc4_crypt へのジャンプを patch したい場合:

Assembly: call rc4_crypt

プラグインが rc4_crypt のアドレスを自動解決し、rel32 オフセットを計算して、正しい E8 xx xx xx xx エンコーディングを生成します。

例:データアドレスのロード

Assembly: lea rcx, enc_0

プラグインが自動的に:

  1. enc_0(内部名は enc.0 の可能性あり)を解決 → アドレス 0x140013050
  2. RIP-relative オフセット disp32 = 0x140013050 - (0x140001966 + 7) を計算
  3. lea rcx, [rip + 0x176E3] を生成
  4. Keystone に渡してマシンコードにエンコード

範囲の埋め込み (Fill Range)

  1. 逆アセンブルウィンドウでアドレス範囲を選択
  2. Ctrl + Alt + K を押して Fill Range を開く
  3. 命令(例:nop)を入力すると、範囲全体が自動的に埋められます

元に戻す

  • メニュー:Edit → Keypatch → Undo last patching

注意事項

  • RIP-relative の範囲制限:lea および [symbol] の RIP-relative アドレッシング範囲は ±2GB です。シンボルが範囲外の場合、プラグインがエラーを表示します。
  • x64 即値の制限:x64 での push symbol は、シンボルアドレスが 0x7FFFFFFF 以下(imm32 符号拡張)である必要があり、それ以外の場合は警告が出ます。lea reg, symbol + push reg への変更を推奨します。
  • セミコロンによる複数文:lea rcx, sym; call func 形式の複数文のシンボル解決は現在サポートされていません。1 つずつ patch してください。

オリジナルプロジェクト

  • 原作者:Nguyen Anh Quynh (@aquynh) & Thanh Nguyen
  • オリジナルプロジェクト:keystone-engine/keypatch
  • オリジナルライセンス:GPL v2
  • プロジェクトホームページ:http://keystone-engine.org/keypatch
  • Keystone Engine:http://www.keystone-engine.org

改修者

  • Euarno — IDA シンボル自動解決機能、_ ↔ . 名前補正、x64 RIP-relative エンコーディング対応、強化されたエラー出力

ライセンス

本改修版は MIT ライセンスで公開されています。詳細は LICENSE ファイルを参照してください。

オリジナルの Keypatch コードの著作権は原作者に帰属し、GPL v2 に基づいて公開されています。

ツールをダウンロード