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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
pe_tree — pefile과 PyQt5를 사용하여 Portable Executable (PE) 파일을 트리 뷰로 볼 수 있는 Python 모듈입니다. IDA Pro 및 Rekall과 함께 사용하여 메모리 내 PE 파일을 덤프하고 임포트를 재구성할 수도 있습니다. | Kitploit
도구/GitHubGitHub/blackberry/pe_tree
Memory ForensicsVulnerability AnalysisReverse EngineeringDebuggersForensicsMalware AnalysisDigital ForensicsBinary AnalysisArchived
GitHubblackberry/pe_tree

pe_tree

pefile과 PyQt5를 사용하여 Portable Executable (PE) 파일을 트리 뷰로 볼 수 있는 Python 모듈입니다. IDA Pro 및 Rekall과 함께 사용하여 메모리 내 PE 파일을 덤프하고 임포트를 재구성할 수도 있습니다.

1.3k1734년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기

PE Tree

PE Tree는 pefile과 PyQt5를 사용하여 Portable Executable (PE) 파일을 트리 뷰로 보여주는 Python 모듈입니다. 또한 IDA Pro, Ghidra, Volatility, Rekall, minidump와 함께 사용하여 메모리 내 PE 파일을 보고 덤프하며, 임포트 테이블 재구성을 수행할 수 있습니다.

목차

  1. 기능
  2. 애플리케이션
    • 요구 사항
    • 기능
    • 설치
      • Windows
      • Mac/Linux
      • 개발자용
    • 사용법
    • 다크 모드
  3. IDAPython
    • 요구 사항
    • 기능
    • 설치
      • setuptools 사용
      • 수동 설치
      • 개발자용
    • 사용법
    • 예제
      • 메모리 내 PE 파일 덤프
  4. Rekall
    • 요구 사항
    • 기능
    • 설치
    • 사용법
  5. Volatility
    • 요구 사항
    • 기능
    • 설치
    • 사용법
  6. Ghidra
    • 요구 사항
    • 기능
    • 설치
    • 사용법
  7. Minidump
    • 요구 사항
    • 기능
    • 설치
    • 사용법
  8. 설정
    • 개요
    • 옵션
    • 위치
    • 타사 데이터 공유
  9. 문제 해결
  10. 기여
    • 개발자 문서
  11. 라이선스

기능

  • 다음을 위한 플러그인이 포함된 독립형 애플리케이션:
    • IDA Pro
    • Ghidra
    • Volatility
    • Rekall
    • Minidump
    • Carving
  • Windows, Linux, Mac 지원
  • 다음에서 PE 파일 및 메모리 이미지 파싱:
    • 파일 시스템
    • ZIP 아카이브 (암호 보호 포함)
    • Windows 메모리 덤프 (raw, EWF, vmem 등)
    • 활성 Windows 메모리 (rekall 사용)
    • Windows Minidump
    • IDA Pro 데이터베이스
    • Ghidra 데이터베이스
    • 바이너리 파일 카빙
  • 무지개 PE 맵:
    • PE 구조, 크기 및 파일 위치의 개략적인 개요 제공
    • PE 샘플의 빠른 시각적 개요 및 비교 가능
  • 다음 PE 헤더를 트리 뷰로 표시:
    • MZ 헤더
    • DOS 스텁
    • Rich 헤더
    • NT/파일/옵션 헤더
    • 데이터 디렉터리
    • 섹션
    • 임포트
    • 익스포트
    • 디버그 정보
    • 로드 구성
    • TLS
    • 리소스
    • 버전 정보
    • 인증서
    • 오버레이
  • 다음에서 데이터 추출 및 저장:
    • DOS 스텁
    • 섹션
    • 리소스
    • 인증서
    • 오버레이
    • 추가 조작을 위해 CyberChef로 내보내기
  • VirusTotal 검색 수행:
    • 파일 해시
    • PDB 경로
    • 타임스탬프
    • 섹션 해시/이름
    • 임포트 해시/이름
    • 익스포트 이름
    • 리소스 해시
    • 인증서 일련번호
  • 메모리에서 로드된 PE 이미지 덤프:
    • 섹션 포인터 및 크기 수정
    • PE 헤더 수정:
      • 불필요한 데이터 디렉터리 포인터 제거
      • PE 체크섬 재계산
      • 엔트리 포인트 업데이트
    • 여러 방법을 사용하여 임포트 주소 및 디렉터리 테이블(IAT/IDT) 재구성:
      1. 기존 IAT/IDT 사용
      2. 기존 IAT에서 IDT 재구성
      3. 디스어셈블리(IDA Pro, Ghidra 또는 capstone 사용)에서 IAT 및 IDT 재구성

