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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Process-Dump — 메모리에서 디스크로 악성코드 PE 파일을 덤프하여 분석하기 위한 Windows 도구. | Kitploit
도구/GitHubGitHub/glmcdona/process-dump
Memory ForensicsReverse EngineeringForensicsMalware AnalysisBinary Analysis
GitHubglmcdona/process-dump

Process-Dump

메모리에서 디스크로 악성코드 PE 파일을 덤프하여 분석하기 위한 Windows 도구.

저장소 보기
1.9k2832418일 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

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

Process Dump

Process Dump는 악성코드 메모리 구성 요소를 분석을 위해 디스크로 다시 덤프하는 Windows 리버스 엔지니어링 명령줄 도구입니다. 종종 악성코드 파일은 AV 스캐너를 피하기 위해 실행 전에 패킹되고 난독화되지만, 이러한 파일이 실행되면 메모리에서 악성코드 코드의 정리된 버전을 언패킹하거나 주입하는 경우가 많습니다. 악성코드 연구원이 악성코드를 분석할 때 흔히 하는 작업은 이 언패킹된 코드를 메모리에서 디스크로 다시 덤프하여 AV 제품으로 검사하거나 IDA와 같은 정적 분석 도구로 분석하는 것입니다.

Process Dump는 Windows 32비트 및 64비트 운영 체제에서 작동하며 특정 프로세스 또는 현재 실행 중인 모든 프로세스에서 메모리 구성 요소를 덤프할 수 있습니다. Process Dump는 clean-hash 데이터베이스의 생성 및 사용을 지원하므로 kernel32.dll과 같은 알려진 파일의 덤프를 건너뛸 수 있습니다. 주요 기능은 다음과 같습니다:

  • 특정 프로세스 또는 모든 프로세스에서 코드를 덤프합니다.
  • 프로세스에 제대로 로드되지 않은 숨겨진 모듈을 찾아 덤프합니다.
  • PE 파일과 연결되지 않은 느슨한 코드 청크도 찾아 덤프합니다. 해당 청크에 대한 PE 헤더와 임포트 테이블을 구성합니다.
  • 공격적인 접근 방식을 사용하여 임포트를 재구성합니다.
  • close dump monitor 모드(-closemon)로 실행할 수 있으며, 이 모드에서는 후킹된 프로세스가 종료되기 직전에 일시 중지되고 덤프됩니다.
  • 멀티스레드 방식이므로 실행 중인 모든 프로세스를 덤프할 때 상당히 빠르게 진행됩니다.
  • clean hash 데이터베이스를 생성할 수 있습니다. 이후 덤프 시 알려진 모듈을 건너뛰려면 깨끗한 시스템에서 이를 생성하십시오.

제 웹사이트에서 공식 컴파일 릴리스를 유지 관리하고 있습니다: https://split-code.com/processdump.html

설치

여기에서 Process Dump의 최신 컴파일 릴리스를 다운로드할 수 있습니다:

  • https://github.com/glmcdona/Process-Dump/releases

64비트 Windows에서는 pd64.exe(권장)를, 32비트 Windows에서는 pd32.exe를 사용하십시오. 두 바이너리 모두 독립 실행형이며 Microsoft Visual C++ 재배포 가능 패키지가 필요하지 않습니다.

명령줄 인수

Process Dump는 메모리에서 모든 알 수 없는 코드를 덤프하거나(-system), 특정 프로세스를 덤프하거나, 프로세스를 모니터링하여 종료되기 전에 덤프할 수 있습니다.

깨끗한 워크스테이션에서 다음 중 하나로 기준 데이터베이스를 생성하십시오:

  • pd64.exe -db genquick
  • pd64.exe -db gen

데이터베이스 생성과 덤프는 별도의 명령으로 실행하십시오. 최상의 액세스를 위해 관리자 권한으로 실행하십시오. 기본 작업자 수는 16입니다.

사용 예:

  • pd64.exe -system
  • pd64.exe -pid 419
  • pd64.exe -pid 0x1a3
  • pd64.exe -pid 0x1a3 -a 0x401000 -o C:\dumps
  • pd64.exe -p "chrome[.]exe"
  • pd64.exe -p ".*chrome.*"
  • pd64.exe -closemon

일반 덤프 옵션

