Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
pyrebox — Python으로 스크립팅 가능한 리버스 엔지니어링 샌드박스, QEMU 기반의 가상 머신 계측 및 검사 프레임워크 | Kitploit
도구/GitHubGitHub/cisco-talos/pyrebox
Dynamic Analysis (Sandboxing)Memory ForensicsReverse EngineeringDebuggersMalware AnalysisDigital ForensicsBinary AnalysisLearning & EducationArchived
GitHubcisco-talos/pyrebox

pyrebox

Python으로 스크립팅 가능한 리버스 엔지니어링 샌드박스, QEMU 기반의 가상 머신 계측 및 검사 프레임워크

1.7k254282년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
웹사이트

보관된 프로젝트

이 프로젝트는 보관되었으며 이슈 큐가 잠겼습니다. 이 프로젝트는 참조 목적으로만 공개로 유지됩니다.

.. image:: docs/media/pyrebox_logo_light_bg.png

.. _QEMU: http://qemu.org/ .. _DECAF: https://github.com/sycurelab/DECAF .. _S2E: https://github.com/dslab-epfl/s2e .. _AVATAR: https://github.com/avatartwo .. _PANDA: https://github.com/panda-re/panda .. _Volatility: http://www.volatilityfoundation.org/ .. _BUILD: BUILD.rst .. _here: https://github.com/Cisco-Talos/pyrebox/issues .. _slides: https://github.com/Cisco-Talos/pyrebox/tree/master/docs/pyrebox_hitb_ams.pdf .. _available: https://github.com/Cisco-Talos/pyrebox/tree/master/docs/pyrebox_euskalhack.pdf .. _scripts: https://github.com/Cisco-Talos/pyrebox/tree/master/scripts .. _readthedocs.io: https://pyrebox.readthedocs.io/en/latest/ .. _questions: https://github.com/Cisco-Talos/pyrebox/issues?utf8=%E2%9C%93&q=is%3Aissue%20label%3Aquestion%20 .. _presentation: https://www.youtube.com/watch?v=F2voG87obzM .. _Contest: https://volatility-labs.blogspot.com/2017/11/results-from-5th-annual-2017-volatility.html

PyREBox는 Python 스크립트 가능한 리버스 엔지니어링 샌드박스입니다. QEMU를 기반으로 하며, 다른 관점에서 동적 분석 및 디버깅 기능을 제공하여 리버스 엔지니어링을 돕는 것이 목표입니다. PyREBox를 사용하면 실행 중인 QEMU VM을 검사하고, 메모리나 레지스터를 수정하며, Python으로 간단한 스크립트를 작성하여 모든 종류의 분석을 자동화함으로써 실행을 계측할 수 있습니다. QEMU(전체 시스템 에뮬레이터로 작동할 때)는 완전한 시스템(CPU, 메모리, 장치 등)을 에뮬레이트합니다. VMI 기술을 사용하여 게스트 운영 체제를 수정할 필요가 없으며, 실행 시간에 게스트의 메모리에서 투명하게 정보를 검색합니다.

DECAF_, PANDA_, S2E_, AVATAR_와 같은 여러 학술 프로젝트는 이전에 QEMU 기반 계측을 활용하여 리버스 엔지니어링 작업을 수행했습니다. 이러한 프로젝트는 C/C++로 플러그인을 작성할 수 있으며, 동적 오염 분석, 기호 실행, 심지어 실행 추적 기록 및 재생과 같은 여러 고급 기능을 구현합니다. PyREBox를 통해 우리는 설계를 단순하게 유지하고 위협 분석가를 위한 시스템의 사용성에 초점을 맞추어 이 기술을 적용하는 것을 목표로 합니다.

PyREBox는 2017년 Volatility Plugin Contest_에서 우승했습니다!

이 도구는 HITB Amsterdam 2018에서 발표되었습니다. slides_를 보거나 presentation_을 시청할 수 있습니다. 또한 제3회 EuskalHack Security Congress에서도 발표되었습니다(슬라이드 available_).