애플리케이션

PE Tree 독립형 애플리케이션은 파일, 폴더 및 ZIP 아카이브에서 휴대용 실행 파일을 찾습니다.

PE Tree 독립형 애플리케이션

요구 사항

  • Python 3.5+

기능

  • PE 파일에 대한 파일 및 폴더 스캔
  • ZIP 아카이브에서 PE 파일 추출 (infected 포함 암호 보호)
  • 바이너리 파일에서 PE 파일 카빙
  • VA/RVA를 더블 클릭하여 capstone으로 디스어셈블
  • 헥스 덤프 데이터

설치

pip 사용 (권장)

새로운 가상 환경에서 pip를 사용하여 GitHub에서 직접 설치:

Windows
root@kitploit:~
> virtualenv env
> env\Scripts\activate
> pip install --upgrade pip
> pip install git+https://github.com/blackberry/pe_tree.git
Mac/Linux
root@kitploit:~
$ python3 -m venv env
$ source ./env/bin/activate
$ pip install --upgrade pip
$ pip install git+https://github.com/blackberry/pe_tree.git

개발자용

Git 클론 및 개발용 설정:

Windows
root@kitploit:~
> git clone https://github.com/blackberry/pe_tree.git
> cd pe_tree
> virtualenv env
> env\Scripts\activate
> pip install -e .
Mac/Linux
root@kitploit:~
$ git clone https://github.com/blackberry/pe_tree.git
$ cd pe_tree
$ python3 -m venv env
$ source ./env/bin/activate
$ pip install -e .

사용법

PE Tree를 실행하고 파일, 폴더 및 ZIP 아카이브에서 휴대용 실행 파일을 스캔:

root@kitploit:~
$ pe-tree -h
usage: pe-tree [-h] [filenames [filenames ...]]

PE-Tree

positional arguments:
  filenames   Path(s) to file/folder/zip

optional arguments:
  -h, --help  show this help message and exit

PE Tree를 실행하고 바이너리 파일에서 휴대용 실행 파일을 카빙 시도:

root@kitploit:~
$ pe-tree-carve -h
usage: pe-tree-carve [-h] filename

PE-Tree (Carve)

positional arguments:
  filename    Path to file to carve

optional arguments:
  -h, --help  show this help message and exit

다크 모드

다크 모드는 QDarkStyle 설치로 활성화 가능:

root@kitploit:~
$ pip install qdarkstyle

IDAPython

PE Tree IDAPython 플러그인은 IDA 데이터베이스에서 휴대용 실행 파일을 찾습니다.

PE Tree IDAPython 플러그인

요구 사항

  • IDA Pro 7.0+ (Python 2.7)
  • IDA Pro 7.4+ (Python 2.7 또는 3.5+)

기능

  • PE 파일 구조의 쉬운 탐색
  • PE Tree에서 메모리 주소를 더블 클릭하여 IDA-view 또는 hex-view에서 보기
  • IDB에서 메모리 내 PE 이미지 검색 및;
    • 임포트 재구성 (IAT + IDT)
    • 재구성된 PE 파일 덤프
    • IDB에 PE 파일 구조 자동 주석 처리
    • IDB에 IAT 오프셋 자동 레이블 지정

설치

