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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
qiling — 真のインストゥルメンタブルバイナリエミュレーションフレームワーク | Kitploit
ツール/GitHubGitHub/qilingframework/qiling
ペネトレーションテストフレームワーク動的分析 (サンドボックス)エクスプロイトリバースエンジニアリングデバッガファジングマルウェア分析バイナリ解析学習と教育ファームウェア解析
GitHubqilingframework/qiling

qiling

6.1k7963ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

真のインストゥルメンタブルバイナリエミュレーションフレームワーク

リポジトリを見るウェブサイト

Documentation Status Downloads Chat on Telegram


Qilingのユースケース、ブログ、関連作業

Qilingは高度なバイナリエミュレーションフレームワークであり、以下の機能を備えています:

  • マルチプラットフォームのエミュレーション:Windows、macOS、Linux、Android、BSD、UEFI、DOS、MBR。
  • マルチアーキテクチャのエミュレーション:8086、X86、X86_64、ARM、ARM64、MIPS、RISC-V、PowerPC。
  • 複数のファイル形式をサポート:PE、Mach-O、ELF、COM、MBR。
  • Demigod を介した Windows ドライバ (.sys)、Linux カーネルモジュール (.ko)、macOS カーネル (.kext) をサポート。
  • 隔離された環境でのコードのエミュレーションとサンドボックス化。
  • 完全に設定可能なサンドボックスを提供。
  • メモリ、レジスタ、OSレベル、ファイルシステムレベルの詳細なAPIを提供。
  • 細粒度のインストルメンテーション:さまざまなレベル(命令/基本ブロック/メモリアクセス/例外/システムコール/I/Oなど)でフック可能。
  • 現在の実行状態の保存と復元などの仮想マシンレベルのAPIを提供。
  • クロスアーキテクチャおよびクロスプラットフォームのデバッグ機能をサポート。
  • リバースデバッグ機能を備えたビルドインデバッガ。
  • 実行中のコード(ロード済みライブラリを含む)に対する動的なホットパッチを可能にします。
  • Pythonで書かれた真のフレームワークであり、その上にカスタマイズされたセキュリティ分析ツールを簡単に構築できます。

Qilingはさまざまな国際会議にも登場しています。

2022:

  • Black Hat, EU
  • Black Hat, MEA

2021:

  • Black Hat, USA
  • Hack In The Box, Amsterdam
  • Black Hat, Asia

2020:

  • Black Hat, Europe
  • Black Hat, USA
  • Black Hat, USA (Demigod)
  • Black Hat, Asia
  • Hack In The Box, Lockdown 001
  • Hack In The Box, Lockdown 002
  • Hack In The Box, Cyberweek
  • Nullcon

2019:

  • DEFCON, USA
  • Hitcon
  • Zeronights

QilingはUnicorn Engineを基盤としています。

詳細はウェブサイトをご覧ください。


ライセンス

このプログラムはフリーソフトウェアです。あなたはこれを、Free Software Foundationによって公開されたGNU General Public License(バージョン2、または(あなたの選択により)それ以降のバージョン)の条件の下で再配布または変更することができます。


Qiling と他のエミュレータの比較

多くのオープンソースエミュレータがありますが、Qilingに最も近いプロジェクトはUnicornとQEMUユーザーモードです。このセクションでは、Qilingとそれらの主な違いを説明します。

Qiling vs Unicornエンジン

Unicornの上に構築されていますが、QilingとUnicornはまったく異なるものです。

  • Unicornは単なるCPUエミュレータであり、CPU命令のエミュレーションに焦点を当て、エミュレータのメモリを理解できます。それ以上の、動的ライブラリ、システムコール、I/O処理、PE、Mach-O、ELFなどの実行可能形式といった高レベルの概念はUnicornでは認識されません。その結果、Unicornはオペレーティングシステム(OS)のコンテキストなしで生のマシン命令のみをエミュレートできます。
  • Qilingはより高レベルのフレームワークとして設計されており、Unicornを利用してCPU命令をエミュレートしつつ、OSを理解できます。つまり、実行可能形式のローダー(現在はPE、Mach-O、ELF)、動的リンカ(共有ライブラリのロードと再配置が可能)、システムコールとI/Oハンドラを備えています。このため、QilingはネイティブOSを必要とせずに実行可能バイナリを実行できます。
Qiling vs QEMUユーザーモード

QEMUユーザーモードは、クロスアーキテクチャで実行可能バイナリ全体をエミュレートするという点で、当エミュレータと似たことを行います。しかし、QilingはQEMUユーザーモードに対していくつかの重要な違いを提供します。

  • Qilingは真の分析フレームワークであり、その上に独自の動的分析ツール(Pythonで)を構築できます。一方、QEMUは単なるツールであり、フレームワークではありません。
  • Qilingは動的インストルメンテーションを実行でき、実行時にコードをホットパッチすることもできます。QEMUはどちらも実行しません。
  • クロスアーキテクチャで動作するだけでなく、Qilingはクロスプラットフォームでもあります。例えば、Windows上でLinux ELFファイルを実行できます。対照的に、QEMUユーザーモードは、エミュレートされたコードからネイティブOSへのシステムコールの転送方法のため、同じOSのバイナリ(例えばLinux上のLinux ELF)のみを実行します。
  • QilingはWindows、macOS、Linux、BSDを含むより多くのプラットフォームをサポートしています。QEMUユーザーモードはLinuxとBSDのみを扱えます。

