Which Holehe Modules Are Excluded by the --no-password-recovery Flag?
The --no-password-recovery flag excludes four specific modules—adobe, mail_ru, odnoklassniki, and samsung—preventing password-recovery probes against these services while maintaining full OSINT coverage of other platforms.
Holehe is an open-source intelligence tool that checks email address registrations across hundreds of websites and applications. When investigators need to avoid triggering security alerts on services that flag password-recovery attempts, the --no-password-recovery (-NP) flag provides a safe mode that omits high-risk modules. This behavior is controlled centrally in the repository’s core logic.
How the Filter Works in holehe/core.py
Inside [holehe/core.py](https://github.com/megadose/holehe/blob/master/holehe/core.py), the get_functions() method constructs the list of modules to query. When the CLI argument args.nopasswordrecovery is set to True, the code explicitly skips four hardcoded modules by checking their string representations. This logic appears at lines 58‑61:
if args is not None and args.nopasswordrecovery == True:
if ("adobe" not in str(modu.__dict__[site]) and
"mail_ru" not in str(modu.__dict__[site]) and
"odnoklassniki" not in str(modu.__dict__[site]) and
"samsung" not in str(modu.__dict__[site])):
websites.append(modu.__dict__[site])
When the condition passes, the module is appended to the websites list. If any of the four target strings appear in the module’s dictionary representation, that module is bypassed entirely, ensuring no network requests are sent to their password-recovery endpoints.
The Four Excluded Modules
The --no-password-recovery flag removes the following four modules from the execution chain:
-
adobe– Located inholehe/modules/software/adobe.py, this module checks Adobe account existence via password-recovery flows that can trigger CAPTCHA or rate-limiting mechanisms. -
mail_ru– Found inholehe/modules/mails/mail_ru.py, this probe verifies Mail.ru registrations using recovery endpoints that may log suspicious activity. -
odnoklassniki– Stored inholehe/modules/social_media/odnoklassniki.py, this module targets the Russian social network’s account recovery system. -
samsung– Located inholehe/modules/products/samsung.py, this check queries Samsung account services via recovery endpoints that could lock or alert the target account.
All other modules in holehe/modules/—spanning categories like entertainment, shopping, and professional networks—remain active regardless of this flag.
Practical Usage Examples
Run Holehe with password-recovery checks disabled to avoid triggering security mechanisms on the four sensitive platforms:
holehe --no-password-recovery target@example.com
Or use the short flag:
holehe -NP target@example.com
For full reconnaissance including all modules (default behavior), simply omit the flag:
holehe target@example.com
Key Source Files
Understanding the architecture requires reviewing these specific files:
| File | Purpose |
|---|---|
[holehe/core.py](https://github.com/megadose/holehe/blob/master/holehe/core.py) |
Central CLI handler; contains get_functions() that implements the --no-password-recovery filtering logic. |
[holehe/modules/software/adobe.py](https://github.com/megadose/holehe/blob/master/holehe/modules/software/adobe.py) |
Adobe account verification module excluded when the flag is active. |
[holehe/modules/mails/mail_ru.py](https://github.com/megadose/holehe/blob/master/holehe/modules/mails/mail_ru.py) |
Mail.ru verification module excluded when the flag is active. |
[holehe/modules/social_media/odnoklassniki.py](https://github.com/megadose/holehe/blob/master/holehe/modules/social_media/odnoklassniki.py) |
Odnoklassniki verification module excluded when the flag is active. |
[holehe/modules/products/samsung.py](https://github.com/megadose/holehe/blob/master/holehe/modules/products/samsung.py) |
Samsung account module excluded when the flag is active. |
Summary
- The
--no-password-recovery(-NP) flag filters out exactly four modules: adobe, mail_ru, odnoklassniki, and samsung. - Filtering logic resides in
get_functions()within [holehe/core.py](https://github.com/megadose/holehe/blob/master/holehe/core.py#L58-L61), where string matching against module names determines inclusion. - These specific modules use password-recovery endpoints that may trigger security alerts, CAPTCHAs, or account locks.
- All other Holehe modules execute normally regardless of this flag, ensuring comprehensive OSINT coverage for the remaining platforms.
Frequently Asked Questions
Why does Holehe exclude these specific four modules?
These modules rely on password-recovery endpoints rather than standard registration-check APIs. Services like Adobe, Mail.ru, Odnoklassniki, and Samsung monitor recovery attempts closely for brute-force protection. Excluding them prevents investigators from inadvertently alerting targets or hitting rate limits that could compromise the investigation.
How do I enable the no-password-recovery mode?
Append the --no-password-recovery argument or use the shorthand -NP when invoking the tool from the command line. This boolean flag signals get_functions() to apply the hardcoded filter before building the execution list.
Will skipping these modules reduce my OSINT coverage?
You will lose visibility into registrations on Adobe, Mail.ru, Odnoklassniki, and Samsung specifically. However, Holehe contains hundreds of other modules for email verification across social media, shopping, and professional platforms that remain fully operational when using this flag.
Can I customize which modules are excluded when using this flag?
No. The --no-password-recovery flag uses a hardcoded list in holehe/core.py containing only the four module names. To exclude additional modules, you would need to modify the source code in get_functions() or fork the repository to implement custom filtering logic.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →