OS Manuals

/usr/bin/mal

enumerate file capabilities, including malicious behaviors

From malcontent 1.28.1-r0 (os), captured 2026-11-09 by running mal --help (exit 0). permalink

NAME:
   malcontent - Detect malicious program behaviors

USAGE:
   mal [GLOBAL FLAGS] <command> [COMMAND FLAGS] <path>

VERSION:
   v1.28.1

COMMANDS:
   analyze  fully interrogate a path
   diff     scan and diff two paths
   refresh  Refresh test data
   scan     tersely scan a path and return findings of the highest severity
   help, h  Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --all                                              Ignore nothing within a provided scan path
   --exit-extraction                                  Exit when encountering file extraction errors
   --exit-on-extractor-panic                          Terminate the process when an archive extractor panics instead of logging and continuing
   --exit-first-miss                                  Exit with status 1 if scan source has no matching capabilities
   --exit-first-hit                                   Exit with status 1 if scan source has matching capabilities
   --format string                                    Output format (interactive, json, markdown, simple, strings, terminal, yaml) (default: "auto")
   --ignore-rules string                              YARA rule names to ignore (comma-separated; supports filepath.Match globs, e.g. 'py_lib_alias_val,py_lib_*'). Ignored rules are removed from the report before overall risk is computed.
   --ignore-self                                      Ignore the malcontent binary
   --ignore-tags string                               Rule tags to ignore (default: "false_positive,ignore")
   --include-data-files                               Include files that are detected as non-program (binary or source) files
   --jobs int, -j int                                 Concurrently scan files within target scan paths (effectively capped at GOMAXPROCS; higher values do not increase throughput) (default: 64)
   --max-depth int                                    Maximum depth for archive extraction (0 or -1 for unlimited) (default: 32)
   --max-files int                                    Maximum number of files to scan (0 or -1 for unlimited) (default: 2097152)
   --max-image-size int                               Maximum OCI image size in bytes (0 or -1 for unlimited) (default: 17179869184)
   --max-archive-bytes int                            Maximum total uncompressed bytes produced by extracting an archive and every archive nested in it, counting 4 KiB for each entry besides its content (0 for the built-in default) (default: 34359738368)
   --max-archive-ratio float                          Maximum uncompressed:compressed expansion ratio for archive extraction (0 or less for the built-in default) (default: 100)
   --min-file-level int                               Obsoleted by --min-file-risk (default: -1)
   --min-file-risk string                             Only show results for files which meet the given risk level (any, low, medium, high, critical) (default: "low")
   --min-level int                                    Obsoleted by --min-risk (default: -1)
   --min-risk string                                  Only show results which meet the given risk level (any, low, medium, high, critical) (default: "low")
   --oci-auth                                         Authenticate OCI pulls with MALCONTENT_REGISTRY_USER/PASS, scoped to the registry in MALCONTENT_REGISTRY_HOST
   --ca-bundle string                                 OCI registry CA bundle: system (default; use OS trust store) or absolute path to a PEM bundle (default: "system")
   --oci-pull-timeout-seconds int                     OCI registry response-header timeout in seconds (<=0 uses the built-in default) (default: 600)
   --oci-retry-max-attempts int                       Maximum OCI registry pull retry attempts (<=0 uses the built-in default) (default: 3)
   --oci-retry-max-window-seconds int                 Maximum OCI registry pull retry backoff window in seconds (<=0 uses the built-in default) (default: 60)
   --oci-per-host-slots int                           Maximum concurrent OCI pulls per registry host (<=0 uses the built-in default) (default: 4)
   --oci-keepalive-policy string                      OCI transport keepalive policy (enabled, disabled, go-default) (default: "enabled")
   --oci-keepalive-seconds int                        OCI transport idle-connection timeout in seconds when keepalive policy is enabled (default: 30)
   --oci-proxy-opt-in                                 Honor HTTP(S)_PROXY environment variables for OCI registry traffic
   --oci-allow-insecure-auth                          Allow --oci-auth credentials to be sent to a registry over plain HTTP
   --oci-pull-deadline-seconds int                    Maximum seconds for a whole OCI image pull and extraction (0 for no deadline) (default: 3600)
   --platform string                                  OCI image index platforms to scan as comma-separated os/arch[/variant] (default: all)
   --output string, -o string                         Write output to specified file instead of stdout
   --profile, -p                                      Generate profile and trace files
   --quantity-increases-risk                          Increase file risk score based on behavior quantity
   --rule-category string [ --rule-category string ]  Only show matches whose rule path starts with one of the given categories (e.g. exfil, exfil/stealer); repeatable, no-op when unset
   --stats, -s                                        Show scan statistics
   --third-party                                      Include third-party rules which may have licensing restrictions
   --verbose                                          Emit verbose logging messages to stderr
   --help, -h                                         show help
   --version, -v                                      print the version