インストール

Qiling Frameworkのインストール方法については、セットアップガイドファイルをご覧ください。


例

以下の例は、Qilingフレームワークを最も簡単な方法で使用してWindows実行可能ファイルをエミュレートする方法を示しています。

root@kitploit:~
from qiling import Qiling

if __name__ == "__main__":
    # Qilingインスタンスを初期化し、エミュレートする実行可能ファイルとエミュレートするシステムルートを指定します。
    # 現在の作業ディレクトリはQilingホームと見なされることに注意してください
    ql = Qiling([r'examples/rootfs/x86_windows/bin/x86_hello.exe'], r'examples/rootfs/x86_windows')

    # エミュレーションを開始
    ql.run()
  • 次の例は、Windowsのcrackmeを動的にパッチして、常に「Congratulation」ダイアログを表示させる方法を示しています。
root@kitploit:~
from qiling import Qiling

def force_call_dialog_func(ql: Qiling):
    # 現在のスタックフレームからDialogFuncのアドレスを取得
    lpDialogFunc = ql.stack_read(-8)

    # DialogFunc用にスタックメモリをセットアップ
    ql.stack_push(0)
    ql.stack_push(1001)     # IDS_APPNAME
    ql.stack_push(0x111)    # WM_COMMAND
    ql.stack_push(0)

    # リターンアドレスをプッシュ
    ql.stack_push(0x0401018)

    # DialogFuncのアドレスからエミュレーションを再開
    ql.arch.regs.eip = lpDialogFunc


if __name__ == "__main__":
    # Qilingインスタンスを初期化
    ql = Qiling([r'rootfs/x86_windows/bin/Easy_CrackMe.exe'], r'rootfs/x86_windows')

    # いくつかのコードをNOPで埋める
    ql.patch(0x004010B5, b'\x90\x90')
    ql.patch(0x004010CD, b'\x90\x90')
    ql.patch(0x0040110B, b'\x90\x90')
    ql.patch(0x00401112, b'\x90\x90')

    # アドレスにコールバックをフック
    ql.hook_address(force_call_dialog_func, 0x00401016)
    ql.run()

以下のYouTubeビデオは、上記の例がどのように動作するかを示しています。

Ubuntu x64ホスト上でARMルーターファームウェアをエミュレート

Qiling Frameworkは、x86_64 Ubuntuホスト上でARMルーターの/usr/bin/httpdをホットパッチしてエミュレートします。

Qilingチュートリアル:ARMルーターファームウェアのエミュレートとファジング

QilingのIDA Proプラグイン:Miraiの秘密をインストルメントして解読

このビデオは、QilingのIDA ProプラグインがIDA ProをQilingインストルメンテーションエンジンで実行させる方法を示しています。

QilingのIDA Proプラグイン:Miraiの秘密をインストルメントして解読

GDBサーバーとIDA Proのデモ

Qiling FrameworkとIDA Proを使用してシンプルなCTFチャレンジを解く

Qiling FrameworkとIDA Proを使用したシンプルなCTFチャレンジの解法

MBRのエミュレート

Qiling FrameworkはMBRをエミュレートします

Qilingデモ:MBRのエミュレート


Qltool

Qilingは、シェルコードや実行可能バイナリを迅速にエミュレートするためのqltoolという便利なツールも提供しています。

qltoolを使用すると、簡単に実行できます:

シェルコードの場合:

root@kitploit:~
$ ./qltool code --os linux --arch arm --format hex -f examples/shellcodes/linarm32_tcp_reverse_shell.hex

バイナリファイルの場合:

root@kitploit:~
$ ./qltool run -f examples/rootfs/x8664_linux/bin/x8664_hello --rootfs  examples/rootfs/x8664_linux/

バイナリとGDBデバッガを有効にして:

root@kitploit:~
$ ./qltool run -f examples/rootfs/x8664_linux/bin/x8664_hello --gdb 127.0.0.1:9999 --rootfs examples/rootfs/x8664_linux

コードカバレッジ収集あり(現在はUEFIのみ):

root@kitploit:~
$ ./qltool run -f examples/rootfs/x8664_efi/bin/TcgPlatformSetupPolicy --rootfs examples/rootfs/x8664_efi --coverage-format drcov --coverage-file TcgPlatformSetupPolicy.cov

JSON出力あり(主にWindows):

root@kitploit:~
$ ./qltool run -f examples/rootfs/x86_windows/bin/x86_hello.exe --rootfs  examples/rootfs/x86_windows/ --console False --json

連絡先

最新情報はウェブサイト https://www.qiling.io をご覧ください。

メール [email protected]、Twitter @qiling_io でお問い合わせください。


コア開発者、主要コントリビューターなど

CREDITS.mdを参照してください。

ツールをダウンロード