옵션설명
-system액세스 가능한 모든 프로세스에서 clean hash 데이터베이스와 일치하지 않는 모듈 및 느슨한 코드를 덤프합니다.
-pid <pid>특정 프로세스를 덤프합니다. 10진수 또는 16진수 PID의 경우 0x 접두사를 사용하십시오.
-closemon프로세스 종료를 후킹하고 종료 전에 덤프합니다. 통제된 환경에서 사용하십시오. 중지하려면 Ctrl+C를 누르십시오.
-p <regex>전체 이름이 대소문자를 구분하는 정규식과 일치하는 프로세스를 덤프합니다. 여러 개가 일치하면 확인을 요청합니다.
-a <address>지정된 기본 주소에서 덤프합니다. -pid가 필요하며, 10진수 또는 0x 접두사가 붙은 16진수를 허용합니다.
-o <path>출력 폴더를 설정합니다(기본값: 현재 작업 디렉터리). 폴더를 먼저 생성하십시오. 기존 파일은 절대 덮어쓰지 않습니다.

Clean Hash 데이터베이스 옵션

데이터베이스 파일은 기본적으로 애플리케이션 디렉터리에 생성됩니다: clean.hashes, entrypoints.hashes 및 shortentrypoints.hashes.

옵션설명
-db gen실행 중인 프로세스와 %WINDIR%, %USERPROFILE%, C:\Program Files, C:\Program Files (x86) 내의 PE 파일에서 재귀적으로 해시를 추가합니다.
-db genquick실행 중인 프로세스에서만 해시를 추가합니다. gen보다 빠르지만 덜 완전합니다.
-db add <dir>지정된 디렉터리에서 PE 파일 해시를 재귀적으로 추가하며, 엔트리포인트 시그니처도 포함합니다.
-db remove <dir>, -db rem <dir>디렉터리에서 일치하는 클린 모듈 해시를 재귀적으로 제거합니다. 엔트리포인트 시그니처는 유지됩니다.
-nr데이터베이스 추가/제거 명령에 대한 재귀를 비활성화합니다. -db gen에는 영향을 주지 않습니다.
-db clean엔트리포인트 시그니처를 포함한 세 개의 데이터베이스를 모두 지웁니다.
-db ignore파일을 변경하지 않고 이번 덤프에서 로드된 세 개의 데이터베이스를 모두 무시합니다. 실행 중에 반복되는 모듈은 여전히 건너뛸 수 있습니다.
-cdb <filepath>, -c <filepath>클린 해시 데이터베이스 경로를 설정합니다.
-edb <filepath>엔트리포인트 해시 데이터베이스 경로를 설정합니다.
-esdb <filepath>짧은 엔트리포인트 해시 데이터베이스 경로를 설정합니다.

출력 옵션

옵션설명
-v상세 진단 정보를 출력합니다.
-nh버전/저작권 배너를 표시하지 않습니다.
--help, -help, -h, --h도움말을 출력하고 종료합니다. 인수 없이 실행해도 도움말이 출력됩니다.

고급 옵션

옵션설명
-g기존 헤더를 무시하고 32비트 및 64비트 PE 헤더를 모두 강제로 생성합니다.
-eprec유효한 엔트리포인트가 존재하더라도 엔트리포인트 복구를 강제합니다. 복구는 휴리스틱 방식이며, 검색에 실패하면 기존 값이 그대로 유지됩니다.
-ni공격적인 임포트 재구성을 비활성화합니다(기본적으로 활성화됨).
-nc느슨한 코드(loose-code) 덤프 및 해싱을 비활성화합니다(기본적으로 활성화됨).
-nep엔트리포인트 복구 및 라이브 엔트리포인트 해싱을 비활성화하며, -eprec를 무시합니다. 파일 데이터베이스 생성은 여전히 엔트리포인트 시그니처를 수집합니다.
-reexec덤프를 다시 실행하기 위한 실험적 준비입니다. 캡처된 일부 상태를 버리고 원래 섹션 레이아웃을 가정합니다. 덤프를 실행하지 않으며 작동을 보장하지도 않습니다. 기본적으로 꺼져 있습니다.
-nt워커를 하나만 사용하며, -t 1과 동일합니다. 종료 모니터링은 여전히 별도의 모니터링 스레드를 사용합니다.
-t <count>시스템 덤핑, 데이터베이스 생성 및 종료 모니터링에 사용할 워커 수를 설정합니다(기본값 16, 최소 1). 직접 PID/이름 덤프는 동기식으로 유지됩니다. 마지막 -t/-nt가 적용됩니다.

