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

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

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.9k28343년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

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

프로세스 덤프

Process Dump는 Windows 역공학 명령줄 도구로, 악성코드 메모리 구성 요소를 디스크로 덤프하여 분석합니다. 악성코드 파일은 종종 AV 스캐너를 피하기 위해 실행 전에 패킹되거나 난독화되지만, 이러한 파일이 실행되면 메모리에서 악성코드 코드의 정상 버전을 언패킹하거나 인젝션하는 경우가 많습니다. 악성코드 연구자가 악성코드를 분석할 때 일반적인 작업 중 하나는 이 언패킹된 코드를 메모리에서 디스크로 덤프하여 AV 제품으로 스캔하거나 IDA와 같은 정적 분석 도구로 분석하는 것입니다.

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

  • 특정 프로세스 또는 모든 프로세스에서 코드를 덤프합니다.
  • 프로세스에 제대로 로드되지 않은 숨겨진 모듈을 찾아 덤프합니다.
  • PE 파일과 연결되지 않은 느슨한 코드 청크도 찾아 덤프합니다. 청크에 대해 PE 헤더와 임포트 테이블을 구축합니다.
  • 공격적인 접근 방식으로 임포트를 재구성합니다.
  • 종료 직전에 프로세스를 일시 중지하고 덤프하는 클로즈 덤프 모니터 모드('-closemon')로 실행할 수 있습니다.
  • 멀티스레드이므로 실행 중인 모든 프로세스를 덤프할 때 상당히 빠릅니다.
  • 클린 해시 데이터베이스를 생성할 수 있습니다. 시스템이 악성코드에 감염되기 전에 이를 생성하여 Process Dump가 새로운 악성 악성코드 구성 요소만 덤프하도록 합니다.

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

설치

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

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

소스 코드 컴파일

이는 Visual Studio 2019용으로 설계되었으며 무료 Community 에디션에서 작동합니다. VS2019로 프로젝트 파일을 열고 컴파일하면 됩니다. 아주 쉽습니다!

명령줄 인수

Process dump는 메모리에서 알 수 없는 모든 코드를 덤프하거나('-system' 플래그), 특정 프로세스를 덤프하거나, 모든 프로세스가 종료되기 직전에 덤프하는 모니터링 모드로 실행할 수 있습니다.

이 도구를 처음 사용하기 전에, 클린 워크스테이션에서 클린 제외 해시 데이터베이스를 다음 중 하나로 생성할 수 있습니다:

  • pd -db genquick
  • pd -db gen

사용 예:

  • pd -system
  • pd -pid 419
  • pd -pid 0x1a3
  • pd -pid 0x1a3 -a 0x401000 -o c:\dump\ -c c:\dump\test\clean.db
  • pd -p chrome.exe
  • pd -p "(?i).*chrome.*"
  • pd -closemon

명령줄 인수는 다음과 같이 그룹화할 수 있습니다:

일반 덤프 옵션

클린 해시 데이터베이스 옵션

출력 옵션

옵션설명
-v디버깅을 위해 더 많은 세부 정보를 출력하는 상세 모드입니다.
-nh출력에 헤더가 출력되지 않습니다.

고급 옵션

사용 예

좋습니다, 더 간소화된 버전의 정보는 다음과 같습니다:

샌드박스 사용법

자동화된 샌드박스에서 Process Dump를 사용하거나 수동 안티멀웨어 연구를 위해 다음 단계가 유용할 수 있습니다. 모든 명령을 관리자로 클린 환경에서 실행해야 합니다.

  • 클린 해시 데이터베이스 구축: pd64.exe -db gen을 실행하거나 더 빠르지만 덜 완전한 방법으로 pd64.exe -db genquick를 사용합니다. 상황에 따라 이 클린 해시 데이터베이스를 만든 후 VM 스냅샷을 찍어 매번 반복할 필요가 없도록 할 수 있습니다.
  • Process Dump 종료 모니터 시작: pd64.exe -closemon을 백그라운드에서 실행합니다. 악성코드가 사용한 모든 중간 프로세스를 덤프합니다.
  • 악성코드 파일 실행: 악성코드 설치를 모니터링합니다. pd64.exe가 종료하려는 모든 프로세스를 자동으로 덤프합니다.
  • 실행 중인 악성코드를 메모리에서 덤프: 준비가 되면 pd64.exe -system을 사용하여 모든 프로세스를 덤프합니다.

덤프된 구성 요소는 pd64.exe의 작업 디렉터리에서 찾을 수 있습니다. 출력 경로를 변경하려면 -o 플래그를 사용합니다.

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

  • 파일 이름에 모듈 이름 대신 'hiddemodule'이 있으면 해당 모듈이 프로세스에 제대로 등록되지 않았음을 나타냅니다.
  • 파일 이름에 '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.dll
  • notepad_exe_PID2c54_codechunk_17BD0000_x64.dll

버전 기록

버전 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에서 높은 주소의 일부 모듈을 찾을 수 없는 버그를 수정했습니다.
  • 상세 모드에서 더 많은 디버그 정보가 출력됩니다.

버전 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와의 호환성 문제 수정.
  • process dump가 모듈을 덤프한다고 출력하지만 실제로 덤프하지 않는 버그 수정.
  • '-pid ' 덤프 플래그 구현.

