Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
qiling — 진정한 계측 가능한 바이너리 에뮬레이션 프레임워크 | Kitploit
도구/GitHubGitHub/qilingframework/qiling
Penetration Testing FrameworksDynamic Analysis (Sandboxing)ExploitationReverse EngineeringDebuggersFuzzingMalware AnalysisBinary AnalysisLearning & EducationFirmware AnalysisFirmware Analysis #19위
6.1k79671일 전Kitploit 검토 완료
GitHubqilingframework/qiling

qiling

진정한 계측 가능한 바이너리 에뮬레이션 프레임워크

저장소 보기웹사이트

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

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 제공.
  • 정밀한 계측: 다양한 수준에서 후크 가능 (명령어/기본 블록/메모리 접근/예외/시스템 호출/IO 등).
  • 현재 실행 상태를 저장 및 복원하는 가상 머신 수준의 API 제공.
  • 크로스 아키텍처 및 플랫폼 디버깅 기능 지원.
  • 역방향 디버깅 기능이 내장된 디버거.
  • 실행 중인 코드(로드된 라이브러리 포함)에 동적 핫 패치 적용 가능.
  • Python 기반의 진정한 프레임워크로, 그 위에 맞춤형 보안 분석 도구를 쉽게 구축 가능.

Qiling은 또한 다양한 국제 컨퍼런스에 소개되었습니다.

2022:

  • 블랙햇, EU
  • 블랙햇, MEA

2021:

  • 블랙햇, USA
  • Hack In The Box, Amsterdam
  • 블랙햇, Asia

2020:

  • 블랙햇, Europe
  • 블랙햇, USA
  • 블랙햇, USA (Demigod)
  • 블랙햇, 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을 기반으로 합니다.

자세한 내용은 웹사이트를 방문하세요.


라이선스

이 프로그램은 자유 소프트웨어입니다; 자유 소프트웨어 재단에서 발표한 GNU General Public License 버전 2 또는 (선택에 따라) 이후 버전의 조건에 따라 재배포 및/또는 수정할 수 있습니다.


Qiling vs. 다른 에뮬레이터

많은 오픈 소스 에뮬레이터가 있지만, Qiling에 가장 가까운 두 프로젝트는 Unicorn과 QEMU 사용자 모드입니다. 이 섹션에서는 Qiling과 이들 간의 주요 차이점을 설명합니다.

Qiling vs. Unicorn 엔진

Unicorn 위에 구축되었지만, Qiling과 Unicorn은 완전히 다른 개념입니다.

  • Unicorn은 CPU 에뮬레이터일 뿐이므로 CPU 명령어 에뮬레이션에 초점을 맞추며, 에뮬레이터 메모리를 이해할 수 있습니다. 그 외에는 Unicorn이 동적 라이브러리, 시스템 호출, I/O 처리 또는 PE, Mach-O, ELF와 같은 실행 파일 형식과 같은 상위 수준 개념을 인식하지 못합니다. 결과적으로 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 설치 방법은 설정 가이드 파일을 참조하세요.


예제

아래 예제는 Windows 실행 파일을 에뮬레이션하는 가장 간단한 방법으로 Qiling 프레임워크를 사용하는 방법을 보여줍니다.

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는 ARM 라우터의 /usr/bin/httpd를 x86_64 Ubuntu 호스트에서 핫 패치하고 에뮬레이션합니다.

Qiling Tutorial: Emulating and Fuzz ARM router firmware

Qiling의 IDA Pro 플러그인: Mirai의 비밀 계측 및 복호화

이 동영상은 Qiling의 IDA Pro 플러그인이 IDA Pro를 Qiling 계측 엔진과 함께 실행할 수 있게 하는 방법을 보여줍니다.

Qiling's IDA Pro Plugin: Instrument and Decrypt Mirai's Secret

IDA Pro 데모와 GDB 서버

Qiling Framework와 IDA Pro를 사용하여 간단한 CTF 챌린지 풀기

Solving a simple CTF challenge with Qiling Framework and IDA Pro

MBR 에뮬레이션

Qiling Framework가 MBR을 에뮬레이션합니다.

Qiling DEMO: Emulating 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를 참조하세요.

도구 다운로드