IDAPython 플러그인으로 설치 및 실행하려면 setuptools를 사용하거나 수동으로 설치할 수 있습니다.

setuptools 사용

  1. pe_tree를 다운로드하고 IDA에서 사용하는 전역 Python 인터프리터에 설치:

    root@kitploit:~
    $ git clone https://github.com/blackberry/pe_tree.git
    $ cd pe_tree
    $ python setup.py develop --ida
    
  2. pe_tree_ida.py를 IDA 플러그인 폴더에 복사

수동 설치

  1. pe_tree를 다운로드하고 IDA에서 사용하는 전역 Python 인터프리터에 요구 사항 설치:

    root@kitploit:~
    $ git clone https://github.com/blackberry/pe_tree.git
    $ cd pe_tree
    $ pip install -r requirements.txt
    
  2. pe_tree_ida.py 및 ./pe_tree/의 내용을 IDA 플러그인 폴더에 복사

개발자용

플러그인으로 설치하지 않고 IDA에서 스크립트로 실행하려면 먼저 전역 Python 설치에 pe_tree 패키지 요구 사항을 설치:

root@kitploit:~
$ pip install -r requirements.txt

그런 다음 IDA에서 pe_tree_ida.py 실행:

File -> Script file... -> pe_tree_ida.py -> Open

IDA 플러그인 폴더

OS플러그인 폴더
Windows%ProgramFiles%\IDA Pro 7.X\plugins
Linux/opt/ida-7.X/plugins
Mac~/.idapro/plugins

사용법

  1. IDA Pro를 실행하고 PE 파일 디스어셈블 (최상의 결과를 위해 항상 Manual Load 및 Load Resources 선택!)

  2. PE Tree 플러그인 로드:

    Edit -> Plugins -> PE Tree

예제

메모리 내 PE 파일 덤프

다음은 패킹된 PE 파일(예: MPRESS 또는 UPX)을 덤프하고 임포트를 재구성하는 기본 단계입니다 (이미지 베이스/엔트리 포인트가 표준적이라고 가정):

  1. IDA Pro를 실행하고 MPRESS 또는 UPX로 패킹된 PE 파일 디스어셈블 (Manual Load 및 Load Resources 선택)

  2. 디버거(Windows 또는 Bochs)를 선택하고 OEP(보통 0x00401000, 항상 그렇지는 않음!)까지 실행

  3. 이 시점에서 메모리 스냅샷(모든 세그먼트 저장)을 찍고 나중을 위해 IDB 저장 가능

  4. IDA가 모든 코드를 찾았는지 확인:

    Options -> General -> Analysis -> Reanalyze program

  5. PE Tree IDAPython 플러그인 열기, 오른쪽 창에서 마우스 오른쪽 버튼 클릭 후 선택:

    Add PE -> Search IDB

    IDB에서 MZ/PE 헤더를 스캔하고 찾은 모듈을 표시합니다.

  6. HEADER-0x00400000 (또는 적절한 모듈 이름)에서 마우스 오른쪽 버튼 클릭 후 Dump... 선택

  7. AddressOfEntryPoint 지정 (보통 0x1000, 항상 그렇지는 않음!)

  8. Rebuild IDT/IAT가 선택되었는지 확인

  9. 덤프!

메모리/IDB에서 얻은 언패킹된 섹션 데이터를 사용하여 새 실행 파일이 생성되는 동시에, 재구성된 IAT, 힌트 이름 테이블 및 IDT를 포함하는 .pe_tree라는 새 섹션이 PE 파일에 추가됩니다(.idata 섹션과 유사). 만약 실행 중 엔트리 포인트 메모리 세그먼트가 쓰기 가능으로 표시된 경우(예: VirtualProtect 통해), 엔트리 포인트 섹션의 특성도 쓰기 가능으로 표시됩니다. 마지막으로, BASERELOC, BOUND_IMPORT 및 SECURITY 데이터 디렉터리는 null로 표시되고, OPTIONAL_HEADER 체크섬은 (지정된 경우) 재계산됩니다.