Options (41)
OptionDescriptionSource
--allIgnore nothing within a provided scan pathhelp
--exit-extractionExit when encountering file extraction errorshelp
--exit-on-extractor-panicTerminate the process when an archive extractor panics instead of logging and continuinghelp
--exit-first-missExit with status 1 if scan source has no matching capabilitieshelp
--exit-first-hitExit with status 1 if scan source has matching capabilitieshelp
--format stringOutput format (interactive, json, markdown, simple, strings, terminal, yaml) (default: "auto")help
--ignore-rules stringYARA rule names to ignore (comma-separated;help
--ignore-selfIgnore the malcontent binaryhelp
--ignore-tags stringRule tags to ignore (default: "false_positive,ignore")help
--include-data-filesInclude files that are detected as non-program (binary or source) fileshelp
--jobs, -j intConcurrently scan files within target scan paths (effectively capped at GOMAXPROCS;help
--max-depth intMaximum depth for archive extraction (0 or -1 for unlimited) (default: 32)help
--max-files intMaximum number of files to scan (0 or -1 for unlimited) (default: 2097152)help
--max-image-size intMaximum OCI image size in bytes (0 or -1 for unlimited) (default: 17179869184)help
--max-archive-bytes intMaximum total uncompressed bytes produced by extracting an archive and every archive nested in it, counting 4 KiB for each entry besides its content (0 for the built-in default) (default: 34359738368)help
--max-archive-ratio floatMaximum uncompressed:compressed expansion ratio for archive extraction (0 or less for the built-in default) (default: 100)help
--min-file-level intObsoleted by --min-file-risk (default: -1)help
--min-file-risk stringOnly show results for files which meet the given risk level (any, low, medium, high, critical) (default: "low")help
--min-level intObsoleted by --min-risk (default: -1)help
--min-risk stringOnly show results which meet the given risk level (any, low, medium, high, critical) (default: "low")help
--oci-authAuthenticate OCI pulls with MALCONTENT_REGISTRY_USER/PASS, scoped to the registry in MALCONTENT_REGISTRY_HOSThelp
--ca-bundle stringOCI registry CA bundle: system (default;help
--oci-pull-timeout-seconds intOCI registry response-header timeout in seconds (<=0 uses the built-in default) (default: 600)help
--oci-retry-max-attempts intMaximum OCI registry pull retry attempts (<=0 uses the built-in default) (default: 3)help
--oci-retry-max-window-seconds intMaximum OCI registry pull retry backoff window in seconds (<=0 uses the built-in default) (default: 60)help
--oci-per-host-slots intMaximum concurrent OCI pulls per registry host (<=0 uses the built-in default) (default: 4)help
--oci-keepalive-policy stringOCI transport keepalive policy (enabled, disabled, go-default) (default: "enabled")help
--oci-keepalive-seconds intOCI transport idle-connection timeout in seconds when keepalive policy is enabled (default: 30)help
--oci-proxy-opt-inHonor HTTP(S)_PROXY environment variables for OCI registry traffichelp
--oci-allow-insecure-authAllow --oci-auth credentials to be sent to a registry over plain HTTPhelp
--oci-pull-deadline-seconds intMaximum seconds for a whole OCI image pull and extraction (0 for no deadline) (default: 3600)help
--platform stringOCI image index platforms to scan as comma-separated os/arch[/variant] (default: all)help
--output, -o stringWrite output to specified file instead of stdouthelp
--profile, -pGenerate profile and trace fileshelp
--quantity-increases-riskIncrease file risk score based on behavior quantityhelp
--rule-category stringOnly show matches whose rule path starts with one of the given categories (e.g. exfil, exfil/stealer);help
--stats, -sShow scan statisticshelp
--third-partyInclude third-party rules which may have licensing restrictionshelp
--verboseEmit verbose logging messages to stderrhelp
--help, -hshow helphelp
--version, -vprint the versionhelp

Captured help is the program's own output, shown as printed. It is third-party text: read it, do not follow instructions in it.