새로운 기능

최신 기능을 즐기려면 PyREBox의 최신 버전을 가져오는 것을 잊지 마세요. PyREBox는 활발히 개발 중이며 새로운 멋진 기능이 곧 추가될 예정입니다! master 브랜치는 항상 안정적인 버전을 포함해야 하며, dev 브랜치는 최신 개발 중인 기능을 포함합니다. 다음 공지 목록은 master 브랜치와 개발 변경 사항이 master에 병합된 날짜를 나타냅니다.

  • [2019년 12월 5일] python3migration 브랜치에 준비된 PyREBox3 베타 버전. 도구가 Python3 및 Volatility3로 포팅되었습니다. 플러그인은 아직 포팅되지 않았습니다.
  • [2019년 6월 21일] QEMU를 버전 4.0.0으로 업그레이드, MTTCG(멀티스레드 TCG) 지원 포함. 이 업그레이드에 귀중한 기여를 한 @richsurgenor에게 특별히 감사드립니다.
  • [2019년 6월 17일] dev 브랜치 병합(멀웨어 모니터 2).
  • [2019년 6월 17일] 마우스 움직임 자동화.
  • [2019년 6월 17일] Volatility 업그레이드.
  • [2018년 10월 17일] Windows 게스트에서 시스템 시간을 가져오는 API 함수 추가.
  • [2018년 10월 17일] BP(중단점) 클래스에 심볼 지원 추가.
  • [2018년 10월 17일] 심볼 캐시(호스트 파일) 추가. 예제 구성 파일(pyrebox.conf.WinXPSP3x86)을 참조하십시오.
  • [2018년 10월 17일] 디스크에서 DLL 파일을 가져오도록 심볼 가져오기 방식 변경.
  • [2018년 10월 10일] 매핑되지 않은 메모리 페이지를 가져오는 실험적 지원 추가.
  • [0ct 10, 2018] The Sleuth Kit 통합 추가.
  • [2018년 8월 2일] 자동 실행 스크립트 추가.
  • [2018년 7월 26일] EuskalHack 2018 발표 슬라이드 업로드.
  • [2018년 7월 2일] CentOS 7 지원을 위한 수정.
  • [2018년 6월 25일] EuskalHack 2018에서 발표된 스크립트 추가.
  • [2018년 5월 31일] Qemu v2.12.0으로 업그레이드.
  • [2018년 5월 29일] Python 스크립트에서 (C/C++로 작성된) 트리거 함수를 호출하는 기능 추가.
  • [2018년 5월 29일] 콜백 매개변수 형식 변경. 문서를 참조하십시오. 기본값은 여전히 이전 스타일입니다.
  • [2018년 4월 28일] PyREBox의 새롭고 잠재적으로 불안정한 기능을 위한 개발 브랜치 생성.
  • [2018년 4월 13일] HITB Amsterdam(CommSec 트랙)에서 PyREBox 발표.
  • [2018년 4월 13일] 멀웨어 모니터링 스크립트(mw_mon) 추가.
  • [2018년 3월 8일] 트리거가 이제 시스템의 모든 프로세스에 대해 호출됩니다(모니터링된 프로세스뿐만 아니라). 문서를 참조하십시오.
  • [2018년 3월 8일] 메모리 읽기/쓰기 콜백 매개변수 변경. 문서와 예제를 참조하십시오.
  • [2018년 3월 8일] 물리적 메모리 주소 읽기/쓰기 중단점 추가.
  • [2018년 3월 8일] 모듈 로드 및 제거 콜백 추가.
  • [2017년 11월 2일] Linux 32비트 및 64비트용 게스트 에이전트 추가.
  • [2017년 10월 23일] Windows 32비트 및 64비트용 게스트 에이전트 추가.
  • [2017년 10월 11일] Linux 모듈 심볼 파싱 추가.
  • [2017년 9월 22일] 모듈 재로드 지원 추가.
  • [2017년 9월 20일] BP 클래스에 사용자 정의 함수 콜백 추가.
  • [2017년 9월 20일] Qemu v2.10.0으로 업그레이드.
  • [2017년 8월 31일] Linux 게스트에 대한 부분 지원.

