Tool
Hollows Hunter
Windows command-line memory scanner by hasherezade that runs the PE-sieve engine across many processes, or the whole system, instead of a single PID. It recognizes and dumps replaced or implanted PE modules, shellcode, hooks and other in-memory patches for further analysis, selecting processes by PID list, name list or creation time relative to the scan. Scans can repeat in a loop or, in the 64-bit build, run as an ETW listener whose INI profile chooses the triggering events.
Requirements & limits
- Latest release at review: v0.4.1.1, published 2025-09-13, with 32- and 64-bit executables, ZIP archives and DLL-build archives; the README also points to a Chocolatey package, and the wiki to unstable AppVeyor test builds. The reviewed master commit identifies itself as the unreleased 0.4.1.3, 37 commits later and mostly PE-sieve submodule updates.
- Windows only. Source builds need a recursive clone with the pinned PE-sieve, paramkit and Microsoft krabsetw submodules, plus CMake 3.12+; AppVeyor builds x86 and x64 with Visual Studio 2019, and mingw_build.sh shows a MinGW-w64 cross-build. ETW mode works only in the 64-bit build, must run as Administrator and writes HH_ETWProfile.ini to the current directory.
- It scans processes running on the analyst's own system or VM, and the repository holds no samples. Hook and patch scanning is off by default and enabled with /hooks, dumps go to the current directory unless /dir is given, and the wiki calls looped full-system scans processor-intensive. The wiki warns that detected processes are not necessarily malicious and links PE-sieve's false-positive FAQ, so reports and dumps need review; the optional /suspend and /kill responses act on live processes.
- AppVeyor runs ctest after each build: the tests check that the executable starts and that scans of the clean build machine report zero suspicious processes, then run IAT, hook, thread and shellcode-pattern scans that only check the report format. The only GitHub workflow publishes Doxygen code documentation.
- BSD-2-Clause, like PE-sieve; krabsetw is MIT, and the pinned paramkit commit has no license file. The reviewed sources state no REA use, and no processes were scanned for this record.
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/hollows_hunter · Revision 831561c
- https://github.com/hasherezade/hollows_hunter/wiki/Home/33d85ea58ca60980d911348a867488b957f13639
- CMakeLists.txt GitHub · hasherezade/hollows_hunter · Revision 831561c
- .appveyor.yml GitHub · hasherezade/hollows_hunter · Revision 831561c
- .gitmodules GitHub · hasherezade/hollows_hunter · Revision 831561c
- mingw_build.sh GitHub · hasherezade/hollows_hunter · Revision 831561c
- hh_ver_short.h GitHub · hasherezade/hollows_hunter · Revision 831561c
- LICENSE GitHub · hasherezade/hollows_hunter · Revision 831561c
- https://github.com/hasherezade/hollows_hunter/releases/tag/v0.4.1.1
- README.md GitHub · hasherezade/pe-sieve · Revision 98788a6
- LICENSE GitHub · microsoft/krabsetw · Revision 6900de0
More in Native binaries
- restore-symbol · Tool
- FakeNet-NG · Tool
- Joern · Tool
- DownUnderCTF: masked-squares flag checker · Case study
- Show Your Work: a measured dissection of REA's evidence architecture · Case study
- Windows loader: static malware analysis with REA and Codex · Case study