위 방법을 사용하면 언패킹되었거나, 인젝션되었거나, 리플렉티브하게 로드되었거나, 할로잉된 등 다양한 메모리 내 PE 파일을 덤프할 수 있습니다.

Rekall

PE Tree Rekall 플러그인은 Windows 메모리 덤프에서 휴대용 실행 파일을 찾습니다.

PE Tree Rekall 플러그인

요구 사항

  • Python 3+

기능

  • Windows 메모리 덤프 또는 활성 시스템에 대해 작동
  • 다음에서 PE 모듈 보기, 덤프 및 재구성;
    • 활성 프로세스 및 DLL
    • 로드된 커널 모드 드라이버

설치

  1. GitHub에서 Rekall 설치.
  2. 동일한 가상 환경에 PE Tree 독립형 애플리케이션 설치 (설치 참조).

사용법

Rekall을 실행하고 활성 시스템의 활성 프로세스, DLL 및 드라이버 보기:

root@kitploit:~
$ rekall --live Memory
[1] Live (Memory) 00:00:00> run -i pe_tree_rekall.py

또는 기존 메모리 덤프에 대해 Rekall/PE Tree 실행:

root@kitploit:~
$rekall -f memory.vmem
[1] memory.vmem 00:00:00> run -i pe_tree_rekall.py

Volatility

PE Tree Volatility 플러그인은 Windows 메모리 덤프에서 휴대용 실행 파일을 찾습니다.

PE Tree Volatility 플러그인

요구 사항

  • Python 3.5+

기능

  • Windows 메모리 덤프에 대해 작동
  • 다음에서 PE 모듈 보기, 덤프 및 재구성;
    • 활성 프로세스 및 DLL
    • 로드된 커널 모드 드라이버

설치

  1. GitHub에서 Volatility3 설치.
  2. 동일한 가상 환경에 PE Tree 독립형 애플리케이션 설치 (설치 참조).

사용법

root@kitploit:~
$ pe-tree-vol -h
usage: pe-tree-vol [-h] filename

PE-Tree (Volatility)

positional arguments:
  filename    Path to memory dump

optional arguments:
  -h, --help  show this help message and exit

Ghidra

PE Tree Ghidra 플러그인은 Ghidra 데이터베이스에서 휴대용 실행 파일을 찾습니다.

PE Tree Ghidra 플러그인

요구 사항

  • Python 3.5+
  • Ghidra Bridge

기능

  • PE 파일 구조의 쉬운 탐색
  • PE Tree에서 메모리 주소를 더블 클릭하여 Ghidra 디스어셈블리/헥스 뷰에서 보기
  • 임포트 재구성 (IAT + IDT)
  • 재구성된 PE 파일 덤프

설치

  1. PE Tree 설치 (설치 참조)
  2. Ghidra Bridge 설치

사용법

  1. Ghidra Bridge 서버 시작
  2. PE Tree Ghidra 플러그인 실행
root@kitploit:~
$ pe-tree-ghidra -h
usage: pe-tree-ghidra [-h] [--server SERVER] [--port PORT]

PE-Tree (Ghidra)

optional arguments:
  -h, --help       show this help message and exit
  --server SERVER  Ghidra bridge server IP (default: 127.0.0.1)
  --port PORT      Ghidra bridge server port (default: 4768)

Minidump

PE Tree Minidump 플러그인은 Windows Minidump에서 휴대용 실행 파일을 찾습니다.

PE Tree Minidump 플러그인

요구 사항

  • Python 3.6+
  • minidump

기능

  • Windows Minidump(.dmp) 파일에서 PE 모듈 보기, 덤프 및 재구성

설치

  1. PE Tree 설치 (설치 참조)
  2. minidump 설치 (pip install minidump)

사용법

root@kitploit:~
$ pe-tree-minidump -h
usage: pe-tree-minidump [-h] filename

PE-Tree (Minidump)

positional arguments:
  filename    Path to .dmp file

optional arguments:
  -h, --help  show this help message and exit

설정