버전 1.0 (2013년 4월 2일)

  • 최초 릴리스.
도구 다운로드
옵션설명
-system액세스 가능한 모든 프로세스에서 클린 해시 데이터베이스와 일치하지 않는 모든 모듈을 작업 디렉터리로 덤프합니다.
-pid <pid>지정된 PID에서 클린 해시 데이터베이스와 일치하지 않는 모든 모듈을 현재 작업 디렉터리로 덤프합니다. '0x' 접두사를 사용하여 16진수 PID를 지정합니다.
-closemon모니터 모드로 실행됩니다. 프로세스가 종료될 때, process dump가 먼저 프로세스를 덤프합니다.
-p <regex process name>필터와 일치하는 프로세스 이름에서 클린 해시 데이터베이스와 일치하지 않는 모든 모듈을 지정된 PID에서 현재 작업 디렉터리로 덤프합니다.
-a <module base address>프로세스에서 지정된 기준 주소의 모듈을 덤프합니다.
-o <path>덤프된 구성 요소의 기본 출력 루트 폴더를 설정합니다.
옵션설명
-db gen일반 폴더 몇 개와 현재 실행 중인 모든 프로세스를 자동으로 처리하고 찾은 모듈 해시를 클린 해시 데이터베이스에 추가합니다. %WINDIR%, %HOMEPATH%, C:\Program Files\, C:\Program Files (x86)\에 있는 모든 파일과 실행 중인 모든 프로세스의 모든 모듈을 재귀적으로 추가합니다. 이러한 클린 해시는 애플리케이션 디렉터리의 clean.hashes 파일에 추가됩니다. 향후 프로세스 덤프 명령에서 이러한 알려진 모듈은 덤프되지 않습니다. 도구를 사용하기 전에 클린 시스템에서 이 명령을 한 번 실행하여 메모리에서 너무 많은 모듈이 덤프되지 않도록 하는 것이 좋습니다.
-db genquick위와 동일하지만 모든 프로세스의 모든 모듈에서 해시만 클린 해시 데이터베이스에 추가합니다. 클린 해시 데이터베이스를 구축하는 훨씬 빠른 방법이지만 덜 완전합니다.
-db add <dir>지정된 디렉터리의 모든 파일을 재귀적으로 클린 해시 데이터베이스에 추가합니다.
-db rem <dir>지정된 디렉터리의 모든 파일을 재귀적으로 클린 해시 데이터베이스에서 제거합니다.
-nr해시 데이터베이스 디렉터리 추가 또는 제거 명령에서 재귀를 비활성화합니다.
-db clean클린 해시 데이터베이스를 지웁니다.
-db ignore이번에 프로세스를 덤프할 때 클린 해시 데이터베이스를 무시합니다. 일치 항목이 발견되더라도 모든 모듈이 덤프됩니다.
-cdb <filepath>이 실행에 사용할 클린 해시 데이터베이스의 전체 파일 경로입니다. 기본값 clean.hashes를 재정의하려는 경우 사용합니다.
-edb <filepath>이 실행에 사용할 진입점 해시 데이터베이스의 전체 파일 경로입니다.
-esdb <filepath>이 실행에 사용할 진입점 짧은 해시 데이터베이스의 전체 파일 경로입니다.
옵션설명
-g기존 헤더를 무시하고 PE 헤더를 처음부터 강제로 생성합니다.
-eprec유효한 진입점이 있는 것처럼 보여도 진입점을 재구성하도록 강제합니다.
-ni임포트 재구성을 비활성화합니다.
-nc느슨한 코드 영역 덤프를 비활성화합니다.
-nt멀티스레딩을 비활성화합니다.
-nep진입점 해싱을 비활성화합니다.
-t <thread count>사용할 스레드 수를 설정합니다(기본값 16).
명령설명
pd64.exe -db genquick현재 실행 중인 프로세스를 기반으로 클린 모듈 데이터베이스를 빠르게 구축합니다. 이후 작업에서 Process Dump는 인식되지 않은 모듈만 덤프합니다.
pd64.exe -system모든 프로세스에서 모든 모듈과 숨겨진 청크를 덤프하고 정상 모듈은 무시합니다.
pd64.exe -closemon종료 모니터 모드로 실행합니다. 프로세스가 종료를 시도할 때 모든 프로세스를 덤프합니다.
pd64.exe -pid 0x18A특정 프로세스 ID에서 모듈과 숨겨진 청크를 덤프합니다.
pd64.exe -p .\*chrome.\*프로세스 이름으로 모듈과 숨겨진 청크를 덤프합니다.
pd64.exe -db gen알려진 모듈의 클린 해시 데이터베이스를 구축합니다. 이후 작업에서 알려진 정상 모듈을 덤프하지 않도록 하는 데 사용됩니다.
pd64.exe -pid 0x1a3 -a 0xffb4000PID의 특정 주소에서 코드를 덤프합니다. 재구성된 32비트 및 64비트 PE 헤더로 분석을 위한 두 파일을 생성합니다: notepad_exe_x64_hidden_FFB40000.exe 및 notepad_exe_x86_hidden_FFB40000.exe.