Tool
PE-sieve
Windows process scanner by hasherezade that finds and dumps implants in one running process: replaced or injected PE modules, shellcode, inline and IAT hooks and other in-memory patches, with the README naming Process Hollowing, Process Doppelgänging and reflective DLL injection among the techniques it detects. Options add shellcode detection by patterns or statistics, scans of thread call stacks, non-executable pages and encrypted or obfuscated content, a choice of dump mode with import-table recovery for dumped PEs, minidumps and JSON reports. It builds as an EXE, as a DLL with a small API that Python, Go and Rust bindings use, or as a static library, and is the engine behind HollowsHunter and MalUnpack.
Requirements & limits
- Latest release at review: v0.4.1.1, published 2025-09-13, with 32- and 64-bit EXEs and DLLs; the README also lists Chocolatey and Scoop packages. The reviewed master commit (2026-06-06) reports version 0.4.1.5, so the pinned sources may describe unreleased changes. PE-sieve runs on Windows and scans one process per run, selected by PID; the separate HollowsHunter scans many processes or the whole system.
- Source builds use CMake 3.12+ (or the MinGW build script) and a recursive clone for the libpeconv, paramkit and sig_finder submodules, with an option to build an EXE, a DLL or a static library. The Python bindings in the repository and the separate Go and Rust bindings load pe-sieve32.dll or pe-sieve64.dll from PESIEVE_DIR or the current directory. Optional symbol download fetches symbols for the scanned modules.
- Inputs are running processes on a machine the analyst controls, and the README describes the results as potentially malicious material collected for further analysis, so detections and dumps need review. AppVeyor builds x86 and x64 Release and Debug configurations, and its only CTest check runs pe-sieve -? and expects a version string; the GitHub workflow publishes Doxygen documentation. No process was scanned.
- BSD-2-Clause (LICENSE, 2017-2026 @hasherezade); the submodules keep their own licenses.
About this entry
- Type
- Tool
- Category
- Debugging and dynamic analysis
- Relationship
- Foundation tool
- Targets
- Binary
Sources reviewed
The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.
Primary sources
- README.md GitHub · hasherezade/pe-sieve · Revision 98788a6
- params.h GitHub · hasherezade/pe-sieve · Revision 98788a6
- CMakeLists.txt GitHub · hasherezade/pe-sieve · Revision 98788a6
- pe_sieve_ver_short.h GitHub · hasherezade/pe-sieve · Revision 98788a6
- .gitmodules GitHub · hasherezade/pe-sieve · Revision 98788a6
- bindings/README.md GitHub · hasherezade/pe-sieve · Revision 98788a6
- .appveyor.yml GitHub · hasherezade/pe-sieve · Revision 98788a6
- .github/workflows/main.yml GitHub · hasherezade/pe-sieve · Revision 98788a6
- LICENSE GitHub · hasherezade/pe-sieve · Revision 98788a6
- https://github.com/hasherezade/pe-sieve/releases/tag/v0.4.1.1
More in Native binaries
- oletools · Tool
- MonkeyDev · Tool
- Hollows Hunter · Tool
- restore-symbol · Tool
- FakeNet-NG · Tool
- Joern · Tool