개요

설정은 INI 파일에 저장되며 기본값은 다음과 같습니다:

root@kitploit:~
[config]
debug = False
fonts = Consolas,Monospace,Courier
passwords = ,infected
virustotal_url = https://www.virustotal.com/gui/search
cyberchef_url = https://gchq.github.io/CyberChef

옵션

위치

타사 데이터 공유

다음 정보는 (설정에 따라) 다음 조건에서 타사 웹 애플리케이션과 공유됩니다:

VirusTotal

설정에 VirusTotal URL이 지정된 경우, 사용자가 강조 표시된 링크를 클릭하거나 마우스 오른쪽 버튼 클릭 컨텍스트 메뉴에서 "VirusTotal search"를 선택하면 파일 해시, 타임스탬프 등의 메타데이터가 처리를 위해 VirusTotal로 전송됩니다.

CyberChef

설정에 CyberChef URL이 있는 경우, 사용자가 마우스 오른쪽 버튼 클릭 컨텍스트 메뉴에서 "CyberChef"를 선택하면 모든 파일 데이터가 base64로 인코딩되어 처리될 목적으로 CyberChef로 전송됩니다.

문제 해결

AttributeError: module 'pip' has no attribute 'main'

또는

PyQt5가 Linux에서 설치 실패

pip를 버전 20.0+로 업그레이드 시도:

root@kitploit:~
$ pip install --upgrade pip

ModuleNotFoundError: No module named 'PyQt5.sip'

다음과 같이 PyQt5를 제거하고 재설치 시도:

root@kitploit:~
pip uninstall PyQt5
pip uninstall PyQt5-sip
pip install PyQt5 PyQt5-sip

덤프 후 임포트 누락

IDA가 모든 코드를 찾고 디스어셈블했는지 확인:

Options -> General -> Analysis -> Reanalyze program

완료 후 덤프/임포트 재구성을 다시 시도하세요.

기여

자유롭게 기여해주세요! 이슈 및 풀 리퀘스트는 언제나 환영합니다.

개발자 문서

Sphinx를 사용하여 소스에서 문서 빌드:

root@kitploit:~
$ pip install sphinx
$ sphinx-apidoc -o ./doc/source/ .
$ sphinx-build -b html ./doc/source ./doc/build -E

문서를 보려면 웹 브라우저에서 ./doc/build/index.html을 여십시오.

작성자

Tom Bonner - tombonner - @thomas_bonner

라이선스

PE Tree는 Apache License 2.0에 따라 배포됩니다. 자세한 내용은 LICENSE를 참조하십시오.

도구 다운로드
SectionOptionTypeDescription
configdebugbooleanpefile.dump()를 출력에 인쇄
configfontsstringUI에 사용할 글꼴 이름의 쉼표로 구분된 목록
configpasswordsstringZIP 파일 암호의 쉼표로 구분된 목록
configvirustotal_urlstringVirusTotal 검색 URL
configcyberchef_urlstringCyberChef URL
TypeOSPath
ApplicationWindows%TEMP%\pe_tree.ini
ApplicationLinux/Mac/tmp/pe_tree.ini
IDAPythonWindows%APPDATA%\HexRays\IDA Pro\pe_tree.ini
IDAPythonLinux/Mac~/.idapro/pe_tree.ini
RekallWindows%TEMP%\pe_tree_rekall.ini
RekallLinux/Mac/tmp/pe_tree_rekall.ini
VolatilityWindows%TEMP%\pe_tree_volatility.ini
VolatilityLinux/Mac/tmp/pe_tree_volatility.ini
GhidraWindows%TEMP%\pe_tree_ghidra.ini
GhidraLinux/Mac/tmp/pe_tree_ghidra.ini
MinidumpWindows%TEMP%\pe_tree_minidump.ini
MinidumpLinux/Mac/tmp/pe_tree_minidump.ini
CarveWindows%TEMP%\pe_tree_carve.ini
CarveLinux/Mac/tmp/pe_tree_carve.ini