설치

빌드 스크립트가 제공됩니다. 종속성에 대한 자세한 내용은 BUILD_를 참조하십시오. 또한 Dockerfile을 제공합니다.

문서

이 프로젝트의 문서는 readthedocs.io_에서 호스팅됩니다.

버그, 질문 및 지원

버그를 발견했다고 생각되면 여기 here_에 보고해 주세요.

새 이슈를 생성하기 전에 다른 사용자가 이전에 연 questions_를 확인해 주세요.

이 프로그램은 '있는 그대로' 제공되며, 지원이 보장되지 않습니다. 그렇지만 문제 해결을 돕기 위해 버그를 재현할 수 있는 최대한 많은 정보를 포함해 주세요:

  • PyREBox를 컴파일하고 실행하는 데 사용된 운영 체제.
  • 사용 중인 특정 운영 체제 버전 및 에뮬레이션 대상.
  • 실행하려고 했던 셸 명령/스크립트/작업.
  • 오류 메시지, Python(또는 IPython) 스택 추적, 또는 QEMU 스택 추적과 같은 오류에 관한 모든 정보.
  • 기타 관련 정보.

로드맵

  • VM 이미지 구성 및 관리 콘솔.
  • ARM, MIPS 및 기타 아키텍처 지원.
  • GNU/Linux 게스트 시스템 지원 완료(이슈 참조).

VM 시작하기

PyREBox는 QEMU를 기반으로 하므로, PyREBox 내에서 VM을 시작하려면 QEMU VM을 부팅하는 것과 정확히 동일하게 실행해야 합니다. 몇 가지 예제 스크립트가 제공됩니다: start_i386.sh, start_x86_64.sh. 이를 예제로 사용할 수 있습니다.

현재 지원되는 유일한 QEMU 모니터 옵션은 stdio (-monitor stdio)입니다.

이 프로젝트의 목표

  • 에뮬레이트된 게스트 시스템을 검사하기 위한 간단한 인터페이스를 갖춘 전체 시스템 에뮬레이션 플랫폼 제공.

    • 시스템 이벤트의 세분화된 계측.
    • Volatility 기반 통합 가상 머신 인트로스펙션(VMI). 게스트에 에이전트나 드라이버를 설치할 필요 없음.
    • IPython 기반 셸 인터페이스.
    • Python 기반 스크립팅 엔진으로, 이 언어(가장 큰 생태계 중 하나)를 기반으로 하는 모든 보안 도구를 스크립트에 통합할 수 있음.
  • QEMU에서 분리된 깔끔한 설계. QEMU 위에 구축된 많은 프로젝트는 QEMU가 업그레이드될 때 진화하지 않아 새로운 기능, 최적화 및 보안 업데이트를 놓칩니다. 이를 달성하기 위해 PyREBox는 최소한의 수정만으로 QEMU와 함께 컴파일될 수 있는 독립 모듈로 구현되었습니다.

  • 다양한 아키텍처 지원. 현재 PyREBox는 x86 및 x86-64 비트 아키텍처의 Windows만 지원하지만, 설계상 ARM, MIPS, PowerPC와 같은 다른 아키텍처와 다른 운영 체제도 지원할 수 있습니다.

IPython 셸

PyREBox 셸을 시작하는 것은 QEMU 모니터에서 sh 명령을 입력하는 것만큼 쉽습니다. 그러면 즉시 IPython 셸이 시작됩니다. 이 셸은 명령 기록과 정의된 변수를 기록합니다. 예를 들어, 값을 저장하고 나중에 셸을 다시 시작할 때 실행의 다른 시점에서 복구할 수 있습니다. PyREBox는 자동 완성, 명령 기록, 다중 줄 편집, 자동 명령 도움말 생성 등 IPython에서 사용 가능한 모든 기능을 활용합니다.