사용 예시

명령설명
pd64.exe -db genquick현재 실행 중인 프로세스로부터 신속하게 기준선을 구축합니다.
pd64.exe -system -t 4 -o C:\dumps워커 4개로 알 수 없는 모듈과 느슨한 코드를 기존 출력 폴더에 덤프합니다.
pd64.exe -closemon종료 모니터 모드로 실행합니다.
pd64.exe -pid 0x18A특정 프로세스에서 모듈과 느슨한 코드를 덤프합니다.
pd64.exe -p ".*chrome.*"이름에 chrome이 포함된 프로세스를 덤프합니다.
pd64.exe -db gen실행 중인 프로세스와 일반 폴더로부터 보다 완전한 기준선을 구축합니다.
pd64.exe -db add C:\baseline -nr하위 디렉터리를 검색하지 않고 디렉터리의 PE 파일을 추가합니다.
pd64.exe -pid 0x1a3 -a 0x401000특정 주소에서 덤프합니다. PE 헤더가 없으면 32비트 및 64비트 헤더를 모두 생성합니다.

샌드박스 사용법

악성코드 분석 시에는 격리된 랩을 사용하고 Process Dump를 관리자 권한으로 실행하십시오:

  • 샘플을 투입하기 전에 pd64.exe -db gen 또는 pd64.exe -db genquick으로 클린 해시 데이터베이스를 구축하십시오.
  • 후킹된 프로세스가 종료될 때 이를 캡처할 수 있도록 pd64.exe -closemon을 계속 실행하십시오.
  • 아직 실행 중인 프로세스를 덤프하려면 pd64.exe -system을 사용하십시오.
  • 모니터를 중지하려면 Ctrl+C를 누르십시오.

-o를 설정하지 않으면 덤프는 작업 디렉터리에 기록됩니다. 덤프는 비공개로 유지하십시오. 덤프는 분석용이며 실행이 보장되지 않습니다. 256 MiB를 초과하는 이미지는 거부됩니다.

덤프된 모듈의 명명 규칙에 관한 참고 사항:

  • 모듈 이름 대신 hiddenmodule은 해당 모듈이 프로세스에 제대로 등록되지 않았음을 나타냅니다.
  • codechunk는 PE 헤더가 없는 느슨한 실행 가능 영역에서의 덤프를 의미합니다. 이들은 재구성된 x86 및 x64 헤더와 함께 두 번 덤프됩니다.

예제 파일 이름:

  • notepad_exe_PID2990_hiddenmodule_16B8ABB0000_x86.dll
  • notepad_exe_PID3b5c_notepad.exe_7FF6E6630000_x64.exe
  • notepad_exe_PID2c54_codechunk_17BD0000_x86.exe
  • notepad_exe_PID2c54_codechunk_17BD0000_x64.exe

버전 기록

버전 3.0.0 (2026년 10월 2일)

  • 과대 및 빈 덤프를 수정하고 섹션 및 가져오기 재구성을 개선했습니다.
  • 진입점 복구를 개선했습니다.
  • 시스템 덤프 및 데이터베이스 생성 속도를 높였습니다.
  • 보안 및 안정성 문제를 수정하고 자동화된 테스트를 추가했습니다.

버전 2.1 (2017년 2월 12일)

  • 일부 경우에 마지막 섹션이 대신 0으로 채워지던 버그를 수정했습니다. 이 문제를 보고해 주신 megastupidmonkey께 감사드립니다.
  • 64비트 기본 주소가 32비트 주소로 잘리던 버그를 수정했습니다. 이제 전체 64비트 모듈 기본 주소를 제대로 유지합니다. 이 문제를 보고해 주신 megastupidmonkey께 감사드립니다.
  • 프로세스 덤프 종료 모니터가 csrss.exe를 충돌시키던 문제를 해결했습니다.
  • 종료 모니터 모드에서 Process Dump가 자체 프로세스를 후킹하지 않도록 했습니다.