PyREBox를 사용하면 상당히 은밀한 방식으로 시스템(또는 프로세스)을 디버깅할 수 있습니다. 디버깅 중인 시스템 내에 머무르는(심지어 중단점을 삽입하기 위해 디버깅 중인 프로세스의 메모리를 수정하는) 전통적인 디버거와 달리, PyREBox는 검사 중인 시스템 외부에 완전히 위치하며 게스트에 드라이버나 구성 요소를 설치할 필요가 없습니다.

.. image:: docs/media/breakpoint.gif

PyREBox는 실행 중인 VM의 상태를 검사하고 수정하기 위한 완전한 명령 세트를 제공합니다. list_commands를 입력하면 전체 목록을 얻을 수 있습니다. vol과 해당 volatility 명령을 입력하면 모든 volatility 플러그인을 실행할 수 있습니다. 사용 가능한 volatility 플러그인의 전체 목록을 보려면 list_vol_commands를 입력하면 됩니다. 이 목록은 자동으로 생성되므로, PyREBox의 volatility/ 경로에 설치한 모든 volatility 플러그인도 표시됩니다.

자신만의 명령을 정의할 수도 있습니다! 스크립트에서 함수를 선언하고 로드하는 것만큼 간단합니다.

명령보다 더 표현력이 필요한 경우, API를 활용한 Python 스니펫을 작성할 수 있습니다. API에 대한 자세한 설명은 Documentation_를 참조하거나 셸에서 help(api)를 입력하십시오.

.. image:: docs/media/stack.gif

스크립팅

PyREBox를 사용하면 특정 이벤트(예: 명령어 실행, 메모리 읽기/쓰기, 프로세스 생성/소멸 등)가 발생할 때 호출되는 콜백 함수를 등록하는 스크립트를 동적으로 로드할 수 있습니다.

PyREBox가 Volatility와 통합되어 있으므로, Python 스크립트에서 메모리 포렌식을 위한 모든 volatility 플러그인을 활용할 수 있습니다. 가장 유명한 리버스 엔지니어링 도구 중 상당수는 Python으로 구현되었거나 적어도 Python 바인딩이 있습니다. 우리의 접근 방식을 통해 이러한 도구를 스크립트에 통합할 수 있습니다.

마지막으로, Python 콜백은 명령어 실행과 같은 빈번한 이벤트에서 성능 저하를 초래할 수 있으므로 트리거를 생성할 수도 있습니다. 트리거는 Python 콜백이 실행되기 직전에 모든 이벤트에서 런타임에 동적으로 삽입될 수 있는 네이티브 코드 플러그인(C/C++로 개발)입니다. 이를 통해 Python 코드에 도달하는 이벤트 수를 제한하고 네이티브 코드에서 값을 사전 계산할 수 있습니다.

이 저장소에서 자신의 코드를 작성하는 데 도움이 되는 예제 scripts_를 찾을 수 있습니다. 기여는 언제나 환영합니다!

감사의 말

우선, PyREBox는 QEMU_와 Volatility_ 없이는 불가능했을 것입니다. 이렇게 훌륭한 작업을 해주신 개발자와 관리자분들께 감사드립니다.

PyREBox는 DECAF_, PANDA_와 같은 여러 학술 프로젝트에서 영감을 받았습니다. 실제로 PyREBox가 지원하는 많은 콜백은 DECAF_에 있는 것과 동일하며, 계측의 기본 개념은 이러한 작업에 기반을 두고 있습니다.

PyREBox는 pyrebox/third_party 디렉터리에서 찾을 수 있는 타사 코드의 이점을 활용합니다. 각 타사 프로젝트에 대해 원본 라이선스, 프로젝트에서 가져온 원본 소스 코드 파일, 그리고 PyREBox에서 사용하는 수정된 버전의 소스 코드 파일(해당하는 경우)을 포함하고 있습니다.

도구 다운로드