버전 2.0 (2016년 9월 18일)

  • Process Dump를 모니터링 모드로 실행하는 새로운 플래그 '-closemon'을 추가했습니다. 이 플래그는 프로세스가 종료되는 즉시 일시 중지하고 덤프합니다. 이는 악성코드 분석 샌드박스와 잘 작동하도록 설계되어, 악성 프로세스가 종료되기 전에 메모리에서 악성코드를 확실히 덤프할 수 있습니다.
  • Process Dump를 멀티스레드로 업그레이드했습니다. 여러 프로세스를 덤프하거나 해시를 가져오는 명령은 작업별로 별도의 스레드를 실행합니다. 기본 스레드 수는 16개이며, 이는 일반적인 Process Dump 덤프 처리 속도를 크게 향상시킵니다.
  • Process Dump가 메모리에서 발견된 연결되지 않은 코드 청크를 덤프하도록 업그레이드했습니다. 이들은 모듈에 연결되지 않고 PE 헤더가 없는 메모리의 실행 가능 영역으로 식별됩니다. 또한 노이즈를 줄이기 위해 코드 청크가 유효한 것으로 간주되려면 최소 2개의 가져오기를 참조해야 합니다. 덤프 시 PE 헤더가 가져오기 테이블과 함께 재생성됩니다. 코드 청크는 클린 해시 데이터베이스에서 완전히 지원됩니다.
  • 클린 해시 데이터베이스의 파일 경로와 덤프 파일의 출력 폴더를 제어하는 플래그를 추가했습니다.
  • 충돌을 일으키던 사용자 경로에서 클린 해시 데이터베이스를 생성하는 문제를 수정했습니다.
  • PE 헤더 생성을 강제하는 플래그 '-g'를 수정했습니다. 이전에는 이 플래그가 설정되어 있어도 시스템 덤프(-system)가 프로세스를 덤프할 때 이 플래그를 무시했습니다.
  • 다양한 성능 개선.
  • 프로젝트를 VS2015로 업그레이드했습니다.

버전 1.5 (2015년 11월 21일)

  • 매우 큰 메모리 영역이 Process Dump를 멈추게 하던 버그를 수정했습니다.
  • 64비트 Windows에서 높은 주소의 일부 모듈을 찾지 못하던 버그를 수정했습니다.
  • 이제 Verbose 모드에서 더 많은 디버그 정보가 출력됩니다.

버전 1.4 (2015년 4월 18일)

  • 새로운 적극적인 가져오기 재구성 접근 방식을 추가했습니다. 이제 모듈의 모든 DWORD와 QWORD를 해당 내보내기 일치 항목으로 패치합니다.
  • 특정 주소를 덤프하는 '-a (덤프할 주소)' 플래그를 추가했습니다. 이 플래그는 PE 헤더를 생성하고 해당 주소에 대한 가져오기 테이블을 작성합니다.
  • 새로운 가져오기 재구성 알고리즘을 건너뛰는 '-ni' 플래그를 추가했습니다.
  • 모듈을 덤프할 때 PE 헤더가 존재하더라도 새 PE 헤더 생성을 강제하는 '-g' 플래그를 추가했습니다. 이는 예를 들어 PE 헤더가 잘못된 경우에 유용합니다.
  • 다양한 버그 수정.

버전 1.3 (2013년 10월 10일)

  • 잘못된 가상 크기와 주소를 지정하는 섹션이 있는 PE 헤더 처리를 개선했습니다.
  • 가상 섹션을 디스크 섹션으로 덤프하기 위한 더 나은 모듈 덤프 방법론.

버전 1.1 (2013년 4월 8일)

  • Windows XP와의 호환성 문제를 수정했습니다.
  • 프로세스 덤프가 모듈을 덤프한다고 출력하지만 실제로는 덤프하지 않던 버그를 수정했습니다.
  • '-pid ' 덤프 플래그를 구현했습니다.

버전 1.0 (2013년 4월 2일)

  • 최초 릴리스.

소스 코드 컴파일

pd.sln을 Visual Studio 2019 또는 2022(Community 에디션 가능)에서 데스크톱 개발용 C++ 워크로드와 Windows SDK가 설치된 상태로 엽니다. Win32 또는 x64용 Release를 빌드하십시오. Release 빌드는 런타임을 정적으로 링크합니다.

Visual Studio Developer PowerShell에서 테스트를 빌드하고 실행하려면:

msbuild pd.sln /m /p:Configuration=Release /p:Platform=x64
.\x64\Release\pd_tests.exe
도구 다운로드